buzztrax-0.10.2/0000755042355400116100000000000012640736115013767 5ustar00ensoniceng00000000000000buzztrax-0.10.2/compile0000754042355400116100000000727111771013443015347 0ustar00ensoniceng00000000000000#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2009-10-06.20; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software # Foundation, Inc. # Written by Tom Tromey . # # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use `[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: buzztrax-0.10.2/intltool-merge.in0000644042355400116100000000000012637755561017262 0ustar00ensoniceng00000000000000buzztrax-0.10.2/config.sub0000754042355400116100000010242511702054465015754 0ustar00ensoniceng00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-11' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 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. # # 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. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: buzztrax-0.10.2/config.guess0000754042355400116100000013105411702054465016311 0ustar00ensoniceng00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 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. # # 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 Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp 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` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: buzztrax-0.10.2/buzztrax.appdata.xml.in0000644042355400116100000000155412541041773020424 0ustar00ensoniceng00000000000000 buzztrax-edit.desktop CC0 LGPL-2.0+ <_summary>Fully integrated music composer. <_p> Buzztrax is a music composer similar to tracker applications. It is roughly modelled after the windows only, closed source application called Buzz. http://buzztrax.org/wp-content/gallery/featured-screenshots/bt-edit-0-6-0-01.png http://buzztrax.org/ buzztrax-devel@buzztrax.org buzztrax-0.10.2/Makefile.src.am0000644042355400116100000006457512640575004016630 0ustar00ensoniceng00000000000000if USE_ALSA ALSA_C_FILES=src/lib/ic/aseq-discoverer.c src/lib/ic/aseq-device.c ALSA_H_FILES=src/lib/ic/aseq-discoverer.h src/lib/ic/aseq-device.h else ALSA_C_FILES= ALSA_H_FILES= endif if USE_GUDEV GUDEV_C_FILES=src/lib/ic/gudev-discoverer.c GUDEV_H_FILES=src/lib/ic/gudev-discoverer.h else GUDEV_C_FILES= GUDEV_H_FILES= endif if USE_LINUX_INPUT LINUX_INPUT_C_FILES=src/lib/ic/input-device.c LINUX_INPUT_H_FILES=src/lib/ic/input-device.h else LINUX_INPUT_C_FILES= LINUX_INPUT_H_FILES= endif if USE_DLLWRAPPER_DIRECT DLLWRAPPER_LIB=libloader.la DLLWRAPPER_SRC=src/lib/bml/bmlw.c else DLLWRAPPER_LIB= DLLWRAPPER_SRC=src/lib/bml/bmlipc.c src/lib/bml/strpool.c endif # -- libs ---------------------------------------------------------------------- lib_LTLIBRARIES = libbml.la libbuzztrax-gst.la libbuzztrax-ic.la libbuzztrax-core.la pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = \ src/lib/bml/libbml.pc \ src/lib/core/libbuzztrax-core.pc \ src/lib/gst/libbuzztrax-gst.pc \ src/lib/ic/libbuzztrax-ic.pc if USE_DLLWRAPPER noinst_LTLIBRARIES += libloader.la libloader_la_SOURCES = \ src/lib/dllwrapper/ldt_keeper.c \ src/lib/dllwrapper/pe_image.c \ src/lib/dllwrapper/module.c \ src/lib/dllwrapper/ext.c \ src/lib/dllwrapper/win32.c \ src/lib/dllwrapper/driver.c \ src/lib/dllwrapper/pe_resource.c \ src/lib/dllwrapper/resource.c \ src/lib/dllwrapper/registry.c \ src/lib/dllwrapper/elfdll.c \ src/lib/dllwrapper/afl.c \ src/lib/dllwrapper/vfl.c \ src/lib/dllwrapper/stubs.s \ src/lib/dllwrapper/wrapper.S libloader_la_CFLAGS = $(PTHREAD_CFLAGS) $(BML_CFLAGS) $(BMLHOST_CFLAGS) -ffast-math libloader_la_CCASFLAGS = $(BMLHOST_CCASFLAGS) libloader_la_CPPFLAGS = \ -D__WINE__ \ -DWIN32_PATH=\"/usr/lib/win32\" \ -DWIN32_LIB_PATH=\"$(libdir)/win32\" libloader_la_LIBADD = $(LIBM) $(PTHREAD_LIBS) -ldl noinst_HEADERS += \ src/lib/dllwrapper/avifmt.h \ src/lib/dllwrapper/basetsd.h \ src/lib/dllwrapper/com.h \ src/lib/dllwrapper/debugtools.h \ src/lib/dllwrapper/driver.h \ src/lib/dllwrapper/elfdll.h \ src/lib/dllwrapper/ext.h \ src/lib/dllwrapper/heap.h \ src/lib/dllwrapper/ldt.h \ src/lib/dllwrapper/ldt_keeper.h \ src/lib/dllwrapper/loader.h \ src/lib/dllwrapper/mmreg.h \ src/lib/dllwrapper/module.h \ src/lib/dllwrapper/msacmdrv.h \ src/lib/dllwrapper/msacm.h \ src/lib/dllwrapper/ntdef.h \ src/lib/dllwrapper/pe_image.h \ src/lib/dllwrapper/poppack.h \ src/lib/dllwrapper/pshpack1.h \ src/lib/dllwrapper/pshpack2.h \ src/lib/dllwrapper/pshpack4.h \ src/lib/dllwrapper/pshpack8.h \ src/lib/dllwrapper/registry.h \ src/lib/dllwrapper/resource.h \ src/lib/dllwrapper/vfw.h \ src/lib/dllwrapper/win32.h \ src/lib/dllwrapper/winbase.h \ src/lib/dllwrapper/windef.h \ src/lib/dllwrapper/windows.h \ src/lib/dllwrapper/wineacm.h \ src/lib/dllwrapper/winerror.h \ src/lib/dllwrapper/winestring.h \ src/lib/dllwrapper/winnt.h \ src/lib/dllwrapper/winreg.h \ src/lib/dllwrapper/winuser.h \ src/lib/dllwrapper/wrapper.h endif libbmldir = $(includedir)/libbml libbml_HEADERS = src/lib/bml/bml.h src/lib/bml/BuzzMachineLoader/BuzzMachineLoader.h libbml_la_SOURCES = src/lib/bml/bml.c src/lib/bml/bmllog.c $(DLLWRAPPER_SRC) libbml_la_CFLAGS = \ -I$(srcdir) -I$(top_srcdir)/src/lib \ $(PTHREAD_CFLAGS) $(BML_CFLAGS) libbml_la_CPPFLAGS = -DNATIVE_BML_DIR="\"$(pkglibdir)\"" libbml_la_LIBADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) $(DLLWRAPPER_LIB) libbml_la_LDFLAGS = \ -export-symbols-regex ^_?\(bml_\|bmlw_\|bmln_\).* \ -version-info @BT_VERSION_INFO@ noinst_HEADERS += \ src/lib/bml/bmlipc.h \ src/lib/bml/bmllog.h \ src/lib/bml/bmlw.h \ src/lib/bml/strpool.h if USE_DLLWRAPPER_IPC bin_PROGRAMS = bmlhost bmlhost_SOURCES = \ src/lib/bml/bmlhost.c \ src/lib/bml/bmllog.c \ src/lib/bml/bmlw.c \ src/lib/bml/bmlipc.c \ src/lib/bml/strpool.c bmlhost_CFLAGS = \ -I$(srcdir) -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/lib/dllwrapper \ $(BML_CFLAGS) $(BMLHOST_CFLAGS) bmlhost_LDADD = $(PTHREAD_LIBS) $(BML_LIBS) libloader.la else bin_PROGRAMS = endif # buzzmachine loader (native adapter) pkglib_LTLIBRARIES = libbuzzmachineloader.la libbuzzmachineloader_la_SOURCES = \ src/lib/bml/BuzzMachineLoader/BuzzMachineCallbacks.cpp \ src/lib/bml/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp \ src/lib/bml/BuzzMachineLoader/BuzzMachineLoader.cpp \ src/lib/bml/BuzzMachineLoader/MachineDataImpl.cpp \ src/lib/bml/BuzzMachineLoader/OscTable.cpp \ src/lib/bml/BuzzMachineLoader/mdkimp.cpp \ src/lib/bml/BuzzMachineLoader/debug.cpp noinst_HEADERS += \ src/lib/bml/BuzzMachineLoader/BuzzMachineCallbacks.h \ src/lib/bml/BuzzMachineLoader/BuzzMachineCallbacksPre12.h \ src/lib/bml/BuzzMachineLoader/BuzzMachineLoader.h \ src/lib/bml/BuzzMachineLoader/CLibInterface.h \ src/lib/bml/BuzzMachineLoader/CMachine.h \ src/lib/bml/BuzzMachineLoader/CMICallbacks.h \ src/lib/bml/BuzzMachineLoader/MachineDataImpl.h \ src/lib/bml/BuzzMachineLoader/MachineInterface.h \ src/lib/bml/BuzzMachineLoader/OscTable.h \ src/lib/bml/BuzzMachineLoader/mdkimp.h \ src/lib/bml/BuzzMachineLoader/debug.h libbuzzmachineloader_la_CXXFLAGS = $(PTHREAD_CFLAGS) $(BML_CXXFLAGS) \ -I$(top_srcdir)/src/lib/dllwrapper \ -I$(top_srcdir)/src/lib/bml/BuzzMachineLoader libbuzzmachineloader_la_LIBADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) -lstdc++ libbuzzmachineloader_la_LDFLAGS = -module -avoid-version libbuzzmachineloader_la_LIBTOOLFLAGS = --tag=disable-static # buzzmachine loader (wrapped adapter) if USE_DLLWRAPPER dlldir = $(libdir)/win32 dll_DATA = src/lib/bml/BuzzMachineLoader.dll endif if BUILD_GST_CONTROL_BINDING_ABS GST_COMPAT_C_FILES = src/lib/gst/gstdirectcontrolbinding.c GST_COMPAT_H_FILES = src/lib/gst/gstdirectcontrolbinding.h else GST_COMPAT_C_FILES = GST_COMPAT_H_FILES = endif libbuzztrax_gst_la_LIBADD = \ $(BASE_DEPS_LIBS) $(BT_LIBS) $(LIBM) libbuzztrax_gst_la_LDFLAGS = \ -export-symbols-regex \^[_]*\(gstbt_\|GstBt\|GSTBT_\|gst_\|Gst\|GST_\).* \ -version-info @BT_VERSION_INFO@ libbuzztrax_gst_la_SOURCES = \ src/lib/gst/audiosynth.c \ src/lib/gst/childbin.c \ src/lib/gst/combine.c \ src/lib/gst/delay.c \ src/lib/gst/envelope.c \ src/lib/gst/envelope-adsr.c \ src/lib/gst/envelope-ad.c \ src/lib/gst/envelope-d.c \ src/lib/gst/filter-svf.c \ src/lib/gst/musicenums.c \ src/lib/gst/osc-synth.c \ src/lib/gst/osc-wave.c \ src/lib/gst/toneconversion.c \ src/lib/gst/propertymeta.c \ src/lib/gst/tempo.c \ $(GST_COMPAT_C_FILES) libbuzztrax_gstincludedir = $(includedir)/libbuzztrax-gst libbuzztrax_gstinclude_HEADERS = \ src/lib/gst/audiosynth.h \ src/lib/gst/childbin.h \ src/lib/gst/combine.h \ src/lib/gst/delay.h \ src/lib/gst/envelope.h \ src/lib/gst/envelope-adsr.h \ src/lib/gst/envelope-ad.h \ src/lib/gst/envelope-d.h \ src/lib/gst/filter-svf.h \ src/lib/gst/musicenums.h \ src/lib/gst/osc-synth.h \ src/lib/gst/osc-wave.h \ src/lib/gst/toneconversion.h \ src/lib/gst/propertymeta.h \ src/lib/gst/tempo.h \ $(GST_COMPAT_H_FILES) presetdir = $(datadir)/gstreamer-$(GST_MAJORMINOR)/presets preset_DATA = src/gst/audio/GstBtEBeats.prs src/gst/audio/GstBtSimSyn.prs libbuzztrax_ic_la_LIBADD = \ $(BASE_DEPS_LIBS) $(BT_LIBS) $(LIBM) libbuzztrax_ic_la_LDFLAGS = \ -export-symbols-regex ^_?\(btic_\|BtIc\|BTIC_\).* \ -version-info @BT_VERSION_INFO@ libbuzztrax_ic_la_SOURCES = \ src/lib/ic/ic.c \ src/lib/ic/registry.c\ $(ALSA_C_FILES) \ $(GUDEV_C_FILES) \ src/lib/ic/device.c \ src/lib/ic/learn.c \ $(LINUX_INPUT_C_FILES) \ src/lib/ic/midi-device.c \ src/lib/ic/control.c \ src/lib/ic/abs-range-control.c \ src/lib/ic/trigger-control.c libbuzztrax_icdir = $(includedir)/libbuzztrax-ic libbuzztrax_ic_HEADERS = \ src/lib/ic/ic.h \ src/lib/ic/version.h \ src/lib/ic/registry.h \ $(ALSA_H_FILES) \ $(GUDEV_H_FILES) \ src/lib/ic/device.h \ src/lib/ic/learn.h \ $(LINUX_INPUT_H_FILES) \ src/lib/ic/midi-device.h \ src/lib/ic/control.h \ src/lib/ic/abs-range-control.h \ src/lib/ic/trigger-control.h src/lib/core/marshal.h: src/lib/core/marshal.list $(AM_V_at)$(MKDIR_P) src/lib/core $(AM_V_GEN) glib-genmarshal --header --prefix=bt_marshal $< >$@ src/lib/core/marshal.c: src/lib/core/marshal.list $(AM_V_at)$(MKDIR_P) src/lib/core $(AM_V_GEN) glib-genmarshal --body --prefix=bt_marshal $< >$@ BUILT_SOURCES += src/lib/core/marshal.c src/lib/core/marshal.h CLEANFILES += src/lib/core/marshal.c src/lib/core/marshal.h EXTRA_libbuzztrax_core_la_SOURCES = src/lib/core/marshal.list nodist_libbuzztrax_core_la_SOURCES = src/lib/core/marshal.c src/lib/core/marshal.h libbuzztrax_core_la_LIBADD = \ libbuzztrax-ic.la \ libbuzztrax-gst.la \ $(BASE_DEPS_LIBS) $(BT_LIBS) $(LIBM) \ -lgstaudio-@GST_MAJORMINOR@ -lgstpbutils-@GST_MAJORMINOR@ libbuzztrax_core_la_CFLAGS = -I$(top_builddir)/src/lib/core libbuzztrax_core_la_LDFLAGS = \ -export-symbols-regex ^_?\(bt_\|Bt\|BT_\).* \ -version-info @BT_VERSION_INFO@ libbuzztrax_core_la_SOURCES = \ src/lib/core/core.c \ src/lib/core/tools.c \ src/lib/core/buzzcallbacks.c \ src/lib/core/application.c \ src/lib/core/audio-session.c \ src/lib/core/childproxy.c \ src/lib/core/cmd-pattern.c \ src/lib/core/machine.c \ src/lib/core/parameter-group.c \ src/lib/core/pattern.c \ src/lib/core/pattern-control-source.c \ src/lib/core/persistence.c \ src/lib/core/processor-machine.c \ src/lib/core/sequence.c \ src/lib/core/settings.c \ src/lib/core/setup.c \ src/lib/core/sink-bin.c \ src/lib/core/sink-machine.c \ src/lib/core/song.c \ src/lib/core/song-info.c \ src/lib/core/song-io.c \ src/lib/core/song-io-native.c \ src/lib/core/song-io-native-bzt.c \ src/lib/core/song-io-native-xml.c \ src/lib/core/source-machine.c \ src/lib/core/value-group.c \ src/lib/core/wavetable.c \ src/lib/core/wave.c \ src/lib/core/wavelevel.c \ src/lib/core/wire.c libbuzztrax_coredir = $(includedir)/libbuzztrax-core libbuzztrax_core_HEADERS = \ src/lib/core/core.h \ src/lib/core/tools.h \ src/lib/core/version.h \ src/lib/core/application.h \ src/lib/core/audio-session.h \ src/lib/core/childproxy.h \ src/lib/core/cmd-pattern.h \ src/lib/core/machine.h \ src/lib/core/parameter-group.h \ src/lib/core/pattern.h \ src/lib/core/pattern-control-source.h \ src/lib/core/persistence.h \ src/lib/core/processor-machine.h \ src/lib/core/sequence.h \ src/lib/core/settings.h \ src/lib/core/setup.h \ src/lib/core/sink-bin.h \ src/lib/core/sink-machine.h \ src/lib/core/song.h \ src/lib/core/song-info.h \ src/lib/core/song-io.h \ src/lib/core/song-io-native.h \ src/lib/core/song-io-native-bzt.h \ src/lib/core/song-io-native-xml.h \ src/lib/core/source-machine.h \ src/lib/core/value-group.h \ src/lib/core/wavetable.h \ src/lib/core/wave.h \ src/lib/core/wavelevel.h \ src/lib/core/wire.h # -- songio plugins songiodir = ${exec_prefix}/lib/buzztrax-songio songio_LTLIBRARIES = libbtbsl.la libbtbsl_la_LIBADD = \ libbuzztrax-core.la \ $(BASE_DEPS_LIBS) $(BT_LIBS) $(LIBINTL) libbtbsl_la_LDFLAGS = \ $(BT_LDFLAGS) \ -export-symbols-regex ^_?\(bt_\|Bt\|BT_\).* \ -module -avoid-version libbtbsl_la_LIBTOOLFLAGS = --tag=disable-static libbtbsl_la_SOURCES = \ src/lib/core/songio/bsl/bsl.c \ src/lib/core/songio/bsl/song-io-buzz.c \ src/lib/core/songio/bsl/bsl.h \ src/lib/core/songio/bsl/song-io-buzz.h \ src/lib/core/songio/bsl/song-io-buzz-private.h noinst_HEADERS += \ src/lib/core/core_private.h \ src/lib/ic/ic_private.h # -- apps ---------------------------------------------------------------------- bin_PROGRAMS += buzztrax-cmd buzztrax-edit noinst_LTLIBRARIES += libbtcmd.la libbtedit.la plugin_LTLIBRARIES = \ libbuzztraxaudio.la \ libbuzztraxdec.la \ libgstsidsyn.la buzztrax_cmd_LDADD = \ libbuzztrax-core.la \ libbuzztrax-ic.la \ libbtcmd.la \ $(BASE_DEPS_LIBS) $(BT_LIBS) buzztrax_cmd_SOURCES= \ src/ui/cmd/bt-cmd.c src/ui/cmd/bt-cmd.h libbtcmd_la_LIBDADD = \ libbuzztrax-core.la \ libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) $(BT_LIBS) $(LIBM) libbtcmd_la_SOURCES = \ src/ui/cmd/cmd-application.c src/ui/cmd/cmd-application.h buzztrax_edit_LDADD = \ libbuzztrax-core.la \ libbuzztrax-ic.la \ libbtedit.la \ $(BASE_DEPS_LIBS) $(GUI_DEPS_LIBS) $(BT_LIBS) buzztrax_edit_CFLAGS = -I$(top_builddir)/src/ui/edit $(GUI_DEPS_CFLAGS) buzztrax_edit_SOURCES= \ src/ui/edit/bt-edit.c src/ui/edit/bt-edit.h EXTRA_libbtedit_la_SOURCES = src/ui/edit/marshal.list nodist_libbtedit_la_SOURCES = src/ui/edit/marshal.c src/ui/edit/marshal.h \ src/ui/edit/authors.h libbtedit_la_LIBADD = \ libbuzztrax-core.la \ libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) $(GUI_DEPS_LIBS) $(BT_LIBS) $(LIBM) libbtedit_la_CFLAGS = -I$(top_builddir)/src/ui/edit $(GUI_DEPS_CFLAGS) libbtedit_la_SOURCES = \ src/ui/edit/about-dialog.c src/ui/edit/about-dialog.h \ src/ui/edit/change-log.c src/ui/edit/change-log.h \ src/ui/edit/change-logger.c src/ui/edit/change-logger.h \ src/ui/edit/crash-recover-dialog.c src/ui/edit/crash-recover-dialog.h \ src/ui/edit/edit-application.c src/ui/edit/edit-application.h \ src/ui/edit/interaction-controller-menu.c src/ui/edit/interaction-controller-menu.h \ src/ui/edit/machine-canvas-item.c src/ui/edit/machine-canvas-item.h \ src/ui/edit/machine-menu.c src/ui/edit/machine-menu.h \ src/ui/edit/machine-actions.c src/ui/edit/machine-actions.h \ src/ui/edit/machine-list-model.c src/ui/edit/machine-list-model.h \ src/ui/edit/machine-preset-properties-dialog.c src/ui/edit/machine-preset-properties-dialog.h \ src/ui/edit/machine-properties-dialog.c src/ui/edit/machine-properties-dialog.h \ src/ui/edit/machine-preferences-dialog.c src/ui/edit/machine-preferences-dialog.h \ src/ui/edit/machine-rename-dialog.c src/ui/edit/machine-rename-dialog.h \ src/ui/edit/main-window.c src/ui/edit/main-window.h \ src/ui/edit/main-menu.c src/ui/edit/main-menu.h \ src/ui/edit/main-toolbar.c src/ui/edit/main-toolbar.h \ src/ui/edit/main-pages.c src/ui/edit/main-pages.h \ src/ui/edit/main-page-machines.c src/ui/edit/main-page-machines.h \ src/ui/edit/main-page-patterns.c src/ui/edit/main-page-patterns.h \ src/ui/edit/main-page-sequence.c src/ui/edit/main-page-sequence.h \ src/ui/edit/main-page-waves.c src/ui/edit/main-page-waves.h \ src/ui/edit/main-page-info.c src/ui/edit/main-page-info.h \ src/ui/edit/main-statusbar.c src/ui/edit/main-statusbar.h \ src/ui/edit/missing-framework-elements-dialog.c src/ui/edit/missing-framework-elements-dialog.h \ src/ui/edit/missing-song-elements-dialog.c src/ui/edit/missing-song-elements-dialog.h \ src/ui/edit/object-list-model.c src/ui/edit/object-list-model.h \ src/ui/edit/panorama-popup.c src/ui/edit/panorama-popup.h \ src/ui/edit/pattern-list-model.c src/ui/edit/pattern-list-model.h \ src/ui/edit/pattern-properties-dialog.c src/ui/edit/pattern-properties-dialog.h \ src/ui/edit/playback-controller-ic.c src/ui/edit/playback-controller-ic.h \ src/ui/edit/playback-controller-socket.c src/ui/edit/playback-controller-socket.h \ src/ui/edit/preset-list-model.c src/ui/edit/preset-list-model.h \ src/ui/edit/render-dialog.c src/ui/edit/render-dialog.h \ src/ui/edit/sequence-grid-model.c src/ui/edit/sequence-grid-model.h \ src/ui/edit/sequence-view.c src/ui/edit/sequence-view.h \ src/ui/edit/settings-dialog.c src/ui/edit/settings-dialog.h \ src/ui/edit/settings-page-audiodevices.c src/ui/edit/settings-page-audiodevices.h \ src/ui/edit/settings-page-directories.c src/ui/edit/settings-page-directories.h \ src/ui/edit/settings-page-interaction-controller.c src/ui/edit/settings-page-interaction-controller.h \ src/ui/edit/settings-page-playback-controller.c src/ui/edit/settings-page-playback-controller.h \ src/ui/edit/settings-page-shortcuts.c src/ui/edit/settings-page-shortcuts.h \ src/ui/edit/settings-page-ui.c src/ui/edit/settings-page-ui.h \ src/ui/edit/signal-analysis-dialog.c src/ui/edit/signal-analysis-dialog.h \ src/ui/edit/tip-dialog.c src/ui/edit/tip-dialog.h \ src/ui/edit/tools.c src/ui/edit/tools.h \ src/ui/edit/ui-resources.c src/ui/edit/ui-resources.h \ src/ui/edit/volume-popup.c src/ui/edit/volume-popup.h \ src/ui/edit/wave-list-model.c src/ui/edit/wave-list-model.h \ src/ui/edit/waveform-viewer.c src/ui/edit/waveform-viewer.h \ src/ui/edit/wavelevel-list-model.c src/ui/edit/wavelevel-list-model.h \ src/ui/edit/wire-canvas-item.c src/ui/edit/wire-canvas-item.h \ \ src/ui/edit/pattern-editor.c src/ui/edit/pattern-editor.h \ src/ui/edit/gtkscrolledsyncwindow.c src/ui/edit/gtkscrolledsyncwindow.h \ src/ui/edit/gtkvumeter.c src/ui/edit/gtkvumeter.h \ \ src/ui/edit/btmemoryaudiosrc.c src/ui/edit/btmemoryaudiosrc.h src/ui/edit/marshal.h: src/ui/edit/marshal.list $(AM_V_at)$(MKDIR_P) src/ui/edit $(AM_V_GEN) glib-genmarshal --header --prefix=bt_marshal $< >$@ src/ui/edit/marshal.c: src/ui/edit/marshal.list $(AM_V_at)$(MKDIR_P) src/ui/edit $(AM_V_GEN) glib-genmarshal --body --prefix=bt_marshal $< >$@ src/ui/edit/authors.h: $(top_srcdir)/AUTHORS $(AM_V_GEN)sed -e 's/^/"/' -e 's/$$/",/' $(top_srcdir)/AUTHORS >$@ BUILT_SOURCES += $(nodist_libbtedit_la_SOURCES) CLEANFILES += $(nodist_libbtedit_la_SOURCES) cssdir = $(datadir)/$(PACKAGE) css_DATA = src/ui/edit/bt-edit.css \ src/ui/edit/bt-edit.compact.css \ src/ui/edit/bt-edit.normal.css \ src/ui/edit/bt-edit.dark.css \ src/ui/edit/bt-edit.light.css \ src/ui/edit/bt-edit.dark.compact.css \ src/ui/edit/bt-edit.light.compact.css \ src/ui/edit/bt-edit.dark.normal.css \ src/ui/edit/bt-edit.light.normal.css # -- plugins ------------------------------------------------------------------- ORC_SOURCE = src/gst/bml/gstbmlorc include $(top_srcdir)/orc.mak noinst_HEADERS += \ src/gst/audio/plugin.h \ src/gst/audio/audiodelay.h \ src/gst/audio/ebeats.h \ src/gst/audio/simsyn.h \ src/gst/audio/wavereplay.h \ src/gst/audio/wavetabsyn.h \ src/gst/dec/bt-dec.h \ src/gst/sidsyn/sidsyn.h \ src/gst/sidsyn/sidsynv.h \ src/gst/sidsyn/envelope.h \ src/gst/sidsyn/extfilt.h \ src/gst/sidsyn/filter.h \ src/gst/sidsyn/pot.h \ src/gst/sidsyn/siddefs.h \ src/gst/sidsyn/sidemu.h \ src/gst/sidsyn/spline.h \ src/gst/sidsyn/voice.h \ src/gst/sidsyn/wave.h plugin_LTLIBRARIES += libgstbml.la noinst_HEADERS += \ src/gst/bml/gstbmlsrc.h src/gst/bml/gstbmltransform.h \ src/gst/bml/gstbml.h src/gst/bml/gstbmlv.h \ src/gst/bml/plugin.h src/gst/bml/common.h # native libgstbmln_la_SOURCES = \ src/gst/bml/gstbml.c src/gst/bml/gstbmlsrc.c src/gst/bml/gstbmltransform.c \ src/gst/bml/gstbmlv.c libgstbmln_la_CFLAGS = -DBML_NATIVE \ -I$(srcdir) -I$(builddir) -I$(builddir)/src/gst/bml \ $(GST_PLUGIN_CFLAGS) \ $(BASE_DEPS_CFLAGS) \ $(ORC_CFLAGS) # wrapped libgstbmlw_la_SOURCES = \ src/gst/bml/gstbml.c src/gst/bml/gstbmlsrc.c src/gst/bml/gstbmltransform.c \ src/gst/bml/gstbmlv.c libgstbmlw_la_CFLAGS = -DBML_WRAPPED \ -I$(srcdir) -I$(builddir) \ -I$(builddir)/src/gst/bml -I$(top_srcdir)/src/lib/dllwrapper \ $(GST_PLUGIN_CFLAGS) \ $(BASE_DEPS_CFLAGS) \ $(ORC_CFLAGS) if USE_DLLWRAPPER BMLW_LA = libgstbmlw.la else BMLW_LA = endif noinst_LTLIBRARIES += libgstbmln.la $(BMLW_LA) libgstbml_la_SOURCES = src/gst/bml/plugin.c src/gst/bml/common.c nodist_libgstbml_la_SOURCES = $(ORC_NODIST_SOURCES) libgstbml_la_CFLAGS = \ -I$(srcdir) -I$(builddir) -I$(builddir)/src/gst/bml \ -DLIBDIR=\"\${libdir}\" \ $(GST_PLUGIN_CFLAGS) \ $(BASE_DEPS_CFLAGS) \ $(ORC_CFLAGS) libgstbml_la_LIBADD = \ libbuzztrax-gst.la \ libgstbmln.la $(BMLW_LA) libbml.la \ $(BASE_DEPS_LIBS) $(ORC_LIBS) $(BML_LIBS) \ $(GST_PLUGIN_LIBS) -lgstaudio-1.0 $(LIBM) libgstbml_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstbml_la_LIBTOOLFLAGS = --tag=disable-static libbuzztraxdec_la_CFLAGS = $(GST_PLUGIN_CFLAGS) libbuzztraxdec_la_LIBADD = \ libbuzztrax-core.la \ libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) $(LIBM) libbuzztraxdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libbuzztraxdec_la_SOURCES = src/gst/dec/bt-dec.c libbuzztraxdec_la_LIBTOOLFLAGS = --tag=disable-static if FLUIDSYNTH_SUPPORT plugin_LTLIBRARIES += libgstfluidsynth.la noinst_HEADERS += src/gst/fluidsynth/fluidsynth.h libgstfluidsynth_la_SOURCES = src/gst/fluidsynth/fluidsynth.c libgstfluidsynth_la_CFLAGS = \ -I$(srcdir) -I$(top_srcdir) \ -DDATADIR=\"$(datadir)\" \ $(GST_PLUGIN_CFLAGS) \ $(BASE_DEPS_CFLAGS) \ $(FLUIDSYNTH_CFLAGS) libgstfluidsynth_la_LIBADD = \ libbuzztrax-gst.la \ $(BASE_DEPS_LIBS) $(FLUIDSYNTH_LIBS) $(GST_PLUGIN_LIBS) libgstfluidsynth_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstfluidsynth_la_LIBTOOLFLAGS = --tag=disable-static endif libgstsidsyn_la_SOURCES = \ src/gst/sidsyn/sidsyn.cc \ src/gst/sidsyn/sidsynv.cc \ src/gst/sidsyn/envelope.cc \ src/gst/sidsyn/extfilt.cc \ src/gst/sidsyn/filter.cc \ src/gst/sidsyn/pot.cc \ src/gst/sidsyn/sidemu.cc \ src/gst/sidsyn/voice.cc \ src/gst/sidsyn/wave.cc \ src/gst/sidsyn/wave6581_PST.cc \ src/gst/sidsyn/wave6581_PS_.cc \ src/gst/sidsyn/wave6581_P_T.cc \ src/gst/sidsyn/wave6581__ST.cc \ src/gst/sidsyn/wave8580_PST.cc \ src/gst/sidsyn/wave8580_PS_.cc \ src/gst/sidsyn/wave8580_P_T.cc \ src/gst/sidsyn/wave8580__ST.cc libgstsidsyn_la_CXXFLAGS = \ -I$(srcdir) -I$(top_srcdir) \ -DDATADIR=\"$(datadir)\" \ $(GST_PLUGIN_CFLAGS) \ $(BASE_DEPS_CFLAGS) libgstsidsyn_la_LIBADD = \ libbuzztrax-gst.la \ $(BASE_DEPS_LIBS) $(GST_PLUGIN_LIBS) libgstsidsyn_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsidsyn_la_LIBTOOLFLAGS = --tag=disable-static libbuzztraxaudio_la_SOURCES = \ src/gst/audio/plugin.c \ src/gst/audio/audiodelay.c \ src/gst/audio/ebeats.c \ src/gst/audio/simsyn.c \ src/gst/audio/wavereplay.c \ src/gst/audio/wavetabsyn.c libbuzztraxaudio_la_CFLAGS = \ -I$(srcdir) -I$(top_srcdir) \ -DDATADIR=\"$(datadir)\" \ $(GST_PLUGIN_CFLAGS) \ $(BASE_DEPS_CFLAGS) libbuzztraxaudio_la_LIBADD = \ libbuzztrax-gst.la \ $(BASE_DEPS_LIBS) $(GST_PLUGIN_LIBS) libbuzztraxaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libbuzztraxaudio_la_LIBTOOLFLAGS = --tag=disable-static # -- common -------------------------------------------------------------------- desktopdir = ${with_desktop_dir}/applications desktop_in_files = \ src/lib/core/songio/bsl/buzztrax-songio-buzz.desktop.in \ src/ui/edit/buzztrax-edit.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ # install .xml mime info file sharedmimedir = $(datadir)/mime sharedmimepackagedir = $(sharedmimedir)/packages sharedmimepackage_in_files = \ src/lib/buzztrax.xml.in \ src/lib/core/songio/bsl/buzztrax-songio-buzz.xml.in sharedmimepackage_DATA = $(sharedmimepackage_in_files:.xml.in=.xml) @INTLTOOL_XML_RULE@ # update desktop/mime database update-desktop-db: if WITH_UPDATE_DESKTOP @-if test -z "$(DESTDIR)"; then \ echo "Updating Desktop database."; \ test -z "$(UPDATE_DESKTOP_DATABASE)" || $(UPDATE_DESKTOP_DATABASE) "$(DESTDIR)$(desktopdir)"; \ else \ echo "*** Desktop database not updated. After (un)install, run this:"; \ echo "*** $(UPDATE_DESKTOP_DATABASE) "$(DESTDIR)$(desktopdir)";"; \ fi endif update-mime-db: if WITH_UPDATE_MIME @-if test -z "$(DESTDIR)"; then \ echo "Updating MIME database."; \ test -z "$(UPDATE_MIME_DATABASE)" || $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(sharedmimedir)"; \ else \ echo "*** MIME database not updated. After (un)install, run this:"; \ echo "*** $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(sharedmimedir)";"; \ fi endif if USE_GIR libbtcore_gir_sources=$(patsubst %,$(srcdir)/%, $(libbuzztrax_core_la_SOURCES)) libbtcore_gir_headers=$(patsubst %,$(srcdir)/%, $(libbuzztrax_core_HEADERS)) BuzztraxCore-@BT_MAJORMINOR@.gir: $(G_IR_SCANNER) libbuzztrax-core.la BuzztraxIc-@BT_MAJORMINOR@.gir -$(AM_V_GEN)PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):$(top_srcdir)/src/lib/ic/" $(G_IR_SCANNER) -v \ --namespace=BuzztraxCore \ --nsversion @BT_MAJORMINOR@ \ --warn-all \ -I$(builddir) \ -I$(srcdir) \ -I$(top_srcdir)/src/lib/ \ --add-include-path=$(top_srcdir)/src/lib/ic/ \ --identifier-prefix=Bt \ --symbol-prefix=bt \ --c-include='src/lib/core/core.h' \ --include=GLib-2.0 \ --include=GObject-2.0 \ --include=Gst-@GST_MAJORMINOR@ \ --include=libxml2-2.0 \ --include-uninstalled=$(top_builddir)/BuzztraxIc-$(BT_MAJORMINOR).gir \ --library=libbuzztrax-core.la \ --library=libbuzztrax-gst.la \ --libtool="$(top_builddir)/libtool" \ --pkg glib-2.0 \ --pkg gobject-2.0 \ --pkg libxml-2.0 \ --pkg gstreamer-@GST_MAJORMINOR@ \ --pkg-export libbuzztrax-core \ --add-init-section="bt_init(NULL,NULL);" \ --output $@ \ $(libbtcore_gir_sources) $(libbtcore_gir_headers) || touch $@ libbtic_gir_sources=$(patsubst %,$(srcdir)/%, $(libbuzztrax_ic_la_SOURCES)) libbtic_gir_headers=$(patsubst %,$(srcdir)/%, $(libbuzztrax_ic_HEADERS)) BuzztraxIc-@BT_MAJORMINOR@.gir: $(G_IR_SCANNER) libbuzztrax-ic.la -$(AM_V_GEN)$(G_IR_SCANNER) -v \ --namespace=BuzztraxIc \ --nsversion @BT_MAJORMINOR@ \ --warn-all \ -I$(builddir) \ -I$(srcdir) \ -I$(top_srcdir)/src/lib/ \ --identifier-prefix=BtIc \ --symbol-prefix=btic \ --c-include='src/lib/ic/ic.h' \ --include=GLib-2.0 \ --include=GObject-2.0 \ --include=Gst-@GST_MAJORMINOR@ \ --library=libbuzztrax-ic.la \ --libtool="$(top_builddir)/libtool" \ --pkg glib-2.0 \ --pkg gobject-2.0 \ --pkg gstreamer-@GST_MAJORMINOR@ \ --pkg-export libbuzztrax-ic \ --add-init-section="btic_init(NULL,NULL);" \ --output $@ \ $(libbtic_gir_sources) $(libbtic_gir_headers) || touch $@ BUILT_GIRSOURCES = BuzztraxCore-@BT_MAJORMINOR@.gir BuzztraxIc-@BT_MAJORMINOR@.gir girdir = $(datadir)/gir gir_DATA = $(BUILT_GIRSOURCES) typelibsdir = $(libdir)/girepository-1.0 typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) TXML = $(dist_gir_DATA:.gir=.gir.txml) .gir.typelib: -$(AM_V_GEN)$(G_IR_COMPILER) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $@ || touch $@ else BUILT_GIRSOURCES= endif BUILT_SOURCES += $(BUILT_GIRSOURCES) EXTRA_DIST += \ $(desktop_in_files) $(sharedmimepackage_in_files) \ $(css_DATA) \ $(preset_DATA) \ src/lib/bml/libbml.pc.in \ src/lib/bml/BuzzMachineLoader.dll \ src/lib/bml/BuzzMachineLoader/README \ src/lib/core/libbuzztrax-core.pc.in \ src/lib/core/marshal.list \ src/lib/core/version.h.in \ src/lib/dllwrapper/README \ src/lib/gst/libbuzztrax-gst.pc.in \ src/lib/ic/libbuzztrax-ic.pc.in \ src/lib/ic/version.h.in \ src/ui/edit/marshal.list # CLEANFILES is for files generated by make CLEANFILES += \ $(desktop_DATA) $(sharedmimepackage_DATA) \ $(typelibs_DATA) $(TXML) \ $(BUILT_GIRSOURCES) # DISTCLEANFILES is for files generated by configure DISTCLEANFILES += \ $(pkgconfig_DATA) \ src/lib/core/version.h \ src/lib/ic/version.h buzztrax-0.10.2/missing0000754042355400116100000002623311771603151015370 0ustar00ensoniceng00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. 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] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. 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 # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # 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). This is about non-GNU programs, so use $1 not # $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 $program 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 $? 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: buzztrax-0.10.2/ar-lib0000754042355400116100000001305312051522105015050 0ustar00ensoniceng00000000000000#! /bin/sh # Wrapper for Microsoft lib.exe me=ar-lib scriptversion=2012-01-30.22; # UTC # Copyright (C) 2010, 2012 Free Software Foundation, Inc. # Written by Peter Rosin . # # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # func_error message func_error () { echo "$me: $1" 1>&2 exit 1 } file_conv= # func_file_conv build_file # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv in mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin) file=`cygpath -m "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_at_file at_file operation archive # Iterate over all members in AT_FILE performing OPERATION on ARCHIVE # for each of them. # When interpreting the content of the @FILE, do NOT use func_file_conv, # since the user would need to supply preconverted file names to # binutils ar, at least for MinGW. func_at_file () { operation=$2 archive=$3 at_file_contents=`cat "$1"` eval set x "$at_file_contents" shift for member do $AR -NOLOGO $operation:"$member" "$archive" || exit $? done } case $1 in '') func_error "no command. Try '$0 --help' for more information." ;; -h | --h*) cat < $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test if GTK_DOC_BUILD_HTML HTML_BUILD_STAMP=html-build.stamp else HTML_BUILD_STAMP= endif if GTK_DOC_BUILD_PDF PDF_BUILD_STAMP=pdf-build.stamp else PDF_BUILD_STAMP= endif all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc if ENABLE_GTK_DOC all-local: all-gtk-doc endif docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp #### setup #### GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V)) GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp #### scan #### GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V)) GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V)) GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### xml #### GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XML_0=@echo " DOC Building XML"; sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ #### html #### GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V)) GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V)) GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp #### pdf #### GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V)) GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # if HAVE_GTK_DOC dist-check-gtkdoc: docs else dist-check-gtkdoc: @echo "*** gtk-doc is needed to run 'make dist'. ***" @echo "*** gtk-doc was not found when 'configure' ran. ***" @echo "*** please install gtk-doc and rerun 'configure'. ***" @false endif dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs buzztrax-0.10.2/COPYING-DOCS0000644042355400116100000004327511702053020015544 0ustar00ensoniceng00000000000000 GNU Free Documentation License Version 1.1, March 2000 Copyright (C) 2000 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. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document 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. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. buzztrax-0.10.2/docs/0000755042355400116100000000000012640736115014717 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/help/0000755042355400116100000000000012640736115015647 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/help/bt-edit/0000755042355400116100000000000012640736115017177 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/help/bt-edit/C/0000755042355400116100000000000012640736115017361 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/help/bt-edit/C/aspell.pws0000644042355400116100000000072712425141313021371 0ustar00ensoniceng00000000000000personal_ws-1.1 en 61 wiki ywyr journaling USB bmw bmx wiimotes FIXME ui prev plugins bpm metadata spectrogram wavetable buzzmachine muxed usr yqy dialogs gstreamer GStreamer tooltips FastTracker audiosink UPnP ctrl unselect vorbis Sauer statusbar desaturated Kost gudev livesrc xml buzztrax accelerometers audiodelay unmute bzt popup Matilde UIs alsa pre pc timeline overlayed SoundTracker harddisk pulseaudio wav alsasrc simsyn internet scaleable ogg plugin BML multi buzztrax-0.10.2/docs/help/bt-edit/C/version.entities0000644042355400116100000000026212640577530022620 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/docs/help/bt-edit/C/figures/0000755042355400116100000000000012640736115021025 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/help/bt-edit/C/figures/page-pattern-view.png0000644042355400116100000013405512640736115025102 0ustar00ensoniceng00000000000000PNG  IHDRx& IDATxX[W6,r/5wjnfLK2s'$`'Ƹa,eDZ1 ^DG{uo`d&=l!`0`,>Zw/ dO -B -HL-B -B--B -HPhZh 7|WO>}ÇB -BwX@ D" ]4WL c"899yڵK. B -BwX@ D" ]4WLh \ZhZ*!AH%b?1D"PC -B -aA GP$t \1>~E1566pZhZh Z9"AK抉0X1HӁiZh;,B"hQ.A+&K.uww@ucwiZh;,3booZ9"AK抉vjjjll \- Q&7zB -вkA GP$t \1޹spmm-p{キ*B -]]3E] Z9"AKIp7qiZh7т?+۶mSUUeٸt1?c777XΝԩSdӧOX[[/jhh@f=[lp8gu>wY|}}mllDŖ`FFFB}/ 9W.>B -jdnn.& GGGyySҹn3+ >ûwƥA޺u'|.'Yc\MMx;v>6#AAAȑ#%%%0.͊r@@ Y*(LL:4/dfurrKl߾cZtEEEXcėq ~B%'1Q+((ˬ>bAX eSa/ZhE҂܅Z L__?,, K$mSrhh(c$a2 ⻐)1aygϞ-000066)"s;ytttBBBEEgyyy_t =P53嬭-|s OOyb R)0;P!pjRR\hggVPP>p*cΝad܂S6AǎClp36B_5~ 0;-| :" s -Bˆ8G;ᑮ]$AȢx)x<^jj R1Ch wg||<;##+nLE[WW7 ^ `bbVعs(m9CoiiA9w}V@-%(SƑ&aw^Ԛō TRp 9(S q&@]ЇADCh,VԵ!A8lݺ=%hZ$**wg Ej1\---EIIF^E;GrѣGAm2)))D"o%Z)Œ,v˝ ZxFYB`hWWWX%%bݱ###4Aˡ1L#LB>%fٽ{7&y?~8= cy1lmb}||N:ekkK#rS %|djj£oV*Zbyyyq2̰`k֦Zh̫hĐ!8Npp02<ȖHˉHD'/"wxMZ[[Kl߾ܲVKK+66F~i1Uqqqq%%% 111欯GƾPJ;`l .ľPOzz:nܿ?|ƌ1c9Qh):hmΝorZhEBُ|TD%" $|DZnllD1*!sIWH(E"!y7hIPi.N(455%ly!7c <X$//?#0ܑ#G`D555..j>`^83QDk rΝ666%Yb `kUPzpdUUU]`_ss!GB>f -D%;z [<3_Jw_GZhI !Z(C "g"G y9ā u m۶!!▨(7C+ =\׻%DžHu3*U$kL8_`/JLLC-2ϹKJ]bfdDOX}/|@B%~rZwi?"ec\t %Yv B1*VA&”WaB;X/CP?XC /<я?ZTaV$gg$IN/19 $[7H1 0$"1.\q: /6żiQ s湲Rh qj,-yJjhh,6%sEZhye?~]@87-(a粴B˫-[lٷoߙ3gN<)''ܜL--B -HP$NƆ4hРAw `@@D/ѠA 5m^i 4hРzm~Y> 4h|r$!3!.=hnC +E0D^vP;몮qOYr=5:e}Rjk۫pj\Wu}>{ZUSmo3' y\C9.堦n5q5U =5Ұ>im计mf5jh\kUOM3{kqO>\cw ={>\ f쪎4V5ԴD[KkI5 լ}6XAU ZSևke`}ҖǵZkثpS5KWukdj穉IG k۫9pj6.h֪h;ykZtq]qrPwUwU]=5=nZ-Ozxr'g kk5w.`chp7Uuup9h7>p:YkXys=6&j=lyUW M+yݓ\XZOÜaƵUs4T0zpk0j?{Ð 8hXkyEb R 'ZTN 2de*(Y,{K~7^n􃃬rX?<~a_m?Q:S6 g~u9,جwl%+opXOmAXu8sXe~c9?qX;orXmz mC_o x(mrXam9zC?l!.?>ƽS,aooAVu'1ގ9,}2wpXXhۦY;>zoKhf ,Y>ܶiACmݤaY|7Uܬa[mRVfqTX~sQbwvncq?޼ofNGncq>eMYGf·,,6fλ,;mt-m֡7Y[G,oY;~6͜_8?gmɦ?eq^gz8?fq~b~Ǎ.H3t+y- hHĆCƫLa=RRRldKٌfWolƿ)2ƿ.ƿ06)H263Xl )0"c،=Ə/<56xM:"[?c3 ]0~🲌3~Ŧ_)0~fZ[oC{2?)R[yƟ~ ،73b!+eo3eSw)2xgMGl o2ޕgȰ)G h+2cv1ޑalg30,cy6C }خ؅"[{b|(P`323ٌlƖ {lEƖw= nƮm  v; - ,- ?d(12vŐ-m#{?e( CW-?a`ȕg! cY M-`;o]!*4Ϡ],JhRAE6 pW^iKs s s h|Ht HM =sƍ>//1:8{55/ᅥbtc츴8~1_,/fDKD+%&% q-,/,X1B~RjBFV"/Eu" Q`Ky%y)Qs_/饟buxI^7\/ U3{CXX0gCT! ;696-7-4uIcc*[VfDhF킊6>-n@* y(,(Z)Yu5?3L}QOɞUfUx!.5suug C5=ϸs"bJ%?1 (($|Hk'Њo?V`cZ(aۮ?鶎6@hLhf~fAٚZCP&@bDG;vﴲ+Ϋi)l~✽{)U%ZY%ZgD$hfVjhfV*I=#Z%Y%ZYzFJRψVIjhfVjh3U%ZY%ZgD$hfVjhfV*I=hfVjhfVb !Z%Y%ZY"DWI*I,J!ZRhvH,J!Zw*EjhfVjh*\RD+5KRD+EVߤA[-bWX)\)A o߾z+Wȵk׮_~/E>}|Á MU|D&Ɯsv t0q/:a6M,숚j4ΞjZz  %D sBcۇ+=Z{ GG#G9d<_QR]j_, EEs f&K=fY8,0"ۥ1r?R`Bү`|]#韩0m hILKT)+ߨ0oUovߩ0oT Y?`22o0F[v鿨0T`U摕wVfNF}_omP -'# oJx)2-iYVlD ''s SJr)2*]*Onޣ>TBY=h+3?f0T[KPa*F9 ̃*C*LYJLLe6So*l~,?Thkdndakjes:0(("2R[_?0"Xh#|CÃ)D|,ў1u& ^f-dUbQhnC'Rv:?- 66%VPY[ޚK<_/$aHHOsOMz,S=}Qt?`ĴVIIe|耾.yV ]]77=#MF}S}e}Zez~zYGu-wM}?=}?3j|v%,Kq3{=\jjnX+EdR LX,,++0zzz,,5u#%LA "&lxx#xHC#奏^rDRZ<kdU^XU|{ܹw7u"`̊#̱s5u.Ci nkji  H΄ IDATNT$LBF~w,jYO̻n߹09;I|f4P̡~;SsR-!ޒx*uu*D塱22Ha6VPŠ~a!$NXOs꒜کY!{p{SS=z]̫kT#֦&@sssooy3-TTF憆IAM)\ʞ^yBn@v]Gݻw`,JUbz:Us]=]bݻN|LH{^FTZ+j;O޾E9S(.q@q]-iWf?yt>ÃOefduƍk3{qNx.>Ufe4w67~*ںIZ tN:mF~MsW3Hņn=q@ n^:v^{迣}h-@DJkJWܢ\-X)dAߟ~16+?sBx\UwwwG'G#sEE]]v637 +fEuiZNjrj B W]w;_)ǷofmGS1dܵJVJXQU'=z (VkmMIpH` [ޤ:9Q?L5y3_XTYJ-y<_ޓ/bʪ ܼCҭ&%@u1Qf^fKgKC[C-Zڛs%(*uURbر*>zXNNnx|XXL֭'O4׬rz^yM4. +3 -B'ZTVSRrkAwfHvb}Eq01=1&!:.1߃Â%h*z8Oޞ|_~Qa1I1|YM |>@QaQ/P1щѰDP,*jnm~j7UGJհsSVVڽ{WhxiUCCЈP[g[pUUUmmKZ4_XDX\8RծyE|T TȽ9EG fb0ҥK^$/^VrԔQ1#g-]m0鋗.F T)G)-ID& /ȇ0- /,-xٵ 7OWS>>)TJL ӗהVAMsrâBa bT}}9ٰ^}/RQiv~v{O{kWkkW J7ۛZ:Z2|9rX__#66ɉN=zώ;C-kiiqsXT-Bʵr3Š%" DxhAݕ"Ohv1>~_hs W1 jh..큡fI344eP񣁟#2Wg/F1~u^}+*Dsdy1ndZamgYT^$io^n3D9YF렀%+[ˈ Ԉ& {wO0QV]abn[ڛ2<;|y(!!n{ٻw}%%@MSͪZ _XAa ")+iGi}Zn+-ŲX²fX'O|Wψv(;B[[[\}}*$Omo FNHLsBaUUU}}}g'raKGGGWRc+=ݾ<8XrRcYLK~k!ZKGȰTmVk h]cb;',SXF}sA&+? "[>aֺpΝ;Gz{{zF'F;+WPV M/_XhhЭ䉶ѿR>}_%%_|M 9٫E() [ jgoPRS"9e`OB>-))Db7@ue[KP&hX4T̟yAUckDtxLRtx]5ņP%T7WU鹡^VWOMNAc e%%B 8"p+*W S3SK#5#`VI .q;$u[^2~A>uu}}}(j{zJz񲿟ĥ~hh1߫[lMe`\`LkuOJ: 9JhDwՔP/ԚU P:=`J2LҚf,OPI^Ohkk^M}G5v4ֵ֭jpR8R5Xk8o9ȗYo̴[^;`;؎h<^P[mus5o/ +SRР!QСNCr8"pk[ji|U׶n24hHt3_#STPVBb0nYzN qJuߒJ[ap`d`ՠACҠCFymyaIacsc{g ҄ڥ9Эĉ+-@@UCUU}iފڊݾ5ʪ>+݅PY_Y**Vm}V,47,1ƁVgKfu%JQ\SRUBiXUg/gFr/*6D%CkľCEr /w*P !'e,떶²¥cЭĉ+!vs&h45fXNnNg4pu99+Ț_ķJ::^~^uXgplp1pұ>?Iq)qH˙Vutu-=F[_2ILٻoǎ֊ آ$g=;}Iz;3g8A_o+`Φ:ꋙ::$bʼWB}8yqi14^aD%Dwc'O|W`Oϻӕ_Ѹt<'Z=VU8* Ѹur79%ǹx$'!'g&g ш@xA`E -T`Y{g s s2$;$2Ń҄l n`X#G2&,:ÐXD%lr?Ŀ-mtxz:puk-EE0N]7LuKK}7EJ .e3ܼ&lM0,+?+4*:O롂c1*5;J_ʿ i 3Zf^&+(1--`1tDvNvPĹ + yAĄ>,K=*> ~DƓ<8 x<'G oo*J:z;*NTٜS^TYێppsW3Or#bS`5 rqs7Aݝ}}p\؃B"# *ԱP@$3=?jmm ott_vudGW~Bȫ]]K3 qߏfneN"D -QG# '#HP?3=/9-;mE -A{T%RIHD>r;䐣l#끆q)>59lNh1;塕_!vMTÌLy`5$/a - / #G{zn"!.1F&'N/*IPxϟ54gGӃiUʃ)c/S'q@Q|'2_7%m𺾑>@!)cf3 3X P=AP UՖCU/ "$<|]Ύ.^qun?zy7߹^F QCA(b/T>\-YAq *5 Qmnå5s!JBbn#6`=\~͌=ǎCAyUS{X1 ㈑ա'O>\ J@ov֨ЃS\Q"q#`FDVI`8H6 /+*?3J J 6 d` ;pzPt ܜ@/ȳI )(8a`y 4hg( =_Pf`l>q‰XFV40RP*hiiV ݒ_9 =K*Kp=8`T >E&z9:x6~8}oc×^zva 9C'ZhڳXY2PD>zsNA:ghu@oVH+Zei dZB"B`Vd22G)z^ƀY+C67R[Eʋ@110 . ^kpã]=]NYEtA 7 S_^WAK[8>vmK-mUB[Zj2h ~$I Y3r3`wGWGk=vT*L H"i OAIyʼnbpdϥ# W-V~A~OQ|r<'dC.Vԏ6AS51+jD:E G#KdkuuAaANnNqIq#\BeDV*a$X= J ܽݡlaĢPtk[&ڀ,| % ~; !!4jhQ D&<F5{qž22Q^΍ /_/xk 8A\Z@ƱZpڅP1rp"ڵ 'G:/lH}X,ۃIEo867yxVU]XWB֥֮$t+qJx_ 4֜8uVpMhH[886\w MzF·rz0=?i8l&4Xɻa7B'ΙgҮy+ zz Բ D K[KQh5Ac.Jh5*6\y<^]Cz8&^uo)6A. 6d98lw:.3ᠷ+n0za kdnAAY h;{wwl=Tsv҅҆N⓶i >Nuwz7\UaI-W1ts!zؾי|UUń։~kW2/흸2k W.gE@BтxP[_36>zƵ+W.^|ʼn c(3(j'o"#WҲҹEu7~]ouM|ڍk`Y4߼#܈&L}6xy{Sܻ߸6U?~qݩ<~'_\ @i_p>eܓ- oFZNq neFm:vNv^VvVfdJTK RwN IDATr^<\~ggfԢEÄ=يVEiqƃ%l}cϐR!X8s`sñ`M6.EQT)yM(THD+qwn#w3F~:;2YǺl /}kkDu"14LL/_2`/c###,,,444A-Ν ½dip-2ZEvGs<>|uCI2=ΐ}9> _uuEE5 5JYX[Y]I+͛ZۛG/6ԒK.ByKj[W?v_0@(4</h~qy1L%<*ͶvtT]vJ+KZ0^&z*M4^mHh޼x|}(ӡhlLCX]_qnn_NaGe(,.1^PXdip-Eg_|^ۦ:en(N^AO&.7Usr@KeUe^ptl4A[5yjѩĕ»si [ ihB |[T<~iǎihd&2&CW_ˁK|n~JHNFЉ% ;w( $؂Wӝ:SSa h[ҵK8@G   3Wq,?ū j;Ul_"ar\^3=+WRRS#D|kP>`G 5.,G?;KQQY4-vr 013:cBʸ+#+ l* ̆tH1jjM\rgχWZ^:`jdlW(,O24;O:めY:\rtr$듘xw>Wjj޿K~8}r0f{oY9[?h2t7ov2I~u@>=yjUMzar`̜̬,U *s琻Q¤+ޅ1Jqp732:rJ^~&Z6$NHCC# WЭ@RP#3>x\QR@P:$<oj!7bgeM%t}} .RgDL_9p9Ƅ()ȜýJ!J{ꊖ֦l~:U^Yre2RjT ɻ Qa,\62 -.23Q5Q x "t-cee9H(G`Uo$_ϏzJF;uTxT8/v05nḅwa Е8˸!%VmK-1چ.G59 |?x}zs-z;,Oeg}8'ŃGQ$¾Pepi1}E.6!D:|w9{&0pLI6zqmX.zi&lb㈖wpO8W*Z|Q0A'%(%/ p6#jZVY[a0M r;4ǍPDž={̝PA<>8ReJ5DKUĉzrm6B,CN[9DŽ'$/e(&6Ģ r:aw㌃9/O{zI2Kbj"FzB#C,iD.57r"Qg"$ںx{Gۈ{G/Y '%-DT^Y?#?H= 㺸QZp\Bn0n8>hq\jDc(DP"#ZjwxY$[ ŝV'ע߿-H+'}545JJ@(m-.-~{e_384w[ utu\7753!,KDTBm\zo4;}I-0lVu>07**- Џq*j*B#BQ&&ȤO5w4Q ,(,)ҀE;ϕ]pSlb,8=D%VMs [q}G־uP}ӻiBϑc6}^Y<Jl0. 28"boH@hSD?qĨ\T{xCtaF&FZ[-iJoP(4eZ'gM?SCUMmvGB],ÂzLp[X K۽g7zBڪ,/GE2K,2Y9hM4^mю]ut:vGY'vZ4gՉS< !/l #ٝ3>z"]bTxQ !ƙvZZ["ӑ@qic .]ƽpz9%DWz#deǾ.u *{Κo:+B[G[[W^/{G{== 7s&BAATA0^^M"!)8w+񲭫 9{'{ShAvvv}JP18Gf\~vwçă (da[TXIhiX8F[.*fð&fZ䑹c;yKg!gxl{f'K}l~ r##+=#+T ںjԚ:bVrǂr<.82׾;DycYVVKiy. P@S XW}Ξ=14Yu5uSꪧO,*+~PI0q{a. ?`h| /;{|Z=dl%>W$Y[ta[ob]nmg׍inDnLlLlD{z;&b۵ն]n]nU|-"%OSoo<oonb3E13/o@`q5ۓ89J%o7 ms=.wg+Ws7^_-˭5iپQ߱-OٶhYg**+mz{,\˹8`?XNsU҂]kQc@\L6p^ O$v Ɔ}F`@k/E#'?v9$gzovdbBKnڑɑnl;L^/x)Z{B;ofz;z:FC#EXW(maK.ḿf[m4zWp)Fv6kLJ24==;_:v-EU!((ۇeT Z)DğB[\U\(-{ ()bکxוߨyQ'2P'r yUwdҚمhŒ,v0yH!S==(dZܱ B) =bBy(RJhKkK !w vtBySPh˴eRu ݦ}qMqq;.%S2 Owrv|j\h+UKo(-NMƶƦw}jJ{ \wvښt-rmNԔkvj\qUWZF-H8Ɇ!HXagϞKdjVq!2)WǖaKy]9LJ-ŧOּQU!ZO>BB{sfE}T<{em֎ҚR'%=WP J؍SiUV0[2GUhn~xԩЎݬt6Y"ȳgTΗD666ju(jUSS_QZ]zs&ҷQZGUhTGEEB<Һ C-+ mCQ_uUeyUppO}'{7"uMuf*| IP;BZk^* OMVjeUyhxHAY̫L-)xƝovU骜 aohϞ2C~UpwT&׷Z=SVWo7u42;8Ըښ7GuԔ$'{7 GW_ubtQgq‰IKAW9*$[ XpO>y2+8߭]էmտڽS})jL]T>ؚ9 D#<:wOsDDkk v*UZ\~16>>oAhK +*+*.D{LQhFlk_1nv6o֓wo/=Sv՞&ΗoVWg|0_Ъ05IQZrGUhYc`?+'#C ڰʊMITNTR\2\6qn2ĭ*tէeGZܿFCcsg*zDq5/wTeF mi mISںꐰܲҴҊȜMiҍnTDN8q;QNh'kj}76AˬqT뫱vL]O%=V٢4Th+IP=Jbk^ƚԬmyE)6zYWYUY\V]QQv-<*btq^ݐMVNh꜍y͍wˬj:ez ڦڝ!-ʞlжvp)5~+ [[Ǐ7KPf#hIV4}i~a5"2C[_[V^Sr#=WJkdG!q<}nQ.No%UU;줼<$o2qo=Yn7?" Nۦk{po|b\z~9D WmmU {_fwU/ɿr$&dgsx;f|L ⣍Gy 45=,xAi.雏oݾS 9Yp^#4?]}Dٟ@hQLeSGSkB{r+)dk"}lRyXnZL}Vծ?Dzw͡3s3RxkaT~ %'#&z7竢j_HC#Co7<dMtLdRJW'TUW4UT|ZVw7]V۬ N?;u&Cxӟ@xhǾ!RקAҏ@sW?z;qF"_Hx;?٨^XHaaaHH+܆/:z^>ܹˎ=QK//3]=ϟӏ:8zhxt~;*ȃϮ{Π|Gd0] ǜmߵ#כg}}}!ZXZ:2:sWgBxDB`P3 ﮿F;G=gRsGs[W۞xy Y/qqՔp88q;lCpmW>hlnAXbcc|awO_|a:ب(mV@p0v`{cXr/nn>>yO>O!FU*>!?/o )ek}|C^/׻ި-N,M.1|JWCAѶhwU??e!npQb?~%r-Bw+}/z IDATًg1 @d῞%Kˑ,a_x c"&nbﵢ?vҏ_ۉ?R{K;ɣGq"w䞕7;G9+?:6zxt=! R0ĠWjni/" PIY{p7\7:ߟa,"`<5+!Ź.]_`fQGo?6C1S&̅3YOOH=/a؎7o-=>&%#+CH(Sږ+hc]CMmڊt۬qluˣ_z;cvvK w;wóu]؎ {>W /#2_X^rϿc5&ng;$A T/*.s:駟 ?O>Qwfg3> ;pn_gOp&I59 9 IIRaY!L$ewΝ'!=ܨ~p DC7fKK3C1WGاJ|,U#BK_؀%h5G)(S#VNZ>~W\AMMCҼəͯ + 1 oDndk{M}TBH 2,7 4LB.MG?mh0vCཫ[x)bcI8S~:B7tN:q q'nG: ${8=vM  4$u¹7P@E4+ﮩ68/*=ݎӟ~) ]DI׷C53/`Sa@6Fޅ6M|| C@A0wEyi`Cf($4q: ˇ,DooD ځ gG9Qz;(!3.bm-)-9weN]c"o1=epץBV.5ātǿL^Ib1e0#8#  >x,t/L{vD>O~ '%Ş=1S'Og !ՄR~C!B "X6"УzĤvѼ@4iGLp;EL1"\u͵oVJ{#>t/Gc_CtL!u;ihk@*:{,K),/.ƚ?C`af䙓87.2Dq*ՇمY\37Vs?ZM[[Es1 ӾLAp{q7x]S(zzP-fC)QWpbM<;S4%<ߌj*Bp_};d]569cQ/7F<Ĩ"yyy X9?b$v]k!rX]'_o_JtL9;ѵ̋ύWRZSe?ϵkXؿF_+ŘOy]97›(›]gm7dxOpǩv;W_Ho,{֑&Z[q1ȪFA:wG}g~~ͭh _uEˇtum5 qzW/.]Sc Dd1=ycp"aaZH]nqnCk}0ŕJ,|| CڬQ-m-8P, r171eeQr B VۋJ(76#b39{"H(V**VWv=!3뿵g|ՔA<~󫴜4}e/'N x*#/⥋ ~ g]kv=VЀ c!-*w;j@6w-Vn S & \ܹ \ %}NQ[LuC2Fж? =̨"tH_|s=+ף]*U `bbGa6v4E)_H'1-.,ރD Z[HRB;D+x?#65xUUûN^SsO~y˓#e!?4/S'n&oG; ? å99Ak(UQ`O;zp?UܶLN) \6HC-[>.3,]S#4֘n|]mső/~A2(,Ja%/*7Owp#ow8/aPG6$,$,",($( 05z}=vHHJHH9S> \Eʅ;MA1hA߰Ȕm* (`АgN'&'.Zxv_'39{c":_? ǽuۜ`4  cÉd"UפC2e϶f$e p{6jbՋ fSڦZyg J (+@˨cwl9{Η}+k+([[[}RWo ОqhuZTՕH;wQPhL\*V[ۍTWuЀ];Hlg?ChgA ۺ:͝2)e%\HO#Lᩤ$!]i_5q;Aa@.n_&zyl@)>&#A C|zkjp`ttv yad!D wEE/+C.޾ 24"DH77<Nw4NLOt8Hqycw տW~/^|=s3p;yApK~WoUپȇU=5b. DM;+3eQ޸g|ۺۺfcI IJ(ŵּQuh샓wwJ m@jt5B]Y[frT`|btl|x`lMT]\t=}7kT@C^^[@Srf@`FSѲSChrn{w{@ Z\I@ͭ~{ּQ}hu)rwI$ !q[g˷nk[o5m]{g{ >M/;H+>B۳-O $l~kY(kyo?t^^[C.]TP-}AA-W}&nÊ $RugXsK+Kkwp57*8X#Of?FC;ث 44@p+zּQ}h\t!04((,Z *UU_hTIU ֪0-;̅3MM,MEaQVbF_{#—BB;53e58Av6ukeWp[-էegs[M-3>MƦގ>K cе̃f }p5/sT0=.% ȿ+Vg_|V^Wuܩ3O?61pʯN}ULM?{l]S'? A-{Ï^xA_nJmvv:Ņ[ zq^18Pֆc7U&Η+Bնg|0&fCߦ7 pzּQ}hyGcAV7TGEmn!7nhyEyͯPSlCu£}};F2r3^-->yȬے}p5/sT0>ݧ_gW(*LNO>Ch__@HnϻbhB#yz;H쬼SgOaC\/x?~\cJmvit6鉹w &2Cv38^COJyd=ڵP*̎7зp{A(탋yр(^O.m6+/?M|ff OIU ո8ԯhHf~9s - RtAioTx&zt}.gik:10kk6c_{%4q@h1/fwW1w5 U>ؚ9o V}uC5gQy7ߠM_y,uÊcˉ'>b<{FHDHiUizNzP<@9}c7鞁gӃ5>55gkl]GK[WV#b͐9Fʗ]/]lhnyyCV|Pƒ2r3>Z]C hF-̼o1t,z|J񯎟>w:(B7B;#7f5[ -?|mcBVgc0뚞V?JּQ}h*c*C,ԌTбWB BSORNhQ;A{W{yx|xvqVOj(kވ @|IIۤˀ#>S⣱f?.vvy|4S}R= ,̘n 9kKP(7׿;`MM'%iZ;\8Hߦwکq5/_TF{w;NRVHhgf7Ήɲ{9T>S&Q/.勪+FQJhg !wIvnqn`dByUJhG !w)vͱB;ŘuBK!ȅBkرwU]=WT쳳U)B! |DTg:թӧ)t"2&hA&gu-ЈPaa7Jn_! h;BE+Zc27ɚdl  >uu6L]v3YLN80({l|l& l[+j*C vhnoFO̹3]j6l{݌=FxtͺgW;--s}c}GI%<mhx(Ba‰rȟ֎V+WdIIP;-$A.āhX ȆKGy\(,vRx@&$'@;{;SSQB>5&CvPBqیmy7.]DtW;~~(Q[O*!2{@% ʚ-eUe.VVbnPhjm5R(7EMWnCAq/_:&bGeE:" ŔWvɭDۨ-ޣmhmjoC$LעLJMBmЄ|Q)#K99Ų2$:sAJQRCSkI)I(sQ+]gɚdO%bGUTaa'O_r1l@P;[aI!D ugGO6qRE nO6qעx~]#<~~8$"2Bx14"IHIDtW;alx\j64>B5jCvoY npI!Bڡ!d`I: 7gxbXv֦`x|PN\ BC9]]_]8 Mj`xd1dlrPNs-Z!DVڵ5$񉉉Y!G vtwu ##YxnnnjjjlllrrP$6?? aDH(QRyxxBܝ_yW^5NrJxxxNNL-6_t)((`G%BZZZj0Zv8G۠GN~N1 "Cό [l---шi:GQh !Юz6u<  )x{(P"IT) IDAT\)ݿ7dZB((+^^^`u:]LL>^ԓ`OhHtTZ`ZB(*^^^}}}(UQtQOll1qqq7GGE F%BԴOeeeFԓmŅ  S4F%uvvz???hE;###QQ B+ȳexM\eg -!Duձ777wwi)_W'OtaٙQ>`)G(WlBKQj⩡!&EQ ف684(:*AhgffJ8|Gb֟=ZB(*B*| ʹZB((w֖ì3VQYmC9Mj!YQNh767IC9Mj!YQg򞿰z^{QTh777 CDDDlll? )]&: ֦l333R<ՍSSS%11@tTZ`ZB(ֆF1(RjkkD=PYEO.--eeeBKBKQE? bPbLQ ?o(4(QThgff677333>>>111;;+n`pJGKqUdZZGaa!UGȘf;wn:!:* -M0 -!DuڵRj}|||ԩ) -MQh !Юz6'==QQQϟҤ: ꊗh4tQOlllkk/Zk: OWWVSxHɓ'aaabEU(4(Q=Z&<6MxPV#GZEG%,]q4rŖ?{(QTh=<<4Mll=Kh? h-;[Ph !! &%%TE4 k׮lD;[vBTG/xsVФ:ZlZB('?_ᜌ&eBghog!޹sglllrrՆgzz\^Ҥ: [nEGGk4z)/"*:* -M0 -!Duڭe͖)=11q޽gϞctBTG9@:22"ѣG@իaaa&I[(4(QThfsZZ'==ovvΝ;xRSW#:* -M0 -!Duȱ13ј/AEkoӧuuuQ1QBTGhAma0D=nݺwޓ'OQfdgJG3K8|Gb֟=ZB(㥥%aaaHHlMM 6 YYY##}xQ;&h-;[Ph !>Ud@͊=xCCC}}}SSS>mdu{ǤxM\eg -!DuP(qA7C$B!޽ww0lfnFtT9ۡ&eBghog!ƴlɄ<(-))INNF(4(QNhWVqqqaaa>>>CCCR<ڌQQhiQh !&%%YVT(O!R<(vGEGE F%rB l6աHIKKSIQQhiQh !zyyTt111Ryd2eddz}yCCC^^ޣGN -M0 -!Du}855 j+++E=K+++hgttTb 3K8|Gb֟}<ZB(a ZRmmmE+1u B;==}…a{ǤxM\eg -!Du ^ C yqQQиt!ǎX,I8|Gb֟=ZBW_ԳzxW=&Qزg:*? EnZB('7o--/j⡜&eB(3yon&FBTG~~7T3???==-xBONN0`sssSSSccc'u܁F%rB LKKsss(,,IL4hfQMZ'/_|/ =q:.""ʕ+999+MVBTGA][---X VxbccGFF3EG5apww7s/ ecmooe3##Cy%jZB('+k+zEf+))A*IOOONNFE_(3yZP_:΢mii A 6 -!Du//^888bbbD=(gP8qرcq{ͽО>}c΅g=aXF%B j.|VSx8===׮]՞/MMMr'%%MNNs1gc:G Մf x¶OHHHMM JYPP :*Ahv:BVkVVxdGGGs\eg -!DuvF{ppP-///**†Y/:* JKK^qٹB???NgG>C>-;[Ph !Ѣ*EDRwzP}B)0''`0@DEG59= ôZcX,؄04Z:*rŖ?{(Q +$~3ԡF%6: EG50w8'IY-"+>^ԓ033BKBKQE˫ԔN@\'''Z-ZNBKBKQvm%$$i'4'--d29r̙3ɓ'EGE F%uvvz???DOBBDdddFtTZ,.K8|Gb֟=ZB((cccL777wwi)$͆$MhmiiiZfmmm)X;[vBTG/Zxjhhf iQ3>>>33#<ݽ9">*Ahq࠽YG(WlBKQEvqqQHo!{\p -!Du;kKa訬6로&eB('nҡ&eB3y_}Tԃ*6&&r4;/{&'';fXq4rŖ?{(Q +ٹϟ q4rŖ?x(QAhP4F%rBxao/ʹhnRV !Ȋ?&gh4L!Du񉉉YwCx'''wbjBtTُ955%`myl{j&&ͲF%rBQXXT+ŃD\__ҥ ]NtTZjq 1 YXEDD\r%<<<''gxxXvl,;w.e:F%BZZZ A}||SSS322b4MzQMNOW G)xI``Ȑ)ݿ݆FGG''':u B{YoZB('+k+zf+))AM# E|9iʚ?E!DL-6Tqq1{y.S(QPhWWQ_t)ooJ /e+Z3 pQhe/8::*fR2uBKQEǧkŇZ-tttVDE'5==x5l"'%%MNND]ʔVA2O< ^ ~YNHHZB(-T&|R<999YYYVI8:1*:Ɍ QzB+|/`4vq ʵu(WlyzaG-fHRh !ж{xxh4ރR9@Al̞-ʦ1݈gYRh !VIfC9ՍBKQ -m6 -!Du/΋jnapNFsqZ!DV3y3yQZhܹ#|? agQbgiiӧZtBTG9|y֭`FQ322ɰ*IDATKaBKBKQvk2;;{yyfA5;;;x|||766VkRRRK{(4(QNh767PH}`(((.--٧OhRDGE F%B8777??n6ҤxB 3LQBTGQϞ=3<ޞ(:* -M0 -!Du} ;w,..fdd QUxvkk eF7 =B7fq4rŖ?{(QS(LQ&''#zݻR[[x{QtTТ>b{ǤxM\eg -!Du?ϟ///LԬSgxxIG ƁI8|Gb֟=ZBhoQh !BJI5)BdE9{a܌lsC9Mj!YfBTGQ3iii& yP3??_XX*+EGE F%rB W',,ghhHcX.\[;EGE F%BgZGGGKJJD=:)4(QNhWVWPvvv摑x)gcBKQE˫ԔNKǴ: JHHHSS‹O,h-;[Ph !臡zzzF#400jz,.\+h-;[Ph !lllzhXX֧Oz2256<1'O\ Ny]hU!Wq<_'U{ǯۇu ZOW}$H!!) 7=``cY }!8*RURw ?+&~3}2ws= =b@K&#hdv} ڦΈTy5"UP l>%dNsZf@'w|oܸ%hɗvwwxlt9NNձɱ 9%d{-H@k]Jw_mPvvC`[im[OmplPc5rS{AףkW[-f۟+aA:xnis%UӜ8Og'싫1hW6W}PXX\R\$,llw91%/'|a_۰M(zo-!%)-)֯hZN৤ty4^JZRf#'{ɨ֟ƚdtH{6ѱ7cnbGEU]@(&ŵҊbQ1&(NYշ~ј?{,=%%UWOsxk*WVT5!q9x= w_b햚Ք_/I#mddeJ94 5u5QJa!KV|sgD2%kVNΨ&JK++G8yXþy WVln1[jݱzJ3ahRS#IxJ׼eeTX,.oG3i P3fh]S ^zwhg~^7ل| xwj;Aq$~wD>ti[1`20_hZ3Vg?̓h_".A,C3ʎSK0r=9, a)#ip9xyA`i} YHۭ5h2}fs>$W]X]saaP:ΗXbnc(zDss ljbzQ@wJ'pk :(fI>ŏE%E ,6 FN%_ڂZA p`l.<PESA(QдM٦Rn͌-";נmhjs9o Tg?̓hdԌԭ-<o `,Os$ & kWU0fŵŲ2W%Um^+K5?cY,-+-=;Ǹm짠m$^RzV:b]m`l^Z:)i)ݕWs 鲊2T bԷogjZY*-be񷒘WX\d5: F ~o#@}2ƫ2l5O#2igсosmk ۦ<^6~ eB4~ISsS(o OehP}"L{7'hѹ!W-P h!Y/ڔmf_Uީ4dHmP@#2+JV;FЕ]j}wh{z%2 :ś}jv khLD;X2lc:KSar0C"3Z=Qk:=Ke.|P_˹~ ] kxa$eCW_?-\߾/GHK?29Xf@{3;š1n/B%В/eA֭]wvw{.ɗ'*JL^(h :@K0/eݏz ĺC-̮F[[z[U|@KPvp;;HȲx: &В՚UŵYºlkZFh =藣mdY?1w]DK&[BPUnjQiɁ@E=8:p?yx"Ѣ_-D"HXZD"XT@Un0RH$I$D D`p"J >|xᘞlF"tD".BXH4o[azrr$D"]b"8%p h ڏ?믯^YZZBw@7brD"HX@!,@$@ \=(}xxmdG"H$%P # Pf?߽{.kDcÁ~H$D D`p"J '5B1z "H$ (E(K@3`_hDǏч;D".BXH4-D"H@K"H$"ВH$Ģ$D"(-D"H,@K"H$"ВH$Ģ$D"(-D"H,@K"H$"ВH$Ģ$D"iL>IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/settings-shortcuts.png0000644042355400116100000004124212640736115025432 0ustar00ensoniceng00000000000000PNG  IHDR5 IDATxp[W;Sjkjf_Φyovڝٷ==vn%+'+ST`99'@$LD sbs#)Y&-b{҅ C BP({O BP(P<( B/d BP엯ǃ677WWWgggR( B< O-`XĞaɑv BP(G 8سyY.z{{1^ojjjP( By [3=!2J$" BP(G 8سy,--MNN_0B ,+BP( Q0xls?"l ЖvX dffQ( B< O-`XĞc~~~``@K$ mn' `bWTT<g9`{6nKee%ł8 88|jŋ!E<޽PTT3$ %+W` pAAà  Л-?$ ^nm9RA8PVps: xqy@;?;:ůyA^cCc\YYfn/fbggUu:==poyyiO@< Ƒ1uw +*E @PS[# srrY9ӻZ YBAAGGww[_/ pqqquupOJNhjj/͖ٗb2 8<߿T*3#""\]]<==}}}+p.Ϫonmm=a޽{Yʦ%Oރfggeiiiz666vy2 8wOOdf,h4+4v\xK¢e7x< ;0X^^97>>>...ڤŝ;Źkkkh4QN7>>TUUUa ^---d2͆.ؾ2== l͗_bX𰣣T*h``1Hgg'3Lyy9inn777J%:;"L٘7ϒyAvq'6&++y#&f& όX Ay<&''9:Fբ9q󥥥R>|5h!NXuXIgSQ,Gw0Vq~~g2 8< 9YYԘа bbp듙1>>-: NJ3s3⺺:=z< ДrDj$aB0$$?!X|~YY&fׯ_#cj<86|B)---$00pyy٥Ṅ̃ 49 `ِܜ;w?600`~b:s8 wv#%SSS-eC*fbby?)2VkVWWG8-h/0&xaaјQf䙙 \!h4FSS3`vjdž̃ 4HT @ظ萐ooowwwB١_֐yAv汵522RV&  ncrf ݠ/J< ;Hxhfus(=#-))1!!>!1>5-fT-S< ;`xhyl,..nll|CAAǛm|簑R2  ؘs, ^샇<yAv࠘Pڱ>yNhum]̃ WTs} 2xh``܆:&ozE6<c^ia38AsAaٖ$JjjBn~A^.+';'+'')`B*:V3?_KJyz< ;ύy~޻woqqqyyG7.fK Aa2 yP Aa<(_̃ 72 8..{9 0x?։5ϣD >88Chs@mH@q7X5=ˍ7d2 L@#P 1#\G"0zP 6 BgAayKSccwg=fxx)qԩ( 1X˃C@2m%0|> ::֭[h\va -=خsY]oН-e4`dd0syWWWg˜`j J̵C<5h4롇O`v@8 h2Nv==dK֠MJ7uc qžGsӒp}u?U@ݐ ̃8 7rдj돕_LKX2nk1EǏ6j%(4뚵ZNѶyGC`,Sw~A? Ԡ%`^B@GIXkd :"mil;2&hhLUAj)8'ǧfZ eNLF L RS0Wa8B(ېyY[Ο٩Aр5 _'c67.n.B5b 8yno޾1ǟ~]89¥ hy)MLC_FtjpX+))8`ö !;/e`pm_\#پCXyUUcʥ~gϝ=qDlB,•kW,IWC8Ӓ8] )eONߧzV+=+l{767n>[^} ž^t̃8 ;\װI;nem1=qꄨA/*-jfL%υ+ꏝ8}](e űc+؛y%'cÎK8]w HJI *-[h, %2 YlmC|IZZ+hVZ>;E.dCP ~ݱx;rʄGcM(TT:zJX@953CзAـS<)txK'ȫbo q@y\v3~"K A̵\=h6A/N=}shyQ@Ϗ}M05U 1F8z(j" \rIWCbR m 4Ξ? ĔDŻ@c6u .~!jS=8}洶Gj%5XVV%B{>7So:~)Frõڬ,W2W! 077̘GIy WYl1pTz圼F zm8H8N}<Vp,j{6vj!Xm۶]X\n1(NsK3vz捫O4LkN>[EEgyQ}Ǩ ML\o*JgؾVi\~ZzB<=l@ I "n,VVXdW2W! 0Δ-y]7-a{s-*ԊHMSY[-/C>ΜFLA`5Ey ӓj%50DX]W'1 ¡5gϝJڟd]o>{gvz3UW 83`̜LdfFvTITVU7魇¥ ĔD 眜ˮGV۱BU eG<`ɇ%,[NN1qah/7ۙf_y*a.<,?677~}9VQlKvuyʳ̃8  /d@v޵}CJ7ѷݲc )e)`&'1djr^TX{ssJAP!"Gy?M\]rsB,3*EXVBL-\zY<&ݞB|M1 c{z{Zqk3i0bƦF=qy[^{M?Sٟ%ݓ%=nymO=xO{rrstvv~^f.񊃝86!=8,ÕW{^#rܧadd~B-[?M8t{jտj|>RUgf7`nnneeH$JLLdDz(Ȓ%C-]^^^\\dekkkuu5kkk<@o&}BAV lNVRbNZg'jjVaꊚ=}'ayu9C&27C^/|継>5 CJM^E3KOPXXR666%%%򄄄0NCy3 CFFFhhhmm-l-<<<55 T___|+2 8}@CU|[]S|N8]Zpwfm-uF\^^fcddMLLegg iZŬ,δb4CAAH[P󡑦h:MCIY/[gT,8{|ֹp]Z.'R`(cmmm%0,- ;::1oJOa^P&yD~Yӭwa477oll )0a6KKKaP ,摗taqw9dA88ᆨۓMI]WF냇ussS"pILZPPy`v\/ wcSSS D!&&x:ْ_urRb_1e}ỹ 駋3gy@Ǘ ڦw&ď("4uЫkKn'| QrEN1{|a/.g bqy qCWC?qGFGlb6==ڮ.Um]3{͖ aQq!>gbp)SoήG$Ҁw>ʭL9~q+Simϼp+&^lBrxή@)%3sC-Gd9#CZIBPcU/4t w` 9nNpCL&MjuEEV[קDWy;ykEn% ĚRŹ_@US?C"qjpOzSovmdL/|[LĴf05I"Io~X oڹdV<A8j>oFju~K, Zmc{dT ѧ=϶9t.ݓ~?K*{k%YG_C(5(_ڄc>}L ȼ6!mP(M!l&Yfym \8_u|;VBsgt os)>盧GFFƬꞞ|6oxv󟭜Z0sA Sq omQՐ:X 8TQQȸ#.o~SbOHAA+ڒ}3 l~ _syE"6<9p n_k)ǝ-A~㘫- >rovz[9^?}|Ӂy~ &Il&]m! GLz/}t}s)Ó>p%޿۫!y|}셳>=p'ϛÃWՙMZNgVm;g/{Amjx yJ `yACP-/w34Ş>OAA+6ӪfQaQzW)2 8BAO摒\ZZbSTċ=5_EyyAviSҒSHjz \dssoBAAW-嫐yAvQT^43;3;?K(-,-$  {66^9WFD|c) {AA2dAA2  Aà  AAA  ~yA/-.Ӌt:tdAKv>A+U/ BiRh3?Ụ fCI$d/XE&  ^BuRXkP4/*BX&k:\e`h`hd腠*;̃ x0u$rqR75 :0P+Z-;t< GJkh~MzQq|߿ҨM;t< Gt udVVofuHn,~+SCEe;ͣn X]5U'NT9u/[n!  ^ y v왑~S[cLKbq|u _Wdj.Αo2[lϓ~ɓCg93xw|d~ss.v &  ^ ǻ{F{ӖY.ɫt&%F,wrLʨg{%$6wRRAא^%Rh4d^ar+}#Gz|G??/MJ|qxeuER^Q.GFw ,ǂ< Ẉ N{ v}RI[Jmx~mBʪL\On'֨-hfn pt'!2 i2&Fel3h$) {ZD7uX8rOkԩ?w>h̀˫ 1)egfe~eme aumum} -C,*yˋ(׮}m`dA+:VzʸO6dmӧ??rw2&&#GZoj_]E"~1iyquye,,.[&̬L%0(pfn&99m@Mm zĢYDzie Y< WG2[wC[> %]\d*2ǔҪ rEg{s$SjӠ-Wraq{کtQuM ᕱM-hϓ؊|yu,~d?QϥKsSSruWCArKaLET!=# >>>#c#'O!ͬ\t{W^,`J5A G^9fc1,_蕣xIJc''4f E%e5L߆fM vrCs]/[w7'ި~bi>8vc xChVr_4$>rA~A p^֪0%-%<"\,geg ?i&oE0뤨m6h\ڱ6  ^ hjQmݚ]ڥnhQ$yeB:n\r#ӈPϴQևEr2!3Od_S*o??g//h>0l7׋CC]\}|Sw'Yٷnߺr__@WP. zy7DP!;{Nq|}0&j߸پcm=2 ╀1VnVk͊l5ƪ$na\~_%-˥M5-fm✼D8GRfl6;5J\+Rz)zi]&yt3f&g&NcOMeVϠ"’N!ZX-ƆڻggxWo3jP5w;z:PÉ^c-/8cSc;6390HAA0Mj|ȔRN"~M@BPfW/>O tOaݝ 3QX]ޯ-߉޶ڴZ|=m+!  ^ PhtfeS[=([%-"!5Q0hVO`|T/Vd5%3r2[#OjlGJMdA+̣VR-k2EE~c>^nQc/|6ݎ?2 ⥣]Uԕ)[ͭ]mR$0 bl7ɷi11:650962>b0TVS?2 %U, KJ*^u-;iD%vqJyPɱUUc282 lפkzQ|cX[uE>&"QIDATM5h_Tυ̃  AAA  ~yAa?< nEP( (d BPfMMM,+&&ŋR( B< O-`XĞc~~~``@K$̨( }BP( Q0xls?"l ###PXTTAa4~ BP(7!` pgXZZ5 eX,VBP(ʣ `EÄm؏pv8f# 0| b3YNGkZLG4Bt$0A#^ǹ<`4n0 3L(Hn@Qf[[[ F7`&$40q8-++hIDA#AG0 @` x4_(Ht|?U|||VVB`gPQ&# ' Ο[󮧊O=H aB뎴YI;Boo?xB~B0 @`}0o&0͛&hۍAR(o(}!)y.,[N ݔYDlȮz5/%tV~#` k[|ؿ~xGp9 2ϕēkl*F_/{d]ߠ'. %OM|3<;C/&:&#a Iwx%ޙUS9.aqln%W&Հ-zYoxIR\O/7VS7ÒK H9ެ>&ڗː7s0s>.IϥNǴI7ZࡃHK R%z7RPr%h*gajޠܛ+HKq_~,C^}')1dH b@[= <]Z}ɥLq8|)1)t_(AX$ bHNE'"w zC{Byl`%sq,*j-ʒz;3Ёw[x7TFJ[ *_zx!?%DubP1@D\v&6h &j,.+=[QSqƞ,7T,10^en6g\?|e{fml+HٖVRvx=mr<] ryM^"0yA3S؁0` DEG5IUR]^t٪A}S=RmmXf>Nvh#W?x=tB T=4O }jQjEd Ƽx_[?x+/C`h#fU0y:UhW- RF&JN ޝīֆ~ғ9Ԝļʔɻ?&gݡsjb/Fŷ7w<{x|FdBVu&%fc IN|HwFo VwpDD7fL`" L~3o&0 Τb>|1O 5rV*JJT0nUW&1X.(E`H(t;D2#$6ӱmwڭL%e% ap['#[c.EŢkMڕϢ1h]ZZ?~drzSZvUh&T7Ā#<21դ6W>R5R@Rr |00jvjuQ/)liPKZ04ϓxqqϜX2i4>yxߦ6LLCc.׈W;GlAeot넴&YFD.SVod3Zwu3}dݳ߾ej?{ɴ-ߞ6SfLc_m05 Ǧ/3IUJidnO򬱺 BͶZ:E;n1)ӊD >aBt->Z酇NFwv?q ۷BBMFv]$)UG+괳f_|`B0!ޡ/a]˳zJ'؂Je87*XrjbaIkQcT\^s9&kۧw Z~£wurwp=sY˶m[|2#{qw:a`<+.).V>2: ݻ?1 /b5y,{jTT{I$ u6RzUa+?AziJ$^(fŗ׉YF1_Jzw$`W[\nNGVnB'..Abs@ q7hl\GJu~ÇG1.#-Xii94=~4rRʥQ鸸q*J~GFfFzݙ mSt] ^X\(%&e["M&s;mzMQ:}h>4(XVk{j->TՋLnխ_C]σɓ`V^%$ tcNR~VoP+U.o|8o >oG;v(**pզ^I|2L*?Bq܃nLddk`I(߲Xt٥Ke^_i6[9ts \ǵvR6sLm r,>pzس1]춢Sgh)[ t/`ںձwmazjjJ$2o߮yUk~;}]-V665"6yz4Z( ui$н~\$TRr;ލٱc_8"Gw77`LNzlt{TF=;Jj0^j4eu*Y&O;!2p9g]͹={*3,A׵ܰBF3J8v7y-T:s}˫vƤ.T{e/,ܲE[SLnjz c`2(T TYU0 3}ː.&];{,`)r@Tk;~ +Ըab'zCN> U_!LoƗRizN~˒t6Vv[v[U& jhOŴz.+I˾4kܱ6LJ0no-7TVfٹS_:5ZR"կ/yMM5V,t%t:'O+H!jxxIlyrVk54aD'=vT77L)B|@wsqZU*@i_Xger)& n\JD9u%>{0)ʙ{3wfa}7ް?_$ݲ%VNݝbsWӯ^JKGF&*+ĝA!G0- 9%yrzǻ|iuXi4j, 3QQfyսHZ&*HiREK56eT{ۘzK g5T B@vAWyt|f" ~ѯ-/[s])w.S =ЏFrL0p  $ZXl5`ף-.}Z05;Hk-#W+XTX`UH1o˨b٦I@9B$t@DTk62 dpd0<:>*V=K@$UJtJG`,I]IYFH&[ BaܪfZg־, ޢ牸=mtfk$IR?fDC`ЂI:Ūg H`|Ph_IV*)³}OO˟.VIkҮ, 4o&0&bD7pp.N(hD`"d FGDD" !:B`gfffnVxeeeYYY88QFz >4;;;<<l6IDA#AG0 @` E8tWH4Bt$0ϣ:DI0P8F7`$48H"šd># 0|iqq b3`DrYh(hp#=H aZZZ6`(8mhEB0NtDq D`p"J\2h?999NtDq D`p"J\2hm4ЉNt=N@!,@$@ \Kĕ+W htD':щNd8E(K@sɠX- &k=@:щNt2Lzzz`-8%p h.wA8\WW8<<Zpﯵ tDK9Zĵ"D%zv$kĥD':I:6hݻwO%-[l:{K&n]>}tq>Y XdBƍ5559Ys"___[[[\<_Ùm|Z Ddnn.>sHZ׭h|h}Gڵkn͛??p1ujkk-o߾6m2HÇKJJ0h-;::jkk?TTTlSpkddee_JӢ PBotm6fSlfSWTTPG| 'LB ~ |Rs=G<ᅅe@]2!ec*HO':щNNQ]84"nSCCC# H;)k1BWWsΉA Q-~z!GGG'$$TTT`Z=|?rpd7LvvvX'Ozzz0u"Ŝ6rt#aQO6,}ZZZAAADD'`Qq;<Gp `bb"~1-pF@X%voݺ6`l\T Z) @ 0`ЉNtӚ$0]$ExQ\ jkk W v~qm"oN` c--- m1s҂Xsz{VNqBńq$dٳ&SN:k, prtA ( ˃meee!4۷f`y 333+++jzxx>Z%hbfqY h1dհ>bbree%%Pa1H':щNMAaOK'ፍ[kr=2qDa [| efoho:hqjL&b&s/:GI].ÇaƁRrm"dpAbޠFh(E [02-Xfv+0F! "^'A8B8@0g"ׅ=x$r.`9q-J&Fewwwf6oތ[Lt$4#0 ! p12&y'~QSGhۀ2)))0[AK8WL9 N,HhWWW2& cFFFDe4!iٵkO8A%1Zv|JXbLMM_z i[*l@DKf@^^^oe`kM':щNK3"Z81xHx6 O0%rbb")xyyщDS)BFF3ŨlllH` PVV^T"†{l*b۶m8ZZZ`ͦLšD/**œŕ, Q͆l $؉@ڰT0}3fC8 ^@n;6hyקuHݑXt$D@ G>> 0Ecoo?ᖛ%oN: ouu5! o ?[kZn3DZĭ;/MMMr &>w,O&LÇ1jjj]\|.@P Fb^21 lLTܱc-Yt`h*Ѕ:tPyy{UU: N&|}}?<$-$6c¿ML"'<33`0؈-8͐RuD'I'Z!tuu3H@mgg p vB܂@e˖-lpx$** -B "+.;Վhq!R q:Jb" ccci !&K9 2eRh13` w4 Df֭k݅-s梐E _G;\5VS J5R_aǜ੗3up$&[FA(GЉNtWHE S N|vF!q$qop¿!߿?44qv Z؄'a14Zx,--g4q_Ȱ-OOKpzưVЌVpp #544櫏wQD':I`0cPPP@@ W0~0s"Jl6\Nt6nܸw޳gϞ:uJNNnNLNtD' &ؐ-Zh $Z~1?$-Zh $ڼ-Zh}p$!3!.=>.Z旮 -Zlaׇ=vU]LJ㞶Qzj"u.rPwPBո>\}ZgmN>\]w M>\HQMUȇkjبzj#ﭥasʘE]CAćk \Ց1q6&f(ڜ2q}zj>\Kf쪎%,Q5ԴB[K5kF5 l|QU[FS·ke`sʎǵZk89p!SG5+WuG#kdj爫)'k;p! G5[W 6N;{kڜrq]񠻆vTspUw6\7O- S\EFÝ Z9٫{r=.p-LU]5=\nZƧ<\g 5=DBÖ YZjzXs,,tOyXr!gc =5sVWPÔaµTu=au3Բ8wÐ 9hhyEbH$ZTN-Z1ee*(Y,K~.֏9du?~aopX)9-~~ Y?ۼ_l֛ Jq8,[-뭃ڼ9߳Yپ_8ʯ9,7[ֽ}.Ao7fqsXqX_ hg˺>@ Om>6Yݾ#c<+}2u`mF 믛}aAYo_Â>_/~;%v7aجW r9,-`?uJ~k8,HN~*y:eeGup?k8Y%{'kz^gK{`qY[g+f濮Ȳ82,Fws>dq6Y9XX[~;,λo6z,ΟX߳j=-w,__9fq~u~:kq~!k;k7~ǍhHd3x[һ 6lb|،"㝍O، c!Fd3hcc'򊌿odfSڶ Cf|,&Pd3710؊ ݌ .-  6{ ,-g2?`l|F 0d~`~![<` 2ؿc(g _2vɐ &C 1?fشP\o 32NM,"vA * (,6S^J%_[XSP[ nI],ў%N˼ !7*4{Y7JhL,C20,2]/Kp Y4hi.Z)1h6A[X^XXdԄy_(5T;WVT'+ ŒW1M%zNm“NrazQu 5g#²9kbwHٱɱii۟V9]”\/lA"y7R9%Ƀhd7>ydb2=L^|ü%w$ťW7P7p0|먬awk,($.[f  B,BU]#8e?Ï>rrr8|#Ev%5%^[=$G@)\B)'^Ra@^V?3CCe&KFG*06韨0OoPo0TfDF*LMEۤrҿP`ZJz?w**3.#{[+2M*?0-'{U(JVOo0;*wWdMo*F}9Wavd{?s?Hܨ"m0wS`~BmY3eWf##-ܬ"mҟ0?R`nSaʡYO3Wf'#CSU6*L#9 LJdwg*"$#Va*0w)27oޯTƃrһTU2*l?UL}LEy涏U0Uv1!G"ǔooa*0eޑVSqs**0,ߙ*cVz_*o3Ĕ*`**e)3UsOTSLVSLEs:?@ւ$Zj.]p-Z\S>J y>!=>^ۘV^saqeB; ]#s#K;Sk&ƆF6v6AABDL)2M Ƿxp5@{3ݛ  .zUῊWr@sLr ؆Bt~Z@]lJgB d`uMHX"z%e% OWBzjn**eЭppHHLI-XTPa6BCr555ωv@HPPfo|SOSu'u=?=蜓Y;5]69kfk觧tRG漟!O>:j~xrMLt 5ͨ.N͘mVOycOdnig駫kfӶBGGVOO̓kn9kةYPc`fkg5qRwӃrts5Si;GVOOΓk ,qRuD悟O>:j~;zr ktka@GVO xrmԑӳwRwqvj<_=O7Osu۩xz\pyyZ[yh\<]tLռ]ty.zv\{sudo~JmkmaͳֱWY빚q yz#M5WXgicm3sk%d$,VKN +zc~+o7?;RQUZSP.$$222$$&3+HXTXXҒwrvxJ0*1ɓ'>Oр5+*?xpmm i[܎I6S[PDWZzJhDHxl&YA>\'(IZ߼w>,;NO6ŦYa^Ĩఠtf ThZ&E"QGs4:D))s(,qa<`fff`Odgoꘚ(+?z@ n^v_: %ytoUԷsUͮƕUV9x0'!3aޭJCšfmC(y[iŋnyyhu MyQSsSҥKEE.(J'6)RAD+@T})2?8zuRbQ}rM%K> [ Q\.$%=~(0%dHt36ho߽yL܇aI'*)*0jm]ja\Z3Ө"ݿ;4@R[/"Z +/xV l-HrI)z>zt%wݻ[͢eTE&Eky{{ ˄²ҋ.¶K+sMm@ISP! Tt <R{* #~ex飗^t1)-APrK&O2/*LI kmݹ{ރ;w8;wuߦ@ $snݺy]Jw<lkni  HNT$mLBF/EH IDAT~wrZ0e/x:gf޽w=lQ9LN$-s)ж5PSGSjN* f` %--TRNEuEyCyhl \ZQe}/_XA@;ȡMEO%5%xP?))ihD{0޽<~Y.ejJf!m$z{{-̴tt.gȋPA<ܺ}KPx'ᬲW!]qL`l|LVAeҲB0I].\W q }ģ#|LH{. QJ3uI| nb'>eKb"\ffKz)3y~O>OHLCgݺ>y*EŒ Qh'E@ I 8'oAad+05,6Lvɓ'AfC=z{?. =֖.UE-YO<h3!E Zuwwwrv22>_TTفԎ==f榚>~%bUS !`ԟ>W->Y}E -%3O-e[+&e$VTO>y>ҊRl{x!قlI&eU -Fo>4>ڛ>D''U-s"Z7-}0X>~ٳ瓠^FKR!a+Wn,]|?ȏ- c2=L.ojDTKc&N\r942dy@|xWrd¼̜ޞ|,ãBsCCA"TQWcʣ/ä̴0|l b27ƞ s7'73e.+4;?m "Q{sKGK?cuLZ&r=r䰭MrrӪG9zȱcG?XPuM5e5V ^ +Š$vhw< ~b>y_9hIV lwoBY DTnϋ˱Q_*@>+b9b̼Șpo\,Uψ**/jB ^n}x9YFU0@k; Ĉ%(a&g5 ?5ۖL~ꘁOWV?ellk׮={vٳGAa޽ u`hv} _XAaK")+iޗꀖ~+,K(xO<}/|ڥ$!;nmm͟p )(=u征^LrBb+ :; [:::[ Q ^x0@OE*+I' Jᮽm@X@Im|"|PI nq-/[^_2A`wEJbfsJFUMUޮ1Iū0T= [@kIo/08c㟎IsnT~jRv-Z ZA[XT8']X)hIKLRLD\DXL;[(]8 y!醨Ӎ~I`z/; gI3ʪi)(-((+q5"ւ7ZnuZk.r8hȪ*C@[+}=~e}]:5AKuLk5xjJG}} yf#z-:$n%Q +)SRТ%Q[$qbֵ. kWTU?_׺Т%9["N~LQAYKUX^xd6 =O}K*U57-I K DM/UsK3* 3VEOTXUPExbIj=KTPYZ] `X\]<0:޸@L"=[2 XYXڒª6p0jk%7{Nœ#эáNߢZ!"9ӫ/2N5B~׋!7|RXV^%8hxyy@NS[V.fY.5 gYq0IG_ <[N}eRRV:vO5ЍK^LU'W'h:Я2̔={;y -mH@-*!Jr'kH_QNNP&ۊ"Lsgsy=L}3x>c^}TƧƥz>pO>/A'O̸ӕ_Ѵ~$Z;/ k JtB4DMqq 2"T$ڀ ne3ܼܰLp0ZV~VhThMsM0/1=+VvVFNW٩p7!-ܸa2Pa!%f i9i"{g{dqb,uT,&`.1(#Jfol25c'Qipa'f;$oKDʢvTN((/E]"DX)Ġ@⭮:ca&'G%x* 4 2>%쮕( wTgAh:k kׯݺ}cz9-jW8hs ̭WD1\pD0 |?/@y~%umlUKt {G  V|j<|hBX:;a_!X"&aLy  9ECKsKX^^ٌ[jCC /^/* ?/&152ǪgGA*61S8  > $ l68elfiYB'UOb`?HEuu0,%+eٝxぃ]>8=8;#)gNb~folv*cY=/ǘd3uV gvbۨ.zF.6R~0cMވ ]2(5$wR: R0iX6C̷K`Nc8a~pDƁcgrMN:n9'Xr|_}X\ٍy81֚ϯ$ZXղxYZjlU'Nhjort%^ZxUvV̹38SಸxI- 0\bEE"@HZ8##b" jF%e%_ |EL Z:ZUT+) q G*)]]ܝ1uSv%O^|At"-03I-ŬbtuO ˆʊ!|k@'bLurF2%2W]C?2JXNvvf ;*42ybfujٝnۊ= X'fYMQYu51976w*Qaa  Eɖ70{cK8QgR[zO6,Xd5ZEO?}X-m-㣗^nni^ȸHZ"H⠥:^hhro?oTT[SPV^ B rS +bG'N?DnqݍA +d|OWgyJzDuA-7*̘:4NjG.v.PC޳wzVگ 8=wt #*X΁12XJxU@+GJ0(gJdL/*(-@wqYބF(AjWbO#B=\}isM'Mܛ'>ٵѡ=hh!/<$n%ZXڳY[2D:r/wϖuቀ7x+%{e  _yf^&^n:Ro2&Q{;B5R:G,J^e\ )UcC,wIU 8  \`aQaI8 T\U<}7U`< a*igBSLPx"l;K}=Ha|[+ y{O>F3K :s ^x Y߉ɡz ;7ܼuBwoʈ _)I8㰼xEEK9p)0n {S3Sq Kea}#:>V@HqTCv&&H:E`o/\'QI،v`B1 ӈ.&6"3b9 FMppS3nˁ]!cܽܩOڛʊUZAS~!-z"F6PXX}!L%C99%N%`LB))p"8˃X={4E5SOl=u+C&ڈ,L x% ~; C̡x%`հ.%bkA:a5 B̨1+)ƕ|}ʪp9}سWyƄh"ngjhځ'@ȵ2 !_X^3P5(ЮvB_X k 0ԇ5Iq8˒1pJ"o867> *A (u] Ip+qТ'_6՞<}В4p:έ1#wԄ@S\R%TIuBq |+G.uPϜQ?˚[B;JCpVZsk=Bdg쬪ZVEOS6В5ۺ+(D㟎%O9Ji-ZhZ}JC8ҢE-Z7AKu6B-Zh}4[-ZhiAK̎-ZP`n+5jm'ZEK"2'qЮ8i jjjk5UkWkMSM}k6-Z俰NTRM렺pϡliwPiM)(9wo +k iђ$Z8K#7n[]m kn5zyVT{eܞ]H[WW_}._1rk7FYM7kY؞oL꒧,b8lMWjʴ=.bk!!Ў\LbbcRQ!A!!!aaM6 3b9o-uC>؂Fe]FV^簍+Fdm0bȍv&G hZR2i)\#c)!Ohhz%5\ Qή nYkkSvhnPǺ`OQg9$0${m^F? VKaiGFdžGF>Y TUEMϬ (>v#@ rO6>vviBr֢@{qC76KHpqs .3lӱww60?o`ljc`+Q{` =sޚ!gPWh "t ) u{nwr\* L3:tUZ]^Xkjm6( IDATj/RU;;ҁKjWCm(j~~.^TDy{_3P=x7-;t=|gQ-mmx?~4hiZ ^yry݌y1Ncd;ms+PtljjAڪA8)ܪ,.+BaRq -ʲr_HQImhmjieKG jVWoJP`EMlioAdIAm ;;KJkkj ^:4ʚ^ G!`kjck40y 9W}efnH#>{CI2=ɐ}9ܶ^@SMEE% ^q 漹Y.4ZXGnf3)5B3ݶϯQA(4<<\Ԩy7{۽SQ;-жw>imbqg,%@A!AAZ ZmpX[Oz`C6N9oVva5 #Ewg;}k%$'` (D 6&>f>{;LL-ZdC[NMOTPmmHk}OG??(ՀSN(U|Izey= nN}RF,XXcPWw INt&?[Q$~=(PP;ck rH$ w>{(vN111 TTASJ+K`aRy#uu:E@फ़6[vKL#[ywصjP$wnCXnŮB4]n`1 ^b`x8&ᖩqH;adXyoFT+( 4w׃}sSgG;ju:?w> ZZ$ʆJ!TâB}\=.":/#wFHl`t%`:xpqpg= *{VV"O7NUp1KI_0ur_QS㣻I.[%oh(.+(* s22sj3S>1SFAq ݽgwRZ L22!gNUA+"{:18+?q4eՙQ\X/66d扝XA gSsRdGoxȳ' 2Ak`UR;܋:چ|h*+rN~h=) V}zFZV'Ӳ3>Q1 1<쟱0.3,~6|؄X=x :{l^anᘢo0㉁].l-zi[ Xn{ԡdW,aNj!X8].Y4+;%TIAۥ{ dL?+ǥDg@Ysk ܢ =C @EIrVz$:ilL( hz%qVW eS;uUP=׳3ˈ-"ê(otw N}3b>CQWbj"FJB#CA8xv_[9-m-HP}ˋe5 yiI1%eE)iI0rp(Oق`3@qrz2 CrgJ*K|04bl4{8/5~/ި/nJɖ}qGE9<87v8.BwA}pS'w3<)R/3xguLMw*ٱw1_!3?q.#gΤfeL217k:Z-졖@{yU37R'yQKW "ZZ$)9idU^2Iބ˭~nֶTU5Ffy)+傣EPSaacӐJAt9(ܯ]#sv-\+]5uuEW9'wxgB u*LWN~< |14\/# AHBxI8,^-)qtvLLID9\$)AיWF%,)) SVh +Kk3Wwg'yYl Z;.vBYU]B2 - \|QYWX# KNys$A? ;;dz] M7^EEHX926WVF"VMJM1S'0d khi`f?EV ȸf,%y>&Ƃy(!&akՊj(&f l=1fZ:%=E6}ƊGGl%66쭅j.n8"r>{7i$[ L=rF&F8NN-:{@Y1h#<JVyvgU*Zm;C3@圜:Y5ܚfW5/x:q4 MO>]Cm:xhJ`acGW; VKWtAGڱ+c][}G}LsjqtMbU(8^f>}v>y- z Ë:Qx ‡RnqSspffY\厀~A@lth eYq ɱ11aa!!q 1mA^ఐ%؃N ˋI@mvvug=WYȎoʎ}Ss?oS^ BhhkjL81'X@(ilitp;or@zZ"4):d\3|/1K2vy \}}m=}{?xrCl%%lʑGNPoOh`fo-@}7p9=ȀBD:z:^JY{+ɫK.,U a$tJ;w~f3|gjR)%-wݝ{aE(i~xFxFuz13 03Н\aa E0 0ea C2 0h%?auv cz퓮C׎:2 0 킩~ ']~ݻo͛Lܱv{pdaAVh7'$%Tk#c#jhKJI TCCe3CBC23SA `S~f]UVUWEDF$&wtwGã ..+ MHrʯ~',ƽ kY7+' [(*)ڱc Zܶ}[Э&}&V 0 fU㞽{^W_}O>0=qK VTU׿裏~/X%4<jljܹs'漵-l Uk޾?_~W^y嫯_||l}^K8>--/~?hOL,yo_7>ka_hmׂ9_w[oqx!<, ⛻ 0k)Bqq/򲻧;zCՃA?^يlM4ڽ JMO 'd瓣o&+=FwK/]vp!BWSp_q q]Z҃_ğ~~i`puFB# [Ŏٮdh/\aB8NwÆ  0sU!چ۷Tg0 6 ]%$%O*,.D oa];/(h?5ԡ-޽g~jiotۧh4"$?Q/4vqD&`-WVc!6ұZ]]v&x{vl\ǿFۼy3E0 *D7WTZ& ;vk A6g]΢괃# C9>#7 :,P/BskI%XKtD}v8%-%=3=95]/EbqXرc%*R7zV-_oGŽٯ% KY9Yov ]iP1 0iVhwwyӐM<_?wDH -heګ\/EEGA_:h[Z?,zvڻ Iw;4zJS˳Aۀ ~#ݸX +n~hX.éŽٯGW+FDK؇[AO af*D }{۷~W^RnܲuK*jPW7E[^kA8}-J>>y/6Zk^3]sڸq#? f|%,\P\clÏ>/ bޯri0 ìTVhNM z;bHxA7/?SX=.4>??95r Eʢ"4jj9Bn;+^AWRVRomoŮ סº%zݪpkAZZq 0J|u.&, 0JevIH{w6CtmmN? 0 FD;82+"*ltea5#ZaYh|F-:m8+ZVΉNՓsOh6:;696)%etb4:>:)-ay\h}1616!%OQkl`x} 7 >|D3xd<sgN"hvvOYܝ[;{vfv>SSJK}@=K9HĿ>V D\]SY|ID#sjfJSihh>-Y ̉VNW-ZH Z#wFTCG&&Nj4E\_dzO}X\cc6_>\AZ:-HC>|ee{p933$D@- ܸy#)%76>wbu]5E>_#"""9,@vW WkCͭͱq:E#q q9mik'&'vvay<+'K)áIL llj"dUCBj^YYۋВl exʕLU*B>V:ݻt IDATFƍ+wbܷN]`a\JJyȨH/blޤVhhjض}ѯcV]c]DTRnmDѣ'O EW__?==]VVrssKJJc˦,9+q _!Vת׋hqx]  ø7'cbc{߃]߹k',>ߞk*kE )~牉:u 丸8(nش nX0Gm__R322RSSQB;99955UXXA7.+{rϊw߹v `N]e%z'cmSPe)0*?rHHXHPpP@`.&ϱp@P@"sl*W^aa9qtGQpÇ,/G0qXG*3l_/mD?`.ՇK$&|||0 ^@@%KA(Y`BXGݲu z_aq!*݉z7o`=Cm۶aji=?`\00Zc#ZDzĉ< .baruuurr2%BEZ䄄tW kMऑ34,A]EEH倓Gvtw*,JUӜ;ξR0 ;rB Ea[Зss[s 4h[{z{vv;O/,Ɗ`}hh3Q׮]hRhn*+5H(nsuT>2L O|sk2v 9uyC V9-caU/b]L&C -Xׯ>k2\]]W k}{oٷMp*,"ťg]Ξ>s-haJu%[Z? m*bh_ M(zbZq fܣ )-[{{{~~,bAђrPSv}ڻHUCg\cDDPel&PPP5F.fmD 8m& K<ޮ.T2S{UUU /_l-ZV GKgEm&}ܨ%[ Ã8ˡ닃_@~X)i)P(Guf?qܾRDS:,F kٙl1ٻs3ӕJ - HX1tiGKœhrzF}`j3M-ζ+Z\k I vz"Ű]!p>4<W:څDk6̒E=cL~wffF1sl*Eh/pY.co6s""||** &!/<аPP?+F77J$Qn4zRYWW'.ߋs; (3b___ooAxx5։*<Bh.Wz+rX6PpaIaIXX~:Lc|+Ŝ9F NWTSGiP:Oƅ(""BxCcBL)V!?˜hsѹQ圻xsg"uMuhmˋ׋h% P_^=7CgDen77tu9N 4j0GߢG_K.+-Y 8Kn7;۝^Cђg ZS֔VŸZ]VD+ $dI%NQ%~]S2'dFo0%f*3 fZX4 J HBjBbfffgpo^GW!Q %1g?Ed-3>1f4u:@yy]]C0qJbbOQUӟ f ĴĬ,Q+Mcc7S LޝĩHѲ6gwg n]6)Za0풏萱XcgEk _=Ȏ:##vs}Sӟ f 'Xs[ltSwl//#UIiI <E+F}clblBJӟ f '1511=Q]V:HEuEYUE3n0>|g(yTP?E+ĝ EFQi쬳";}7 w}*5. EVV8Ѯ +jDZ{v$eMOkhPt؈kE/oچZ찣j(Ԏ1vIW vuUY\  DAB?ۏA+uU ǭ~sPœSOwxcPp͛7!<@L߽{ŋ֢>t5R.ãhCqQZâVEbEASSSqqqPuBBBn.Z maDL[:,hm!Zkhj  rʶDb&CwX%.>#c{vww|P2D@nO{w{|]6=3Alٺʼn?J*20<2Vs96 k6ek޿ſ*(ȟFĒׯ_U)qQWZƟ8OZY )N,xE/0uW]hm*0nBRB[G[Qiꨱň-;{:KK|q@xh9kΦM Y)Del56 -SinШoѷuU Ѣۛobh6"e<<^+"E*ՕY~a~hxhbrÎVxs"=zh~~>THQw,-z'ZEhCђg ZS֔VŸZp]v|c *VȜheݝO}S%Q̉63YQ~~ZTfi7GԄ u,!콎y|C( F%1g?Ed-3>1f4u:@yy]]C0qJbbQUӟ f ĴĬ,Q+Mcc7S LޝĩHѲ6gwg n]6)Za0풏萱XcgEk IŎ:##vs}Sӟ f 'Xs[ltSwl//#UIiI <E+F}clblBJӟ f '1511=Q]V:HEuEYUE3n0>|g(yTP?E+ĝ EFQi쬳";}7 w}*5. Ey/ de ?ο_XAᅦhMONO"8ZZ!)MvYhj e~3y6E_;>9>rgDU:tP,oolblN^jX:-§H0|-Jӳ9Xqq|KR_|R~zv kЀ8 VK֬t(ֲ~ɇ_FVA*tPR^r捤$_ށ^u]!EzIW-j544ƍ X,IIIĄ_PPWWW سceEQaBg%& źwU<]1,^8J;wnll̹YK:,P'uPsksl\Ψ3~'ZV-T` s 7&pkFVFCSöێ~u4F.]\VqA7EFE&YRV*PaNc/Z}||q܇###q쒓q+~~~~II$RݻwGDDnoobXKax.41~tVxvjuMMͣGp~w/Bz~ffz7V#-K6oP/(^O_OBRB|b<:]1k/*)7eQPX1:6lgw ea1/\RSY0."*BRaW7kYX^㨈 MȊ0'|%η>+cZZ-MԹ瑣G:;l~ݽG* ={$%'EFG:|i굨Lo=ݱԴTNk/Z47olhhpa>955UUUU:Oee%\+wBYYYc6aӽ{²EEE׮]3L1M2Le522T*]lS%yX^Go +9FV+(ڑ/}1e~aqÅ0"ev 6s9>!Є29}hUqmVN1GyϿH1~ca(,czz[wwh8gϞ ǟу/;&tG6l~%7>}511Lt2pGGGaܸ8ݻfEBx'N.܊9Ł[!.^ΞNؙg QL[oA8g*WSٻoװY`2`ׯ| &kN9bF!Wn\Îo^EJD#BȊ x*Bs>,Z*lh7ad-bfv&gVdc}W726+ dØ^/Nx5;;$Ӄ&CE{bhJKK=zTUUfsT-;==ׇI܍;jbeE }g(AZL}`xWXE9rלM6J1wA [FCf64[mmeUekY0 0+(pY.mx{DDETTUmDkl6FDaƵv⢅J%\ UWW>Fxj7aL-t``-//ڽ{ϊV *Eۊqnnn}}=B&hdի|vM={@5Ѧ}00:Rx24:PQnG).[(.$,hjWTSzF:d69{;qwp<*)X=4,ԾZ<;g lt  z]}AIWQyQd-."Uc1gξḂ"'"| 4Ac1*’Bq{тm(t } s EzzzGG}?sЉL3hCśNZXl[[[jj*th4rDm:ȪdeE7ЗPX_8fP8DԱP ol10ȂJ=~xl\ldTΨfBԭ[55wwaB98$84<w{Dk1'*: 8nԱ@YY:BgN\r]!LNWl IDAT _sSD2iiFQ׬DWE.1TIH  c$&!FEk^J!9 bppOLKre461F.+8|s?:8=0NI-ky~wvօjea C.H[u:qVSh32>bn77; bmt =c|x-*NJKbgE(W)FF(Z15ccR16=}=gpxtdx#BG'''QC;w2EE~,EΨh> ŠUhaE 8UQH>}(ZX *ZL#c#/369fG{=z~9dffÇ Z=__zy~qpG QO?R{E2o_33==-<(+<<<@ ßNW~U" ,BsP"kYB?gS( l/ Y~8waSx 2x"+E_u9޺bݷ=-jXZ8o߾痓#=55r77A#ҪqY܋Cr322?Q?eee8_Gg" oU~̀d0*]\\.^%ԳF#/~+[ ~v1ΩӧڑmD;>>D sd2ψ"rssq2(psZiqcS&EQt:c```uuoZda-;npN:ڼtR{{nHHpZkMО2OkQf%e%UŅ4`;(xa'QϸF`Ɂ\&pt\ ӌ@Grs^||Ջz7<<= &Ju7n2mTZQ7ꅅ[JR|m 6ڻooskCѢqb(3aP)Tj0RRR066'9N`ܾ1KN<822b4Tƒ.%o366:ue놸07a &4:: bIuZmaq!\Fa{9z$5->6.e5j ~!`_?D p͛1Id0t+(.!WG7oP8qQVݻ1f9uN_pA=` J 1EʯcBipGm@-c}X}-L\&&&0'// (MjmKk 0Y/ u uB=BٙBGVDBCBPVUy[P,:8$%>12F1cfbRKqZH0u|||Pzzz~?΁`Po2&06%CT.jfqBu5d?w-[n ׯac.J˷u$bM:Dcݍ2CF06^4عUgХb B, \wcyAVV)W^^&ş;b4⇖l^A OHH7Tೋ/.6*:ˈ(lpa-P sMMCrr2hEEEBOUV ZTӂ QEB-+_:D e645ttwwU66hޚܑ,BVTR*Pyz{vv%%%{.*K;|Kw5s/Nxooo6oײDUW\q(څ* vMٲhkkezpomm͋d5ў>{bRS.]߸~:F͘Fpڕm۷_juj~g-Ntcx a&sN:UWW:)..JJJbAa0y.V+ BQ*02uvvVc[Ѣ݄Ň!Yz˨vO'a`?ͿF#TPPb>cTV ځ CQS[n/6.8-KϺ=}4SŨ1c_]q ;=p;08]2Bm."Z|T V@QMMM0H6u:}-"ֺ[;VYz ]7qq0XbӞ1kM~~z?ԏ?n 5&1BuHh1 7.[Vdڽk!B{8߿'ow:qfG*~%|f7EPqpGbQa-\pCCʳQi8h+{zzl^iWgNfK #q=˜vss@+j-Ơ/]5[ߜFx׶vw/l> SMIK>Q_6U- Xokgzf2W P;j qfv&*n[-=TCܛ;bQQ & WLc9r[7oD;(&&kY|.DZײphgffp=_㱿imu =n7EgffODuX,5%ZUEUc+TW"d5&&'ߜؼe3 P( uEtl4 Gs?S4::s7//OR9e?6B\^^=_#5Q999;bkuۋRĵfq_$ ee4@`!.Dž1 z``8tD㒱, Z*[o zxĮ^kO_'3'"LLJIrMU0E/1*,RSax!:&wwEޣmll#hp!ˆ'kY|.z\ CCCC0VFeYMsj e~3Y%P EKV}(ZJh9ʂ;9=LMD֨ɈsQ2226PgϽ{]$ E+flr,$?[=6>질SP#))ͭ 1<:<,*asuz{*,F'YGGG)eorzrjzaɻ8)Z&ڂpڤhaFP 0 #a(Za0-0 Haa$ E0 0ea C2 0haFP 0 #a(Za0-0 Haa$ E0 0ea C2 0haF¬"юM!N?"wl)ˬΝgaU!ڎ_ṗٰ7#+V@߉'3 0k,Bؗ^z齍Π[C~Vd8Edtyafmmoݳg~SߞU&&'FDE T!a!Eccmm 61'6.l+WW:~<^.kp{g{,ĝ֖[A嗿lo*,)Dhx({ mm<$ bfRJR, ahtO00 8__ӟ}?7(˫׿u[5VinmbeGZ:-ֺow/,/y퇹\i&8wޱ^K`Wo0[oڋ/x+/,{ ,wvs0 81-T xOS@PVdhTW~Ϝ|7$,awO .k)i)Ќ(s~_%utu`X-;s!0*& ` E%E;vtM-&q1& }=<{d'h3 0NE}ZZ@vۻڅc?W<={o~a&O*w|޻{cf-؈Xp_sz΢L,:9fa(ڏ?X|5F/fd%$=w[o%gfgbfzk2 Z Úǎoqzf#ZU%Οu9:-d,%e%Na'f5vӦM⻤ee:E;w  M8om|Ui~V8_[xo>zֶoz-و6,N ^u=2:rMv263 0N̪_^{^ܿ-EB^^oGMz4[̧=__A]s=pzk&i~ϗ._nnm=bh6W~7sUz-qkkv8aGݰP[Ty֟baaVh!?TTWTUXߋv-)x "lj/-/hP:\-*)qԈaČ-lԋ6lVQkZZaYeaaa$$ڹ횟bagȲnpt`xap=OPfܝ;soaae:;+ҩ{315?ߢVe_Zh'>/!|lD[,-Z;Zהh!T4($w)olllMM $9 tqqinnՌF#!T 0M MB5B/aPurr2StxpBn`FqO cǎn9r^Ο?N c7 TZVVVh49)XAB6ml+(5[LtvpJÖѹ^tt`M$C8srrO7`8a-+J3KIIG[/lqE(Νx q{Bl `1Ub Z;MMM^>{,9FK̓Bұmw_7YȽX#E'a-&rrrpВ<)+h/_ AXXYrwwwFF֚EKbb̈́ ut*)v4ЧN2h1\Lܯͻ„B$e}8???>>wm-ZhLѰjZ<,9;g6҂BCCX]#? $-tV2//MwaaakkED F{ZUUAұZ,)]va~׺{& XGEܼy3))K .hkk󋌌2pj SDaH`0`x?~ Dž>BJ܌ h[NLL>G?h:v*vnறxw*X9(((** ǀiB!πu$#jj?ͻScǰȒ7lamگk=p7eH^4"BT:L~q֠] >TWWuBȺ-(;t}}_{`vڷkWP1ߟ!g _ݶk֝[l߲MoM}?O)ZB!i~CBY-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!- jIDAT!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!-!"!hܷ}Ow}u69~OB!O ؤK.]r9ys\ϹtU-!@ŕ=CCB!O ځ{sAByb(ZB!DBlD{wi8%BѶv65CmӓFmw)ZB!)-&JJʢh !=бC֢EZ,-YfK:-ٖ[n-DO?0 ,1o%ɺ:UctY=ZYl뎭naa/=ZtqEEcEc!|Ih7o0 0/lޣ+Z@ldGaf9p{K5(ھa$<&af9yd}S"q=kM`E֢5haI;cE0 0W(Za0-0 Haa$3m*aa}F2P;0 0$ͤ,TJ.ZM&M0-əfcWҤgf8}7$P S)|*k(M`6nfAliNH""hIC'O6J\9F+ηlpXZ$0.n *-)3Vl3[wpzp~DˈOQtYJ5D1>OKq-"h VK_^*գa 3( %;?[-;,R2ON(ZZ > cKov(=_)ZY/yF5srҳӑ,eVaiY[\^l060o֠T,>a _B/+|sOD$g& ۏG"`y3᪨(qԜT[ˊ ILO[l!:!:8<8%+ff&>TbUi9-+}^U;5["_tQeߡ,NP((*;Hq\fLLL&Lr?"ܞ 7MySd*YTF}{`ݱ;cK1 C}w'ҵYڌچue %Q<}z9tz~S/kmi})Oo juZM Cc5 -QƄ訸֮Vvd1?·%ŕDZqEqxt8]&i&(x*;b3]%?e2A&fUz4wc0vv&&gdݟQxxGxws1(?HK=5iuZV3`d@ OI?qefXcCl|,y"<2|qyq|4^24T?XR<.'}aq!A]*1Sa%쳿`jCP`ILN֎VddIy6 |,o-zҽ3$!$8w2,< ֮Vh>s wǣ {GzjAIʒd C 6D&"Vi\ ˭%;/9^>=0xX <ϣrecz~~#XS^kO> $k++Z||秋ˊ)|KKgΝ!IBӴ4|8s`b8dh3瀶ݺc<4,tfa̒DZ#ܘʢ*p=ОJ􂲧ӽgcjZc1!9acp]T'(2w V* {Tw¹>2ufMӦ] t&Po8e%9qni9^>`1ǀ̫i/?^$Yo/,?gx6O_:Vn?mbc[=[X^9|$X5M@3sdlG-6W_+28:+k+).{#);{:9A>e2`l1wt0|F by¨[UתxH| ^g2Rh/z]]I >SSty:h10:k\,i}ss---ŀre855hM3܂\+z4wcf2٘!L iŕE <3׬kO_<hrGS?Xy(`v!\P_jZ*,oi{:lo UMLNDDEl+i88kVjRi@Yʥlhm/?{_+x@K NL9v:BAK 1 1=Ɲh?-D^M1;?6wuTV; *ӗ%&Ra| ]xn)h'g'ssmSA7s_) {6w{`cS+Sb2 (غ$ܓ:%% v ~!rꌎwPo߻Πy symٺ{#1cj,y萒Q[;g1~v zkᣇ`l+Mك8^mth~If7^́vl.!P@uZs, +(@ ں nƖF;Fn,&p dn99?OWZ}{_WG3SiC Zﱆf"ZX3eY3du=ru̐x=3gA3EX_˹~y݆ 9GxQpW(!TW@ⱳY!)QP"/y|ˋ ZܭΠOB]1LZėxYh]͵5]:87IvA{Z,J|9_em~ bmދ$zbV@+Euc{Gu,P7mK1$A[h빣wZ/$mx/n]矔v^P9:;FcMM>ڿ2 W P;/vlO?Sˣ'-7"H$a hE"H$RQn۷o={466fXzN:-D"(`8H@ .ˠ}ݫW&''+++:V$D#,P"p\MAo~; '&&pt D"H$:,G (%t߿_?@w\'D"(`8H@ .ˠ߾} ={FG@<66/D"(`8H@ .ˠ?0o޼ p5^[[H$@!@DJp 4] i 1+mD" DA$@e_4Ѵ={߈D"Ht "X PK2hE"H$WZH$TV$D"%D"HE hE"H$RQZH$TV$D"%D"HE hE"H$RQZH$TV$D"%D"HEGIENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/about.png0000644042355400116100000004427312640736115022657 0ustar00ensoniceng00000000000000PNG  IHDRé IDATx흅wG෻M6 9qCbf̖%Y3lYdrv8y_d5ީ:TWݾU[G3gYd1Yd{E.,T~O?_~ڵkW^|ŋϟ?,MHNTpZнcFqjjj|||xxxppGY$X'*-18 q t8qmmmȢ7 8APhAqKpT@-++ME) @ w;NhYdћ` {Ǹ)+l𤰰0+Ydћ` {ǸsMnSH=]܀D\twr !<-7ZJeǎ {Ǹs/;IǂPUޜ.ONTpZЕKݕ[KitO[N–ƈy%")zǫg"q]1D'G{NSE59J5iL|&*].g"S7e,R嵒u׸Z4<rzqU >^}]p*rɏyMyԗ!/ޔ)Nj7/O8Ea)^ɧO>5>傏WD~Wܧ}'='Dٛ r-+tw%n'_9'|ZCIuE~WO|t-o/ױ\UWc~53ΊK"ǁ-zwߔzDG,Y)q)*>.G=q9q!"ӒG/EAZ1nyиY;Ig {b A·=H(W!琐΅>|.YqzǼ婃 ߐSd_`͟XH婢+"UH}g~ ˙~Nwpмn\؞? -D?#͟ޗ]pxLt&"O'|těnZwEJvEbE!El/oJuE~W+uSѯx?;=3-Or*ΙL+_2cӽ5`kݞؖGE޿1!d_^R5- Hx2vǫo"q֤,NdהgyYv2w=jclm؁䒼IJZ]5myE5QF[,[:ۺY94ߝ[PQ]Q3/T7T[X88XXw557ϺeǦF{';{k K&N.6vV1} >(}BJWW\bQkcNmJLKpt?fml㎫Էp~ /599zzB-y8RXdddk`c/d$9(Ԃ n0kcB{dl}<]|]=\Z;[| /67OWo;8FEΚUyA|DTmQYႏ^HAI zzqhxFӬG а@Р=!w֠@@@u  ofnNAɩ V.HE%!)6(?'6.) [mA\OL %_p@mxThph`brm;E 7̔t'W&EIG$z$-niɱ QQ!)i^nݍm.)iI)ydiY_)eHH`7&9748,6%ѥ!$63 PSU\YWڰ6["q# -^cѩPǂUYE69mvA78vϭnm_p-tuov./_vx-ݙHH}SaHABo]Jv2]7:{enޅ5!;";E,;JT$z$19{_V-7nOfUk7yךFnr)ߩHH}CmbϚ =~uHnUC;IT$z$>"eK qF4JIH r5; =ָܾؕ.SYj{SlzU͗ߩHH}mξVER|fyC! w-*O~"q#U6FU+싿DnEB#6HFײr$w*w=>-s!VU9TKX䬲(ol]p-h[#3JӋ(s?/<}ymdml}ǟxGd'!!:R@wAi}Gy_ؽg~OzocǬQ ~s f!K^}U߁}Xnufcg}h>|01$B _nimVMmJ^,<6(jvDž:\ruRObOz)# KGL4pBj V^.ɧ3;Q< w'W'%'2}H_idJl~&0$sV߰o4WTw|}|% ]*M(.f>nTܩa5$,< 856u/ȏ?s HFltBvNvwx=KPPNFA/G{=xk[w՚UcGg6W^VdْkWc\7gB,c,]͸/W?ׇJNNyp Pҡzt>^:{=q7z[X(42OI1f-*J|)3<5mܼHVcmk=<.](ܴeȝ~zj31^ǞFzB3#fGZ:fyx Bswd/W~I/W+ky}L^2K#<ϊ{ie6dgnZ~I<"kbڷ'\_kK칉;遀d7߀H1qG$DwRF@9)y{vlBcvE-b3<},p?tЂ/L1hw\Tn&x -S3SEGcƝ5-]d1@۶v4\SwhVq'  "WVn0d֬[swHў ;16!Veq^a劤(h q٘L=Lf^&-ӲFhLF4>e+P5˖/1΂/L1hܵoUᦶecD+*' Tq7~1!9Fm܉+W${S,8gF_xDSӣaH]| 37Sf1U\I!yd=}>%]qrsGx&g[1LllaiA΃fr0a~fnm|gAnae14POHSqW^}1cU܋5ȧz =(QM<{Jt/h737\"5_zq7I\aMc_*~gXRYW /ݹSiqthk\ԧS2R?ٔ1o/q ͑h#B#19鷹;hyG=xg£i`UW_{嗕7OwfLxЃ|⋦&q=]{=6jAS='Z'$]OI.ĽiS[5 q_-D}]"6%-{=kIf9K-8>@skA=pҋRC6y74&3!? p?ј U36hQ _/ЏXZZS{x{p[ĬDbk;kzs_4uJBDn'HHBP..TUWE'&!u=GI,W%>uyu9W!D\hnOf .'d/1LG3:(N]UK1tK1 K1 K1 K1 K1 K1 K1 K1 K1 K1 ]| \QlamjYGߗGHS{s0wS qohm065V"c"no@p@IEa}~I-Uǥŧtyx{'3&+_{U}o*mݹ{իt+{ڳ{?_Ө|"R_ö4pJSQSA0x zӓ3s3؞UGD!U?_QQ[!DmQyQ\R\V~ưKp c6|FwјQŀӠ1%#oZKYh+%EFUU[nрǨNJM---,8)-)":6 - vl;h|ioĽjֶL./"lm֮_ +_ 7ocPY]x/_/6SsSA՞5ulEM5>A䯛%5uMu$8t_G3 \ojp3q-^rBg7gP 0O 1>G2emg-)<Ec,s  VH $+ .7^r#fGÕ֯۰i%audͺ5{59jqFfb Ψ=lfaffnF,\fm[‚$3 M{ ܷm٥,9*p'%PiOwrZ2FA˗QcpQzyQYB>ǟ|,pWQDqLjlm۷L?{1RyuE!!\MC4B Y $ˉƻ6$*f\\`taGLp~zg"=.rJ6 8 bz~~lƎ\|^ էC$D# ӣwY,6]X9PqI!&͌=b LEP`yf FkBmg^jHBi5!DnXx,6ѯ~a g(_S[Ӫ5D 5؉v˖\cd&m$?ڳ 7p_V`PIzN!aEeKk ,!7yԠYŵS@p7/"v (`! SE`&QQ&ZXY 4'tp''+P(Z.ӂ2-Q]`3 j^Ħ*~U F.l ap?0mN(.p/.ų**3WwȰ1А@tLz-jhF)DMt|4iC^q~̃;V2 8 (r={wlf*ML3s21;W`rhJv< 4܋ۘbMw`AWcZ ԐT(gw>aOgۍBn}|կ/Yʼn L44h#8ʁpVV?L{w9p+EZ`Jc#ρ]`Kѣ qc410v@Dc\FE ؀ %vR[L+ެBF@8 axfц974gNn!X.^HEmYЂ!7{r]]]]]]^UW~`7HT\Ti/577ia@wpX Cܟ>=DX++Զv1(豣ήkxmm/-W~1 $G ,#>k[ki55H.񫀷#YyY4tvxx{|r*5#UoDҰ0,0uuffLSL|1c jk_bihijhQNԋv)?mPTG 8 iC75H7ŠU+T;‚<}<7nx+qbxTPh / ~)^z%TYfێm\7w/{$L_Ke]%bO{5ڱks,|OV4ک-CG161zP"Poekl0M^1 1^_굫? 6ptR||FG ܔ bsk.\hgT2o\%SdaexP3=jʎ}J|XAQoniK IfbY呗z&$'Ћ@Zd1/œD^~ /63X(_YbH@`0:-Y`ܡ3,2LJ&ݟ`mXalϾ䰛3(as8bv(-m,ϗ|NG$=,!m'U3K|" o@8!lظA6P"mTUS3zGpÁCPDȢ\ŧo6̶hOx#c#qNTMC|Pvqe˗¥eA^NecgbӕAl?L)wzGjIC!>L" IDAT8C!äWtIOz-YD(0`˶-L6Ӏ@6.$~U0(pK劏5\tҢVOX48qp 5)& Qsd3n4Y:KB\Ɲ^LPOBmaY!g}b6IAؖ[x.$³ЃK =x#5SlJtK!{s0 F!2&R<8AQ603\(dVkqx bTܹaQVCw0W^E܀(hwA)w҂{w;L2JQt_::kک@(9ܱ[{_k[!8MqAk!ygj,fUzllɪsx#1%QŝUrZryN8ر5 ð;E%1jt~[GolG,G#~=:?;,$g$ 1: *1{WG9C@(_Q\ϒ 2]1b0chڧfJ(dxիR<(zB,y)e//k;ЈP;hW^Ć 3,TI\ܥHD.ŀD.ŀD.ŀD.ŀD.ŀD.ŀD>tvju/կݺܽ!wE2rkkbWk D/2t )/saPysX>K/;6Ḗ{I$l>|GXG+Y :l2J_NC9@tcFU UʁzVeh}SriHϯrznUThsqCk߻Mvi4N_Y+L(q-ٲm|QI+?/Lݯ;8zlde_2;VP2z;sУ|W8805qt=gm?|h}K;MoӖq!:h<ْҊϗNd V \/Zs þ\u.p:ā1'>Y4yͷN/]~c.S+Wz3굧4tćOҞ>'۸edckgW:{KLiذnxf Cf lXδ80' ە[ǡ!h|{q`bAkg玲P0whKgo[X[V.M 2|Nf~՚qK~hs[~<(3Sn'âNVcO 8=x5v,Ӳq*܉-e> .*RåHsGLo{:`v&s j}pNƾu?yFwo! ?dhmG qI{O[E߮l>UD/6e zg:[ - N &/FںnuZd"8>7 n?|_x}c_ڶs0l298xJT\r4ĺd,Ⱦac?LE]E80И}ʺ~gLz\OF s&Ɲ&*5p*mcr3V˿;_r ?t3D>J^MBc$D5҆bۂI8@KS$d' Eeޙ,o۶}lͺq'6 ^'_5N9El{bNȎc,ǻH,S*?D yv*3o]N Q~%B1tz{MGE2d4s?rҭ/VZZ~o3"7%u-U= ! 'E&W~cHO/\Y~gn~OwIã9 ac cK"AbPHB`/BY ܘ+V5M'c7^m=m. 'j#ITIŀx/ b,=w:iotQ~{B%I s_|ޱ[63a coͷN]^) '?_J)]]]ƽD {\Z}R'e&}7Wʏ?&eގІk^}tt4;;;k OmHΝm}o\z`[ZZ~;x'Nڃ%l͚ͬQB-*N̛G#?11!.-y!* .$$$ z{hh'''wfdd]|]$ XeeGZZ相3S}}}aaaAS ^^^(Kooo %4:u*<<kiġ‚6 /^ܜ܈3g|3T/pzzz2v5`6fx5a[|||P‚P~)"##hMӧCBBDcccc܂1ϳO:;;3 0Q EGGb+qff&{crrELLLZ[[E/w%B-CcPǎ%60.{{@fO0ęLΪs|XA~AIr3^֊6g&4i4朋b1.(&#N @b0 `!8aC l@/{ڵk@B8S|.}!Q$m8,c ץ Ŝ=ˋ/'O&lk.}QՍwbp ioTTh=tra6@kIPrf!sQT$j/l޾}{\\q9Q4fh a0d5sNQOc!r0=*X˂6˜>),!^妙0R Ơ]]]B!ǻ~fbXn6z;qQ\\\pY00FK;fF%pg  kCaXl6MYT8W$n\㟧GPk xZ֏DB rE&B-;bQqO\4,hj"I033ӾYq-fD.J  &i~abh̨a h=k5ub*L,+w^̘00jX#fawօHܲڵѱ-+EgmXt Bw;7pbuh<;]LelC% /O4"p犴a9 󈬎W%X=`-k|7)B\Գ! }_0-r:4,; i-YEjHOw\#9b6j&L03!`8ࢇ*1W(INwq $ElE#;]֥\Hh I768'.֔yfIm#;!*c*&Gܙw ^lI-"qfP$ h$&BNApY*P-xTmE@x0!`Ya26{1qlr9N׊=q$ LWHxPsc0N`Pyme"^ԑrO<}KTX|`I`W=ZO0pX. R/L ZЏB 7-"^`"hCqq_6ctww^j ӨvV`a®K mHhHE`86-1/++#"6j(]0Wlz, 'E{ؗ9EA0€Y-k@;5d)qkrԋt Ǩ0E@h*U"EY55uXAxpu1ĸt<}@7agNPH{a*5j߽EaQVDcq1bDQ奘|ʘӃSІB3{"*sil2h,^҅@H ֪ EsrtM';3wῪ.2r72-~@BLXUA"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*wY He1"qŀ]*z{bfKE?\|)1#qqOMKHHC֓n)R,0 RiYH{=1<>,E-'N.ptw)R,p2#E]]]\RHCkCkWkW̱PB7:ƶƪʊ:=!uM=;{GwGgo= =]55&|0g=Ժ溺:eh59EYeUeU%/E7756^|}Oȏ?815QU_ӡ=ӏ n]8WT~=¬C\NN),ϫiS -}LOT[{,JJ\3,uwV~fX?-'e|j22#06 U%8á> ϬӔUä8w.MUsiy?ND?=,L>䉯ƒJë ;Wڋ҃G:*JJ~*_=Xz?/w}w- SgF< j:J\ > զdkUFqV8+A-{Ν*3\HGgR5p칳/]t+*g׽e዗.\r,[g}La}*0*J{qU{QaMfNy9_yi ƩqnOj{>|wʥ'7}}DPѵknsrMSXx$)m撛TTTVU:x gkם},ZbckҬ]SPX0>1m؍ro rTp(Kj+U95?046 ^Yrn=vܱxwjA,oYY0 ~)]'ܙoV[]SSkMv_|RHv?7Qg~Mlikqp&ë>s>"2¥ mm..Akؐ}{'|{[Yqg8:bieԨ]}b׾[;ة3S8މ'Gk{+gG؏{x?Џ3gP4e^1<;cOFfԦ@RXU)J7<Aau1{SMsޚ+Ӌ5MyIwس9"1%?0nm7uKekARN#%fG`c 7U֕=)AڹSߝ{es_lO6tڷ8.>.'7W8=,Z(+; Xs223Rj22'OO?q<88z7**+}Ap˖-`GRiӦҲظXyx9qlbiiԴwcmdTd}C}LL Ν?Ъ1!4xqvpE7oRRSk¢B0[s>:9_\њ?hZ }=\rYm}tO~exYRٸ"0.:%,6='EiVftt VSigk]41-V{W_ U%4ڲ.2zʤϻ597hL.+/c5*)1 0ԄHm۷i*5y>p|`Ϟ=WJ^AV抇<ښT'l#,7`) ^89rXkemӵqQƕ+2c|m]IlmmB 1<I#'³]zNi΋H -)*knjtp{iCvd1N6e9;n,Iv^nEbNDySnBvmk-Xؼs=eOe`}E]^rM}Ot:{b=5|hIVKW.jRxIeIY gfNM*,. c6lO/Ͼ>=FFGr`h# 窱o}xXXX@NMKkKVN;ߋ=ijIDAT,/<1ܢARrRtl4hln$O311a+W$6I)It+# njk2]r˚rf8ϤؐpO_'r6 Y"y)evyRdrer~QW?;fP]Pph Yk6#+9,q.c|V9=W^Q"\:`BOK]ӣϏ_|AmVU]S_M-w7 [b1=}=4ej lŊIqo 8JLIKG[0b&MW:X~-G͏JԈt+19qrj}󆆇όsE.TS%CWIpKc ~.܇C2*cKfMWKt|W@a1.q͌|]s+:p.c/r##]RR )Qlܶ&1'ޘJP9J4oԖ5=\!(kׁ{Xs!"=̌JʋØtM=ƽܥsgΟ]ΝL*x_ƛfm369+55'NRw/'?g`hsS'FNW#j ѾYZw/\0+55s,r)L W 547 cgoLJ5UjںN==rjVᶇʞ<:9J 4ȂY%2 ĕ[tT\fh&Q4#b=}Ò|#3C}5 I ureA3"=О."|œsP81f]b}_M~59=x#`nKS6v67mD;4:t;HͬsjqFaeG-}9{lCkìwڥCo̲[W}Sp0:8ӺβjƝEBsXm~%DA,xΎ{C ^n ev{:ݣs+rT&f͔lMoT8UJ#cMk;J˪&%8+՜Zpl,g&Yc1G\ZbLb;+J* MmMMcc{B%'wymr -;Q fV~zuSy]%_MW]P5r {GoGuc5V)=!--`M;ij7vтDxYU_U^?Wg)Hgogc[#3~u*Y[xG>Je}K}y_{BaKkvF$qb@"qb@"qb@"qb@"qb@"qb@"qb@"qb@^),zS$Pp?`}}}nnntt;E) @ wŋP[Y$X'*-1/_gkc)PY"KQ@W;իSSS'N訩AĖ/,zS,D\tk׮+$C(u,HRdEo @%p(+Ђ~u6nrQӰMBY$X'*-1=^Bg܅ ]@=Ȣ7 8APhAq駟膣ПdE+Ydћ` {Ǹ"wb@E.,T$Pb@E.,T$Pb@E.,T?\qQ|}IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/settings-colors.png0000644042355400116100000004115112640736115024674 0ustar00ensoniceng00000000000000PNG  IHDR5 IDATxp[W;Sjkjf_sԾ;ۻٝVmnۖ,+ʢL9sIL A$"s&Ŝ)JO&e$upI #G) BP?r( BD!P( ⼐yP( Bq^`X[[[^^^\\EP( 0p<g9`6tC '''GFF( BPnC' 0,bgAg &BP( a0xls?"vm ˘f+Hjjj( BPnC' 0,b汼<99 @*J(x<BP( 0p<g9`6EhK[[,Aj) BPnC' 0,b1???00`2$ \uAA0/&&[3]lww7䥦bh\~AA>̙3xls?"vmnjkkkll,++KII tAwx 8  iBAApy&HAGAċͣ%8BP=EEmE^I^kGRA/0.0h{w?b}vokPGqbܹíyA~>|\kVP*ZA2==´<@< g+c$#-=]̮jj|~]}T&mh&$wʓ̃ p4.+_&GxxxxzzxTWW755<͖2  <޽Vrr===|}}_^DEEd;w>~}}5z9j0ǙZLa2h4 l64{k> â/G@f3c$A:;;gff LsssxVݱ6ad&7"ta۷o~eջw>o%  ^13-g(Kȷ.Yz333aaa?#~nnn'KL3`JvZyyy7oLKK PtJh4|>###wDŽ̃ p7][y9m%!3L}h:h eeeeddt: 6簾&l*78Z.--*))IOOG%c*<,J%3^y`%Ŷݷ}ED"aXIIIhT ٹ<00ܷ}ϋX,( , 9$55b^ڿbb"rhq"ajo{ D.Y,;wiAc;߹yAN1=3-s9SVRR)3 z.{%`DhD/D*bˇʕ+ؼs>uTbcckkk^@ qfff}pUHx???ﻯd̷a +++kkkGcPAAl:6< |||+Ö<:: .`Of8LHLLIr}yk1op֗/_2\^v@s *//,Н~Ghyyy<gfD]ݞBAA8vzbL2t4a===\GVNNN~*fi:0-;4veZ8ݷ}_JͅbGhU<C8t^ooh0&fY[F SOQqq1C1B&GPPs`CKggy`Ŝ)ۛO< '* Q6$*㕖8%E]ytw[[kYPp1^h]&2<EEEцf///(30SB0 xׯ3v0 3_oXr}vUUñ{<&&&PC/X nܸյ5\ᔗlaq=dAeQY]m5,F d2jlZ|Nprrrqq1gX vzop4[ݱcv]a&uuuL/cUTTi1;Ƈ7R‡jkk1;\dy`y~%`ܙ-y1sPFCAAY\fr}^k 6KZRrݥRD"D PUjUy<666ZZZPV5t@%l6qԱ1SSSvvvrii hnnfe!1mXd:-fx 3jp.Oa|;ƺ-(0_}wI߯!:1n۲Sx>k9#  0Lz7JN͹EDDD"jp8_3 JJJۿl1555qqq Bp_Le?˂499ރ̃ p77[[3Muzz΁=~}}}tt4##9++ Go6g3q׷C.# 皣 *gk6pjj ҂CCC* ,c``V^:vV w` xѣGKKKT(p .bYd2e^8L߉}Y< ''CVWggg*ENnvqIc.0l؀KJJ3恝8$$+bZ-|%J1Nmmmnn.NjP-3s_AEw<0, 8** c&%% ; bmxU*Uuu5֖RUU2nܸ.e !  0N)+]\52:iRw 0k׮w}<`%؉h4י/OHH^p ߏub 266(dffnll<RDzhbրV./_(2#@+LMMŌpDа=Ӄ`0`>4@ E$aXx԰X,x `IOOŽ999wT f;kR) A3Lq<`Zl  [-kӧS+4 +P /D\w ^v?a}O>v\| c>{-?kB#B/] ;{,v4za;֐[v Jyhrک3>:Qhd(7!,| lR?OaP8<%L:GjFyr|˳ m@:rnXɘd[U>8+||1I[opi$gR}z=>d'? AW_t)vYF1 7.>zX(*,.,(jg\#/̇TO}]2ٿ͜rpl 7nԉ.} HIKIIf ]U4J5hqFX`V#z TZ:v)9g$T F*/ AkZ? 6FISgf«_:B\`wnܠ)mr<8wg!ee(0Ck% RԙSB 1))W7>h8hv INKơh bs.+߽th?ԌTNK.,)·}x>'?F?ee]PW]T I! _P(HxBL.TF?yUBnl2<|2c\1cGONb썱 Bl.+Sj/?~<`7+Fjgcp_jK3˸ulޥ6y@qF-vzGGRj֛GAcU̲23£9<fkw\dJ (`4{xB|}l@ I "nVNH)/3.0Ԃ`ѯ h` 'QCcNc)x2<;SfnBrwu\vg|kYJ Z q q55=υ|-?ݙBn*y`NL-UX A?`3rKC;jjN<y`%m2k׎8B]t)nw~PdWA0Zv^6N2TV^f) `H^|?yd O= OJNKS*Q IDATlmN9u!^[%~|=D.^{ڕNbg ӟ:ʐ ]5 )|\\m>}O1 ?ܒ ՈMF`UP)^Zȱ#/ ho댎Ԟ>P3P).oC9,.H(nyʥ .$&'BzjxT0׳jKNԵ /Y@xnqbZϚhLv*rud51 (_ֻ\k8ži(fۉr0BSwO:~25RT$ɔ2؛lkUՍoC`e}n7b4WbaФ(tFF@cN% 159f:D-o3fmkw oz 4lQpʤ珅84lEcXV|2'!g$*E~Nu$-jݐt{ۧ{ r(J gk;?Q.ԥ#byIK.y\9&r g}G_?/=t.eY"~^&I;-qAM\I=W| fTx&|:$_v/#ؑS(^|3E z3"<8A}ǂRF#J>~"*P]JQ6K_CI9 *ht/e HʋJ<| 6nr1dS|64,>Ǝ q|_Am >9}i'c =O3P}*҆sR|.S)M9s>;H@Gag>ˀO2 ⊫-Ii{DD>wz-yvWM&,S[盓!cX4§!qêl6\oPyۨpk}_gcO^̻R,SsR8~6*#rIT/l❏#{q(1AG\f?8俩+aُdO39].nN=RvU6~xO;o|<_chO'?FKpM!1CwMAA3Qzz:s 쬩AJ< '2([j骫+L41ZX[U] 2+Fbcc\*:g2`Ν;(@SAmP())F/l1Q*LM__N Ce NA\f:dvoK-BY֦ZSV:11eVA[ZZz{{a LxZfْۭ1m+99<`0r A\f+2 1>>>22266f/!AOOOgg@P luii)//orr*21dee1 PhxMyN{\.7kkkX~2GVc@}7CCC󘱸=2  <&&' uXRT"0Pfa5pe:8jڜ~-̠eccCP&QZZ c@"MCCCLLLeeIOOLOO%&&bpvEp[N~#/ܻworrraWJOՎvl#?_!  # fJJi|<;6054-$7mKrJ#/Ξ:u*(((888 ""êT]---+dݎ|̃ p.6⥋^׶J/o/XNOOC8)hhh|,//kڑᚚJ\6HPܷ^ F|hhӧ!:8:>>^8 485R0ڙWYp?!  ͣStۨW++hm;;;|Emssٳg ==="! w訮VՐhϏCt:8 Eŋ/==#/..b@k988m0lwe< 'b+UJ :myo[;db}}U__/ \. ޽(`-¡$y2-- Ca~i -_|̃ p7B\yчhԼrY [###9taccVbnlgf00 AAAh|>ffJ$~/̃ p.6~eH,rH-=dRY?g~~nYYYLKJ777ח0H$UfqqΝ; 7@Mlmm->>"b֮2ݙN БY ĵ BiZjmgIM&EB?`:MAA@;j*qYgh?h jaIn pVil5 =x׿w-ۻ8 ,̃ x)`CowsOkvNhIJJ\\bbXzL56juR*tRAאUw5j^~{#+%%w?p7:|?_4n2Mƪ*D<:6e'AT/oǂ< ͣ Ns 6SJ+>F`fJ.%KB 4ג4#YaQWn&ggf%IC䘬 Zj) ]-`x{ [Yw8pBB|с_g?kV3dv ;;';,,lxts s33Pu<\XZ@,y~{}qyGVP.^yA/vV^S,)gյ5r$I&y0Xi5e1Akj3 D7nFM7b:Dhg݃֡GGecsf`BP{p#=u8؝sʸF3.t^[oI=+ FKKfn7#b?s^^fɳƜ;w… * R?x85=*`Oc0>ǵ1`j̃ xaCgw~3G UYž Uo_ie7[;Z|j*:L_SVt#='#S7g38[VYhWs: `dlȑ#8 xxx}3gϸ_vwss^XZ8|O_f V< <&u@װ,&ed/OXl XcxɕuRiRy"}#cCSzoV{?c"/^>רmVK5Bf7H0YL^X^t>[|1jq4'gom~U_WL,W gfP+L]2ҢRqNnNO?iP*^@/`IQ) [Ν?ݵemAAA0dTZ;KhT%r%̆a !!+ίKJA˚oWe=WoQ8ognaqoqqnۿ9sf(2RkAm,,@㶎L:81wQ9{l{gVT:Ay^i;TfeV\LL^J,Jz(okJY!/'׋PȴѴ"cCvv14?=?HTT/|{7߫տRV7k?xl|xnZ,GDExzy ǧ'nMr^zށΣ]!!S3S2?^¯ߚq3q`L\|mARYa5v"WBemJIiBa[+*MuJDkQX-(d'9Rs+Ej>$E]-ko7Cafafrf KkZnVgf|q09=?Eťee@$uu u8G@.fԠ0:9ӁNLOZ:,h }A ۺɹ9VIAA0n:tVŎ[FR^QחVu| ͊xl' GcfGh0nނlalr"T J$wW^}FF?o_oG||}j"33dAKc*}]*uDi)` C(F w;נHhni~:#Ī eF*&/ydQTIDAA<%yDgZ sgL:Q|pt9btrTQZ [t< 6F^P6Lږ.sAsZi6Oh1*{tXye˟A"ZnMC֨r.N *+4 (sF6j-zkuyA/&f|M'om60YMVCK=\< pdAA82  AA΃̃  pvV IDATb7) BP̃BP(cvvb9sC BP( 8صy L&D񲳳cbb0y BP( 8صy,..A^BaYYR( B< O-`XĮcyyyrrl6T* aX) BP(7!` pkX[[twwc XD")P( By [3][0d2aF BP( 8صylnnBX2992m BP(7!` pkwYyyc[ BP(7!` pkP( By!P( ⼐yP( Bq^<( B8/d BP2 BP( BP(̃BP(BAP( y!P( ⼐yP( Bq^<( B8/?.}bIENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/settings-audio.png0000644042355400116100000006570412640736115024506 0ustar00ensoniceng00000000000000PNG  IHDR5 IDATxgpH9/&xac#vEvՅ)-!^ o7 /;tCBI!Uʪ[RWe?n=yI{y?|!L2$L2J$L2$L?$L2$L2Ky$L2$LWѣG8>>><<<00.L2$L2U 8Be 0XSSsC&dI&d7!` p Lss3veI&dI&Jp<g9`ߘy,,,_0TYYq]&dI&d7!` p9HMppdI&dIO-`X7fpKHHHHHHH]M׮]' 0,3鞞KVVVDDf{(!!!!!!yg5:u O-`X7fwiooqFbbׯ\=Ξ= O-`Xd'$󐐐aGc[cCk&S+RBBBB⇍5hjo qur }[wx}Lf|<{7s0Ζ _?`luI.씙ߑΜ~,*23Gu6T{x@9NJ H/<$$$$$^(6yx:v٢ӫ_;IZ`oswxCU**}qz1%󐐐xum\rꊋK!.Q1!Q6.fNg@_8`ws2or sҒZZՙgVOͬoFu%'mfhq=2Qǯt(?(8o樂ЀWAma5ʚvVU=j~e+fI۶yfӟg?_?ldbTV]66ku7|IHHHHo̻-!Η|vzzlVs\\lxxIkoYmqzq[ǝ^CYuԎ9l'g\9[p\$&?֛/rTl5UVw򭝭5 - ۺ*(>JEGrzrhdhGE5m]^ !Oo~Bukk+^ijaG%Cis{sXTXJF>raAxq$$$$$_l ;eR@ հwtttrrr*۞ײ~50Ry&hmyt_ltM)yo5UڎºDhm}eб,?Of>xaq Fy K _KnnlR1y[0s 喎=lݺБCIiIkb?EV~V*E((ݽgGTVUd'[mx",ƶƓNjצg E%K۶o蓏_SyݞuT )ɇ 0wZWYzx[[[9\]]?zyyyzzz&??ܼ\Gs+yEG\K,ϭq {Dc^lAnw1!e:`[gxk?shn;b_B3)'UQpc@9ymUx%Xv$Zɥ&W-`pz3Gr]((-=W#?s`_ű_ǎp/KSILI|Wz-Sʇ}X\Vٜ&h_=֖˪vڹΜBN[r s´~۶m:'u`*>_yD;`pqxچ ߖ?`lpv6uj;`R[HHHLLLxx?ǠK[#V~E[?MbC 91Xo~B\c |F'_mW9k1Ѽ|BmխG'ު(9.+.Qד5'i eڽWxzۿbdb}f+]TM6;e!=:?6$__FymIJK/3b{'o`OfЈ2Ἤ, y[?*vvЂЈP0jI._կ~ɎOX]qIq۶o~[ZhnoO>FIIꒊw{7 GLiEoK 06yEzYnhpww ,^ /9嫇^QfiP/1 y1\j)xz䊊y:]H˿=8k.slOgVD]p5PXFZ:Mgƪ*CFn(,U6f׏^ƻ-;oZZ[ZX[K~GEWT@5`'0|ɑ[nY<?9A>럇$h(GFN5EDlu3$.)-XXY;]ufh{_|A&&ҊYNAS Th^Qolc#m rpmgL9Z\uzǔؘȨHO/O;;[;{[[&m=`tAglȝ z3&>Zٞl8I] $TؽyV۽-#=8T\p| [P^GCÖ۴vM|б{>3*6< (C,tL훨ig"/nQQ+b,kk#ar> DEo$AaA^^?Oa{kuxW5ɎOw:'t-<0EpCBJB[w[yMCS? ںToTӾZ<J+۶oCg׷ԛo #/%CcC y~?1օ!!qqqnnvd\}||L.>ɧzgg0{%4s%2Bbu$..|ycO5C6Agۼko74ޏ,;8xĚ'YV?QKo(> WJWYlpugp aAN-_=`;ΪWaEE|UhS$۰L78+t̮Ә\|BYC7{=ݖӺURQriOOBU:/8x0B rT3E6[kjaJE{t'ڳK~݇c! [u||M_:HmCe4-g|}smQe E骓ċFfyd˟Й}!<\Nv,Ǭ4jt.a"<]#B/u"]exqyz|}T}US(xZ⧉&_70<<'bJ`ww0@1|yDž?~zU}ó*sF8ڇ~ː |EBBBBB;boݗ^eu蟰bannjd|sN=jSЗxs"!!!!!;]_uO;_vܺ_ݩGT x?O/檾 n5#oMҶ}uǙwye^^oQ+A׾u$:ݖ\RlVJHHHH< |8oGtrdZID~UrtϚLTOj͢I) ֙=SX3=N&(zsW, EEu]^!!!!!4pNrZ6> 6y}ԭlסKLhjln_^Y%$$$$ה_@ؼȭC?7g{7*sITJKf>"}.!!!!K*JP6 󘮌iaZgߕ|oAUHy<ʋ% \\QѼDsc?;LJhʕ-3<<~PBBBBb}[W\lmB/xdy:>zhvvE>|Oj;4<#Qenngݽ{:$dz܃؇_Vp/٨?Hg s6$`-L6jCzk~jjFe333:.`0==}yyUV[[[XX_~~>y*;;;?TWW['GS[SrzrPhPL|L}]ҳӟ0ST`wr|;MNM~j)=ٻ7n(j4=2:2<2\QY=zwѯ_'VaК[ Jo"!Ϡ }/:qgbxxk͚ťNj0n]YUYV^&h]6o?Skyog fYQ籰̡hhlCAuVҽ%:(Vs]֭OSΓ8ejgc5u{@"MNNZZZ@^$:Cf+++?,<$>!V  QVOO~P__\__ZxRRRBȇ'_x-FOkvv6"''^ 355eaaEAE@.\t @777d---/V_{"[=(Ä"##A/__9~8mAT!:#jGM}HO&p3hS'32a>qIqyy֖?qJQ ) jbcӲ4ܬ@=lddt/o/O) QQ:'tKJK^uhX(jfAe(Zd JNF/fZAhpϽF-bs s8>z{nicbjHs$0F^Sp >:/]?w&0tam(--%xœ=z$t34 2t8L3G &UֲHX_A&p(8CAkȮݻԂ:8Q++'d<$@>\O_qHMK=ip۶maδ037khj#8FK/aϝ?>qg C@5v3U" 2SbXX;w@ffg F}D'fJEO-A;G'GSr8KlrYvf 崋ȹбXe#h`9z0RY]&MP ?Q(e1:[ITTL!TKlvӧx3(v"br쯮fgf`p5fDqŔ\\QδIdQIa{{0Aܼ֭lGJJ;vhh5WXT@dW(=V +fpFDH!C МD] r(숌xqB4I!|=R|g"6" )++L111-ZܼySy`-,,,99@7xy-XEnj3|M+kҊR? P4(CCX<( IDATz(j *g%oq/-+TbN`?'icS#5ښ`v尠]6_MsppH8bzz{n5QKTPZoOu$1P"g(usZֶV"E4 x:꜉@:("jR'qQqG*,y70B/ǵD# $CKKqNvb9t;AO7X`Rn ^|ZmF" kmTg8@(J_#G<ѱQn~oBx v=!B 10=ݙYO8iOWwƱL;}4 R!HM,_u$Baؙe1ZGFfIwXH*nYZai1PX,V ":՚|8}aq![fNfu+#+uo'N`1`:;8PX~@ư3tbu*– yb$@C 81𷳳c:AgR*KEg@AA|eB7gg ٘/0ʚEL[Lnn`{Nn7zM/ \Y1Xz <r0ShRf}'ӄNRg~^q0,EbFXf<;19!v[oE d+L+kFQ2 0*j 2a+/^QV45;54ώw+*8Y9ljsst.^>^(qŤ"jii(Fe{W;["0uF4"TqqA8nup:46a(8aT|E B5dS wLԇ pj*rG'G$:379┓CuDu7*n515afaHY!G-,  R歛D’By zݕ}y"y\J,Jɑ݁IݓL%jTg]c6I:ɣt8mmm!Q$K.Պj楾-ts4.$,zAieMeFVMP$A Hjޛ$6f`&:G3ݬ ZeLQ[Kc0b/#hv`y2)5c+AiH1cHm!qt犌 @cwTu uHDtnjlc0F""d8(ބ ZTL=kqtMeQ dSbmlmZCO[MLjj Bl/Ybxi]|lg 0/^dm Xy6cnA.f_eGG9#SVQt'nj0q)Pp77>26"v"<% 2VO_$O<< >e`nF摞PT 5(y$#5-ya'66 k!EDD4bpppjH'ZҨKM;U(`0i233i >MpǙ9::PggKYYY Z9EO8ՒyYrpYyYMmMG( IՒ+iYiFFz&x, q9S8ؽF8U}%e%L:,,$$'OuqrRpo`ɨ<`}j÷TV9~(s ' qF@ٹk'88q O*U[ `̍V67oPm)QIgO'Gv@ &>rXT^hVoliKTؽ{7<:C,)Za1`NQ@jp7'WT!%fY% @B@5w1\ Fh: 4axY4<b\SកY?<kA#`〗Zdkp}`` `\HDuAbT/Z#8 Xwv`>#&[6oDfK7#HKOS)V~PVVF‚jeUeJj&XYYijjB£ªZk:B@H&L2 Ѯ~T*gEWcXJii}<#,?| 㩫CYY|E.AET|Ůn:ia3t=G[wgw蒻{"wQuLK056 7Wyp`ގ#SωQl]"ԄpS@?@ȭۓ 2',< 3]6q`( eE&e{Sܳ HP&Cn .pqvjpr݇jp.2G@"ՉT'8eh˜Tw,ݷWT?fubGl+(e@N5ppndb`ziD[N3ghJJ/')Nq%[1sea9G?HTwyM*ɻ_J8/-+e_t3nx9Ka|>SsgֶĘ0 偓`| X : #L8yBcq%,^X})nIu&g%=Bu|`1HX`&ӇꃢtDAWe-vM53Dq:0g$UbtaS.K rvn6eMAg1 ;YWnLt {p5ET@ec8:89?Map>PȐ55%,B)BȘ`Zu"^⢺R~yX>Z2 2\  k$]0*Qf8*ʋ6HMK&Ennnvvvfffzz:7d,DEE!LJN?%*"(Fa]S]^k!%-%uuz>3szAur)y yP\_SW#9ƧƻͣFGψ,s}ilmos4 5z=7{hBu_sm] ʘjhivHP -- 9s@0Z;[QxK 1(:?^ZN:1R: B;HGCO3PRuh@٤^HuJiWhJ8#Ct!ix:<6}\=eRn& cǘ$  HtN a m!~{.0n'l'@˅& 8Ci:NԌTw/w6Bt9)Mɩӧ4%pnI wfĸ︰!y!JJsrR㢢##BBB#"¢c`!ٙEEJewYROy((;02 !!!!>GˋP$$:hnVVȇxEBBBB P+*j+M!$x&Ŀڲ%$$$$ɧڱYgO?\YYY^Md_PÇS[,_Mߨ g/I!!!!!7`%Nzչ|jjyދpႩcaa!-!!uiZ\\\GGӜrss? WWWϛ>-1>>>?S$< Vo]SA!!!!!4555j32?ޥ[s㗗GFT߯T*(l[WW7==-~S\T̬ ASly:11Sy-kX/I>(*/_g$$$$$rqE Ӗ􌴙٩yمE{\5mQ'< SSSiiiXJoo/ظ( b&AG/ OT fVYSRRyj4Aj󰰰{`HiNNF0l^6 U`O7JI,10< Iq73R[:̃Јb===(E7oD9A)<#%%BByyyBBʊu 9Qa涶&%%%''k A&XT]DCeee (ath433!wfw>x@BBBBb}0n_?n0k B ,**BBTN)`TQ(|B;F{CCCD}({Ah^.@999BH[bVVx{E_~peh!~pp0ފ/@`'3h<}|B"BnTZ;[!gxTxM}0kbaqf:cORRsrǞ&ҽ<n}N- CM; Z{xZYB>llY/07+mmqG3yeRy OY6 @"UT^zmr26)>E'tOg #([\<uX~э#GI4j5139yUeypCWqsz^FG ʗ /\6@cǏi«ȗҎ;hjkתj0ٹ+_-ookkԴԧIM¢B;nCYYk$j ܯ3,̔JSEZmqG$'?*,붺beaiaaew^::[7rMm;]#eҹ<[ͫڻ$\w5\ɯ}ً‹Lkҋx#;?܅sݽUaTt #>~>%Q^gd럇v;~ gSIuѐPwQÏ?.V{Q_wM-^:'u "{'{p|R11515;aaI)IH`00465613sO<ބNmRxm@mwInMlSgeE0GJk˫+!$S^S^Y[ oW9RhfP`5Qf#ŷg($ yy%%0  o=TF;xoUu/B[UU?^fЂ;3w&'4182xk:щѾ>9tsd| wLLm^fk+O7&>9Ƒ-.i]{L&gi{||rss/ٓyla*[Q6+JFN7>366)!!!! ܙÙǖ- ?Io+hTtqgcpp0<<<++G=r(jOillb<|޽{H=zܜ/fc{  .1.-+M2ՎM<ƺ܇/nY5I=xG=;<(}a'6 ruuR|S׮]𨩩y!줵Luu5BhGNN" ')hJ@@^z*sCBBBBo f=u]o ԝv7uvg4ՑWVVfff!j䧦6x _j_ҒѣydDS[SmcmM}ӠhP45z1?Go}?LSU>_ddC*䣣CBBBBihioPT~˱{2_9W2S0S87XTez$:hj{Ͽ\BBBBix`yuyk rs160IZZˋ}$L2$ӳҽM{2m$̣h~aQX+͛7Le<3<<~PBBBBb}[W\.LJy6<:<9=IF #Ë&'T,-Lܙ3yg2)U-aj~aѱQ2(DgWgSsZ±VW_784pnjþ@8x\\\Ғ^|g.ry y͉ z~i1A8/_,'~bco}솖wowȑG]8Baiួ{ .:"tԒZiYiƆ .1e)ݷuw` !ʲl'g}}m۶]xq֠^igoPV^60ڢ?=3eie朚ϵw|rfV ͆{+8Č**+\!,UK65󘛛y?>*=Z_7yEEEQQQ냃x%'>%QQ]NsBA]yF(m6ay2)-I+x"xw̭=}<&PҊ |}yC#Bkkג/%5ߢEAaA(ڰ{؄,޲ 7z`&&& K Gzz)nhlػw/cDk[kfvpk{krr2%Q##ͭ.CC¾LL\̥˗8To4gf\4͆|rp2EuBb\\|LJZRjZ((YGG[nQ޽700T*mllhǐ׮]zAww7E//0xLaaGqq1^SPP hhh0008|0֑ kkkw(m6qrZV)'OFRVUhqCv}KZqIAI;?=xa{퉈P~k;2u*QV4=;z3e3gϘ:d!PySQQ!$t Pؿql#0JX ;w\IE̹3%POw}̣Ӎ&*j*7X̣54"^{ƶFM͇"@@SKSnAnWoEbrbm}e˃Ã}}!!-==Y(Zu uQ1QvwtwM MVhEsyƆԿʊ궶ꊄ5bA dSS[__!00P(3` Кch>*Ƞܬ6֡&fRRR`<A~S<qIq榧Μ20Mmn+,-42;Ә8{Om?tF*+QJM?TJi㨷R[qoo61`Kc ج 0̀1n@1 3=}2pPXRXRVb>(oQ74|Z2vgjnyo_:5cv3vfݷh6RaVt;ERQ,-+ F&T.sT?^[_KrKfG:z(3p !ܤ  d Wwbʎx<Fc jn7IAM䬣7nH$tP13hŋMj333Rh4NLL#S05~ff&T*iAn"H*3~bsיu*Jo3_vpQļ&AiƠt{g1j@B!*^X(`b`hL$h CHwT4 x"ͤ sG/`Fz=4yv?0 B7ɍX}>.rA |H$ \.jcQPa,>h4T-l Ae`6d2 RIS1М[n1sx<^~~~kkkCCCii)E`8ͽ|2-N.5ٳgu q(l82A A1Bb@OP*NX,.|]&H, RP: 3w39tP<$IMY hW*ݽ{& :NJ{lKzB?`bÕnͦj)2x蚃rC4XSwktlAy<<}ўxO$B <4u[{k L6E74uy'H.|O6Dy=nHN {̯}=h< !p/?WhJrM7Jy0NJ[o@P,Dr_ʇB02!eþԲ\=Hm.A!|^@y@y@!L\*V*W)+Hұ.< u.8V7w~3ԛg_F癙`%PB:G͚CGOdj<֔>yy}{;\K3O$yRJ _k⎎R֕7(!ip#;bQQK5.,./)~EEGX/CCCovnnn^^^vvٳg}>-P("ȚfbZW\< u.=r#HG3޻n-? %SSS<cllLDўVTJsl6ۭ[d2Gst7oT*u;vPУxgAhC#4rViJ3L~4*K[[=n7)(!ipˣNjnmY~\|dee 1VܹZ| XLq=ޮT*)>(#lv~~阮j(/¥uKRZydd֡9"5r^^͡h]4n+t[ h5-MϺp8 ,&LOO]]]MA#r C2A%%%-X\\ (z\.7/ 4!ID'Tʦf.)<^;(!ipCoЗ\-ZVe%"ӟe,!0 wՂAy@!LPmɡPjn(-(!_.554(es?J![tBgQB!L(!OB'B!!BaDy@!ܲ=Vz:{(![P,zLtnnNau^EmP2J)j!p Jk)z`m UE;U`@-"ȍVc(D#`8H+moBմ{B@D0IskWaYtΤ$VS#)Va|vPBTAޢIBq&7f՛OGkZ`AןNEٴ䳃B՜/my>-Uέ9Se?˂?غ<4Fayw'&55ھ}ȈkvH@y@!|,\x#{]k6rVuY~߇i\^w4~Xyܛ7M5Λmy?~u(_f凤M0Bc!S:&εjY : KxF~BvjWAfb|掆E5*^qРHiEO.VzɚNݓ\v ]N]qW]۷~k3쳡5n2-L3qh2 X>2,5Z>NFy@!|,<``R.hfђ7;UYew U THLF gIDAT6#MyW>V\~E(F +Kf :y좲zɚ6|Xyе|"'UmB۷_~s?C99? ?9nq6]XTXSWs{Cw&JR:LLNLNMaJ ѣ4gbjqɑztt|n{ mV0BcBy.U X:M~0QWȻ!ɩdr+WXj%|VhfmSϪ R X8.3(q-ݢ˔?; #a  |Uk~+ox%oeJp/oD=go⥋Pptlt 9P[W(G"v:yT&;w̿k׮={(T q왜rn`UuձcuuDA6)QBLyhM*Fg U N>lss}߭ -a+P#QZD^+da59524+Vv󎉕<ʳ/.O;}֓XHLپ9~K/~aEY&܁wɑёf ϝ?m{i۵kt9uTv]]t_H%xB3FۜaPz#vgм>Se-[gтZʪmrḺfv Y'^*;ZcWyCfk3|yvLܶS'[4ʃ9vt|lGƎh,kAz"'74my2vf?߾}2Gw ۜa!1)IY~j j79 &kaz^ Sq_sNhc%ᬃ1s{hx]NT\ξ` Yf7oLNmjɠknՒ+OfGz&N朤X8) r\j(8h]wy%{#)>PB P΀խRG+1* x+g Yes^A%urC3;xMY9G[Y:\iݨZTvIkLaEWkhU?EVjXYԥ4"N,5J65?ͩk>#^Z i•s%9*܅Skڀ/l`\`jpn`{9~ַ_K_~+o|Co?)d1N=( Ξ?{57񾁾U=ÇܟwMtD&9uT_,>A]ng .ήs2֤wp;Fy@!|,dCYZSz56 ;?ycuZ6Knjl2#Prn5ݨnZYHQtRau|I$ִO]^!9L$8wKEY׵__5| X `O+66667r x" 9|!_| {ţ}Q^6fR-[2q{\#Gy@!2KMn.[RY$ʎasKw꒰NWY4V=3}"ZV\c^X |'9~-32{,L)[h2Dy@!|,dCJU&fȗyT2OnuO3`Y_irTQB<ZIff/I5jZ o"{2`5,< n9=JkU&n %_k8-feimh-`j*j*5H4u8/\.ڀ :jʁ*b166H$~bQ(LUUU<T T TTk.!K QŽFy "\SSS###0L`j*j*54 LH$hP(D-ڀ :jʁ*bq}:R80u5UĚ @@y }<>PH(@@y }?\O6yڨIENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/settings-pc.png0000644042355400116100000006336612640736115024011 0ustar00ensoniceng00000000000000PNG  IHDR5 IDATxwPiﻧgj:ܺU֩:wgwvvgٝ03ΝND69s DF("@81lnc_}Ky >oݏԨQF5jF5jԨAFɃ5jԨQꌒ5jԨQFOÇKKKw޽}7F5jԨQ{l`8f9@MhSSS/^3RF5jԨ=6Z3&0 e̙3۫V;QF5jN-@Ps`R5jԨQF @~E<7y,,,LMM_K"TUUljԨQF6!@ `177l1QF5jԨ=6Z3&^T AP㘑%%%@ `qƍ1K}}=X|TTTTTTTGN-@Pso4;::*++,>C******8}48f9@docZ֭[wů##_<;{> 3УVuit:@Wҩpt7ۿrZgOˊL%jjm/ 0d0S*zOyg !īF15NAviN[޼es[G[@/0NIzx0ZVד1)!R 1xLTӳ<>0,b$]VVZPp5ccc[VVVcc#SnX8`ݭel6{``ٳ]]]pv8::`HXrr2>FGGyڸ|PAۿ˝_"2䁄W_lٺC]S]`Hயw '<Oo_oJdq|붭hhԩPIJMBwsqo߱ˣCa|y`J0xc'm۾ 6oUTTTThY<Rɹ˖ܜ9??2S>xPUUUZZv\tIӑzʕ+]mOO1\r T_0m@$* 499i09ӵ]ZZR*hT\\d\dO;r$͑s r??XPQUACbs+F?LGeu%p$|T.mE~ 1GȆ;NPyw:`go&^^Xn&EFaR7j`s]JBEEE˕%#5-bC))21H"//́B@YMSSSp@:G~twwlEpH$dsA޽{ecf` zjKKFimm 2344T^^zD{D"b1 3::3g4qqq<0F/>ۃ`C%ߙjh{߻o/%@'N"+ @nih%ͭmIsvb"[ELv}JrP RzAAy/%e%&4"s)fpqsQꔝNO>=r=ֈ@O݁ m۷utu&Y9v|wZ<}]L7בPQQQeILG2+L\TTD{LR22W" ߿/C |D^ApyS|>!nܸl6[) ug2ryCC" an޼Bv.ZhtHS&CBO?!_؄w}'#'_!O@!Cw_C_ϫ}iͷ?:?_nwP{l.i4*P^ T.dY~M"!9jHJ''0O?32A!Aovm5y8>S@w:!bTTTTR&A,s\ܜ|@ HZ[[AYζ #{{{bbb|||\X,p`@G$%%1133@Nji"ejjj :;;DLΪ|*WPPPlA$+g-b{ 1䁔o5[y46~~27!={T*9dwo_oI/_>U!-<<=Ղ?O~\q? r<%=@J%R 9p U0?aJ!>4@ٶm xsNZ<0L?":B" 9۲m k 2wU09%)!1>11>;;VWWVUUgGEEFD%&ݻ!y#===@pVEFG,ill߾}ccaa $~MEEٜ<dh 宨|PO]s88`0zr9(84yde>Cv*J׫svu?IT'2.y[iwy_"IH%w|Qn0u[6_jj߶G7pԘ y뭷0?x S6x]Ew;qCiy)!ロb2&1G .V$굗%1??WQcy))Iq1QёQ(.8 )b^r)A'J921>>fAz1pz[[[KK ZYY1JRy* D"+c_(,--wDvss!!G{{{cc#V[322&,//DD"QEFF...84<՛SO9ҲN8 @b}s=)~"ʕr+$?T䐟H HM<=+* ͑94:vW\ -! ![>:.\#"KPtl4P XӮO;bħRTi} x<~xv~6B p` G?N'ЈP4?izdI򘙙 . p8%%%yyyONN2/~\&^o;[lRܼyrpɵk~\,LWIa 0D9ܾ}/lCommEL<774ҥK$tSS3D`NP$5ڲaa_?? 9 k NGWeI($$5W!#o #ÐC~axT8e.K/^XS# nxG٥CCC{R>1[۫WSRQQQQY<~\ׯkJaeAa~vvVffFfVF^~U.]Zqm)dYTTTTT@&XZZZ\\q˗ϟ?@{m[|FɃan?)y4_ԡ8{ PQQQJmx0}§/@[8nttt"2gff2g:555Iok7,))IMM͕H$wyhSSStT*X,s\\s Pޞmm-=>}KQ `D2ΦQ)/ʗʥMyy-|IW\JK:Ub@mzCA|0ӳUݪ֎VD|t}8M8)5 >Ў,9yh{ ) uAEEEe.˓]RJ6#YW&InN( $`tWXX?>>j1$oZdU^^GP*׮];T/**YXX|D~\~K[[DP`Hx+%999~K(c".]D5^r%""C r ܿgaN!@S25HL\K"*bcHH@^%m'":.n.'O )G :2K9J9iyXY[Ǐ? go_pp6n_k{+jkOy|gή>>ɩɚuAEEEe. faT܉RVG*[Z@uss8ԻF"ɐ(#{zz"y!Oc 䆆Ecc#H` 0@[8 ^^^ 755a7o\\\}6 *++3 @+++ ` Boo3g+GE_Zax?hN@wxL&`Ln<2y66~}EUuiyiN~ i y7B^5a+"kcWW\@B+8Zc+3|ϦGr8 AN֬*1a4Z<'E֢>q(yPQQQ˒1=}Mj4^tIsM js\p qih>|x5RP R^^a yb$ll #7+CJt2=. s!rptIriو3//O1P$ƲF t XA z8Q`s@H6Mf ZYUQY%9cc|\­[$ ^[T ,< !8y$^ii@{ 3z*0` GGGW@k)/!X< xYE֢ҩ"ga\mϣS 0 M" 29o´ٴwR'AVtbR \gd# @pgc+@ z?**7K#:ؠwG;ا\xsPFqD⪵pVVCz 777lp9y,..)\,-!T֦& @4HCn@F544wjbcc0 !#fqqꥥ>L=Ț5j@cgO^-MJI͎KM_Eʜ^%`4 ₐ]wfjz4$W\75#S#P,$[%RI5l_^.nio[naR9x`}s}@P% \X\`KJ8 VTT,,,\p!??xxٳI55579q}luuud/_5jԨLyGWrʅ_|9^#=MG |r[7劎H[V۰&h |h؊Gvp$!GخOxYl$Cah,*w y3V]Uq}-/2qk҆nQU{mĖbGvc 9q?QƔ>Y*"٣S_-잺' Ê";XOmCzi1tq?{yo&csK61WYV/mUAɣ^Ro\CFMCMpX_ONKIWTUv̜Lٶmwl8w(6֞v9M"NZfj>pSֶȟ~gbJbph0׋R{FvL! m^Mn߾-A .{ͥ%&>>P"|:`0bJԨQPf"# ╋ue"Ԣ8Խ֡k' /^:ߡD|nrIw+$!(HBGYc*jbKMa9ko|2 9^UBm.4izF;DG"wg[wۄm9x}!B&(:ᩄa[j)<}vf$ql7Ns͇1>· 0JyЄ &3-8 Emge mg_#tA`NU8Kỵ7+P'[ꖿ!϶$Wʅb!|LL{g)`4T+B#B{{b/KVncᄑwq| aHA|+ɔh`۰mR9kGPZP(/>tYcb;:E{^iZtnRk$89AhMI߶hA6SyeMi>|;q+%PlwQ />fgggpr\XX899) z=+**(yPFmCGΌ Ĺ D9e!y}XwU3g'ψj'B a[qGgl@`ζ02 Q]AA |p0ӮɜKJJO8}QOOϙ"jԨmyz}&?IKAa"8=> :x7ri{KjnW#!܂zgbwwZWFTIYG#>Sp2!i ø`P>i]}-w*haLݬFbקeU!_˪I+l0bt^pRoi]*0h렭\au6) YpnSVL:mՊܓǰقŵɈ%a5r?Ľ&IGl++ 6ۉ&;!x~UmN^Pg]_϶&|JQ%P #;ÜͯE[J >6griܠD/6ه~ܬL*;&VMR:/ZZRX,⋃~}Hx'ynSw5:Jb'@(ݙ0LvŲi6;EU+[P, cne4U"9Fb-i8B|PeK!: ƙ r߳E{0x%37s/iS3M Cr}||:՝ĹS L!eArvs:dd( fDt8JN,=+8pAw`ǽ{w<?0>>^VVfϞ=>|b't:zF1"wi0$<$:.:(4`džj6y32ya;mL: ]x&68}_y$`mij-P{RF56Fd eG\Rg^ۧEqԸ# TyO d׬?X|7.^EgSA5j@n CݣjyMW l,,NI+w޼W/NIl/T B 5jԨNPj[Z ڼv`@R˂^}]8ⅴ]9(d27o[~jW_tTTTTzB@N\^ZQ\wܙBU7o}sƚ ֡0; 3QXxz?0={'RX/ Ksr ^3@(!n?넔v ^XJB=HH"6viSTV#2bnt}:ljnkƤ(aL1YdM` FNM'y$`Oʃ"s5>~>?:&"ڢFT'Ztmem5A%:5,/;՝MmMm64G.M&.c`Mp,mVꔈA_q,M #yaSkbB bM[zaI#X7Ґ )zۂ<}|RE`innGR8u.*-JJM"Mk͞ޞH;w0BPy5vϷ/LagwՉ q |±V .]t('$'LUQI!$H @eLJم;q Ϛ6/oA}==PD|l O0_FG  Ջq?fE.uAuP|ٚH%^gffoIέ_ ߽{7!!Bȣ=X6 B AAA999Ä`@& A%e%&8J9[ *ԊSΧ||Ɗ'XOjL;6VuF+!ILA=pOCC^d$ X$ȦQGR1JLi'&, QaI!e H 5U-Eakࡃ(y *t <hLk%se Zeft:6m1_P,OW6 jÂb7]au iRs"uuW\!oA޽{%!!!BCCC"T@eeeƚ+/^lԑf}Dg [ HJZ<A < dNH`&dbR\0S wimk}1ցx n`5,,.xt^ays@Lc"'{xpF1 t5QR 8>D`G8{z{ ݡU9 As 1kkA1dQ1Qnf`ħt |qrv(3@B!P 98z(߂0T&2=X>@r`C!C:kFQKW$J|:p8 zW(3gDGG߼yǵkD!%%exx؜<5""Pbj2w hN5<@''f0󀌐AjNM':戀Y &2!`0F))ayC`1O9 G\p0$ 8YgJpS9cǏ`5#׉i@x(Cqvu>ydaq1}U2s3Ƀ!Ie+) lqu$bg7/\Y}ɼIٓ3W4۝yMy#BG;Ugdd$''x< ŏW2)))--MV߿t200JB%qqqAP|611(/(yb@T ݑLOY*CiVNP$gs%% i5 5Hms qMDGvA-`7miosCKCL|L`pG ,@/55H~i$M;G7i4gKd1{ IDAT̊&|V><Ѽ0'AbϧY62:2!9s4΃S 5DR{x{5l߱)0ATɚ3VA8N9;bש44A`Mi\~= K||@N<<0 7A _bJǏb<^KY<̏ӝ~4s9[v;gF6MQ%Цo}Zwޝq4Ax ?wލe#?[n&>;SxS G#ſ~"b91%+ʨ(w~H?HrVVWO'gHsq$!rCۖGB.bipMWW #M"z !3%%&R#/dSrTP\]|r~apdQ ="bvHr`S.r rɯ*LY9 Mu'g'`&\Yg,(ĴsԬ>|$__o^hhl2&'E >@@\b9:1]pS/'!8#^@(s ,>_!d慭X@R6[DŬ$>Vӕx[) +ϚD6. aPÇoOm95!v;NN^Vf=Q[/& &SC2981V|BAvf]=cyy̧Z11'du/ϾӆǬʭ|^VouϞS瘞86>cHTPmޭgfZfZ)ܙ[Jm FɃ$1WYRQQQ]t}:?oGFMVaINF֎VO<QNx9U5UOܔ iX\Tg^x.՘Tw_7SzuDt>.m}u+N?(>1v,TTO%jǛ輢<$jmTvi𶹭vjO9).+:Uz1JG@'tF"+JR(ijmb~b\>&T*J9B;q,$,mDa&"wȘHNLY o'?@rۊ <׸ de}) +V@ڌl\VcCLӣg -HF/ kB~:&!Za LNTaP81#F) %w,@fX4.)yEV 0:Wb< <? ezԤ! mx۷oݺERFMVTlRPhOjn ЈPlBZeʎ_FMNK9q*Hr!!G9rpAO.O9:5qqA!As@Go]\2їmzV:_oio13F.л)Spv8k. >wt (a{{OoO/_/Y hRY]I XN!ߓ x 0bc 5H O>SF b,pxTxXdX~Q>=|K,cBrZ.fc#3[lptG@ dE+2C|٧XFNn™/*kòX(y^ $Z%04  ?ސ5`r܂\`J{g;yلDN$ 2m`,mfsHT2r!`?H^"cWm-Ō-f\'gNugkG+;.!h?J:S05p}}+[ #_MV^X+ Ug0h:^צ&::X,yVT][N}X(t !d Cz ,1OpuVaV6V?Pfz/]\%XRRVRR^4$$Y{QQ=C'9sf~~~ii Euݻa||M~\~ $(@g-׮]C_kK4Joc2Mw6!m.2mllmO80?@t\4rqtH>hl޿;y#{31=lm:S8p9yYy 0 l&Jar2君&2s31zGmm䡯, s- p:@ ydy (X=hX"spîw%E%FVn2^y` [GҏzOIOYAYjy١_ʃY9$,hkg5AY<@y^q޽{mmmzU(潽̦gtp|- 2Jos{xytj:YlуNrs-\\{M@Sy<Ӓ5"N2_^胇br3ȃCp M5L!84K1xtJAsQ̑f%&'&3sc1H`H`O6FDGL>^-sXA0}ЍɣҼS(A  O)*))Yܖ5[1amcM=3'<6XhFX[rJy'%-Kǝ;wϯV"qj6ޜ]lll(7o, ԗ&%%)ʥQlddd:t.))ǴIR >---ڞK.D_~%7YQQT'JR3R뱛[w0ڔ]]'4"Yڌ+@{NvaK9~RG&ߖ #hG H3/5!>xbNSN@e=ur +(.XCYDk#C3 gdhR @_H&11P֫bzD`\>R/G Ä2AsFvr?3܀c\>qvu}0N,7íbVi3*M'5ۣ0NM'܀X.%' "OY 51l^Q ˈ}NA9XT%$'`s7 GOix2,ݦڀy J98833V[WW-Ihhg.䄄Px-p\RRR (--E_G0A>(|`seyLLL`RybAn0{aWennX'P>N.+s^fjjn޼Iނ3ʨ ]rFX399Q{9S Xb~c%****W ːÇ%ZbfMH$TWWJ.30r.GFɃbѨkjDjVARU*!>QcSc(yPQQQQY:qojhx'(yPQQQQY<kV(yPQQQQY-6Q;ӘsOm?tF*+QJM?TJi㨷R[qƎx86n0Xfua}; ðcL  $P#k8?t!0'?qltWHF<ϧjhC&vm\>33%zd2%s߿BbtVuu5 ZFs\.Q(4NT*ݣ.p&?}B<ۚzn%W]].GffXW P+|A@@!H(8ݻr:;;U*e.((zCCC:%piÇiN qM9ZR&F?;Ay@!L\6RAZuUה qyHD֫)|wPBw塋 Ϭ'bkzsg+{ T"-kCk2f;;묯~ν{KNwoaNI(!+yc>kF]1>[KTب Gr5vg9h+yr8KAKC{݅3jl?|p^߯z>tw?{K+1MNP$_3(Wi(!EPl^\&9Y{KPӛY.zHW>Vԣhkzb\Au}eIu_)*.}0'l泋˯ -mo0IA󫜳T EO^?WC١?s?9feh .*.o|;csssKѳfv~/MNOҳS3SL? i(!+(63` }E#4JUϩ]giLRLm5ʆ._Pe`. *nLeNzH,ayXy*)_yſoWrW*VW}7VǸ\ /~3؛hd|r0nhl #BL֙7E?nlv(=V0:,-+BfU٬H4o&gE(/xsV11YOeZmFf\%_? t41BH,^jt4VɖzPYD @nSmȍ|IHGVG}f0X Cl`.*+e%Iշ*C4JР< >Ry2Hg)-" 6-:Ngѽ<Ajj\Ay@!uzrߡ2Inţ*8/d35?i1?04DcQ&S,v˚B.e6es&bs j9%P-JREo׼ݩНOc>1̴VXl aGH[< B:QB!L(!NBS'B!^4?  +1׫hjjj O>"2T T TT[.D" fH$jmm,((ч6BNZfr~ryLNNFQAZZZh(M62T T TT[.x<Q*4Z`j*j*-eAT1"`j*j*-0~q8fJ6BNZfr~ry,,,PT.xfB!j2T T TT[.i,t4 J$4q`j*j*-?Rԁ@@y u<:PH(Rm@IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/recording-progress.png0000644042355400116100000000563012640736115025355 0ustar00ensoniceng00000000000000PNG  IHDRlHL _IDATxkLW6c&_/զm4Qmzն[M (r-*mEA뭂0(af`00 "#B-cbv8 [3y{xy~ycE\=oփ/J`QT7o߾u͛7oܸqk׮LJzh>@ 2\0D,B|@ FrX&kttSAmB|@ FZX&jt:ڎ h0*olv, Lp8fBhmm=G+酶 8% -^8Nuuuڎ h0*匣!&)SeeeUUU 8%S7tl,&NP@QmG/z8_\_Ap4d(*J`(*J`(*J`(*J`(*J`(*&٨h<4$ޠ-}ȨpIpE\>fY,Hzcdh3\1wIb}ATmRkLe* Jܐ]KsIxPTCQ E%0PTCQ E%0,fQL+cڤ,&B{Ȩ4IE%0PTCQ E%0P$ ?BH(rvKGw#:) t9:u K>I`Y{,XuC~I~x!jdt@kV(|rzsԧK8FIO39} kwSQJqZc8;!|}fA0o3?;榛aI nbM\iL E] u%ͧ'h60]?yXn\SRT5rӻ'-]~}婋#E]uDkѶ3lJ7ވY3vC7*׿c}IkVIwR|QXSv߁W|{TsL]>CWc >[['H䗷Aox-7Co+ӧ;/ҕ kP7r<Ⓖ`J؇FRRF|pBr:Gӣo~ޝ0~Xܚv$ȏ#PI wض);klWe_͙u~wiȯ=##ˏ(`s%OTɴ qS$3wD2Wū>7@tOWp/VESR&=Ph8==^]+,H0:ouK#rvffdmϾH݌ Umyf'MK9P -;[si=Zዓu1TN66G xT<E>J5Lx crK/ 0[-^XmqUQpxMŖ4CE?6L#Go}_~EVǓ׉\x ՜B.YiC*Vzq"rNvXkvxT95֭+WF3345y^}ӶHY?,ByܪGZ]KanR =ρ%%t9>IjYfSu([g8f7W5btؒC#aAAQC0>X+Pf2V ?9s.[fq۲e=>Yܻrhj[&Q.__8ۊV>-[s@iN.*>49˒YGO4:2#o_Y,]Sm{F0WGrF|p8@^`KʙVt6C}gO=yIOxyJP* =R]IĮT?*Kjlt&AfI \L(5{d\-'xK& ` @f13ci8[ WTV Ň}%%=`_Bw)ZNb[󋲲3#I@x4)"žzfitw䫖E*vIZЅ^oԇ}fUV_)e56a0'@QJp 5Nv"K=Iݡ1!?E] N #quᄣ@( _QDpأdJ`(*y1^z`333###n[ӵVWWJzh>@ b`0hZ éŴ^h;@(P¨׮]6Ǻ0V mGAp4JSSSa`B|@ FqNmߘ V mGAp4J͛xX81V mGAp4J֭[X sdV mGAp4J۸ DxŒӴ^h;@(P¨(J`QTXE%(*EQ ,J`QTXE6L@IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/page-machine-view.png0000644042355400116100000015626312640736115025036 0ustar00ensoniceng00000000000000PNG  IHDRx& IDATxXTI½ލsgnM3{' 茈 6(M,9Inr9sYADԙyJz48>xpUU㠠 =҇~&ЉNt/itk# P Y&.D':IiA ݻk&9;;o߾]QQfֹs[?SGGGa n̙3gJHHG/mϪJl٢pL]xxxXXXź`zzz|{:::׊mNLeD':%%ccc!,lmmGҾn@ fggk$@O>9rȞ={puྷmg}q֨#%%UYY%lyΝ(ߺuK =*++[PPE/mF]]Ù$//v Ĥ]##))RϞMMM;;;777،M;v}4B{0{>>pTK'ߟ]aaa%%%Ǐ]z;t01YKKKͩS\\\昊:JbN`9F~ؑ'*111'''88XII {8]psَ#8ax0&&NJJ:q8a @,BsL@;{?sq1R!h0c'9KC':щN>iw w ? ' (‹x bC3** NNNF~~VWWyxp @]vi˙;FĚ[޿?*'' .'#!#F~߾}5삦>}5̔^cy0󥽐vV bFɴ^Xl (55y0ގf0T;tVqԂ(A03<8r@ 3-//1"KKK/a YG:щNti /^__eV.K>ڃ+FD` PC9>7c-N 鄹@̄`[ha0#%?z#B78PJ>MT@ N7xrޠF]]]h(E [02-Xfז+0F! "^'A88 @0g2ׅ=x$b.`9q-J&Fe'''fmۆ[Nt$4'`@Bnaa!by$YHh9$$ĉNQQy14gΜ$E ;)`5244|Qo-iii&&e1{1e6D':.͉h!8<G3 ߏISS;v؂GԪEDDa73=//sYPPL,dxx8F6kjjP1.`'innb\Rxؓ86Ϙ^cXB7x&Më… )\1"]tGb9TӉNt-D$,8|[C0߿9}4+8X (1 E*mKKKnL*۷ogS#oWnJYq=wDK~ f`1TppP=8_J1 ȇX 0])DˈɈA/|!%2rZwi!,.0E~.($Q:%FՅaTGMW1'x`3@~9 6!t;–bE#5=t||L$gH&;I\&|& qo>df?S`p cz6!v^/iJa=[V:-8"aK'-??9F,V!ЉNtk`8F___ooK.-ӯ`'`el6,D;mٲeΝ;}Ԃ>-D':щN"L".-ZhѢ}YYhѢEM $rffѢE-Z[hiѢE%#)ёIh-Ew6p_0hѢR \ \uwY\ "Eyu735y\Mw;:ouPvj5]TuwS;g~Zuj:Z+]pBj6Jz\=W\QEUy75<.N*J\Cn㠌5W4pQ5B1kwRѲV2q^D6J\.Ȼi6qЈ;=(9(#c+ZstO[V\S'k%kw.dhdlεq\TvS3?mڡ'ck%{w.dbd| y\Ey;75C<tR1VrtBf6JN\'\Eٍfbzم ٫+9;q! 3%[+eg%=FD-نkgbnluZ(ٚ(;[p!Ef\Njj&/r!;}s-%gcBSVWِl5QUtuU39Y i(i"#HDZTL-Z1ȲY,Kzd7.o!֏9fǶM?~aopXn~9~~ Y?۶_l֛;7 ʥ7Jv8,7-ìڶ9߳Yٹ_8Jo9,77}.aomfq89?Ko~Wvևhg>B0O6m>>`s'֧xVz󇲛%8,>9چa_mÂ>e>ܹy}$YBvNKmߴkYn۴aIY,aAқd7rX7;b#m8>6볝qX}8,hM,AֶO7q8r,nN͜,>oHvsmmđdq$X-n|leIy_7s>`qgmC8M?8b͜X߱ym%k69&m?)_3-n@FƭA[/ I){$ I24[Wolƿ2ƿnƿK06)K26I3Xl VdfPi GlƏlJ?dD2ސaf)/،B~7g_)$Ҍ߰)،2s -6fR'6_K2~/ ү2,xx[-Cn[ؔ(xG2ޗa|f|(xk c+1nOؔޕd| ͐`SV'2m2uv3ޗ``3Ј$SiN6CmeaF^^6K0d،lƧ Y6e+Cf-ːؽ!!|!d%[̐AcG-o1بc; 3ceH!?3dl9C al+o2$~``!CG 1nbf1d71 1vb(lwT=v]Dp+rТJ9੬¬̂Ŕ][S#lE]О%N˼?:#4 S9GJڼ0ϘL,C"0,3),IҠA$hń]@"mnqnnɊ)ȌMNNM\DQ|^MMuCIy$g]HYYQ!Q]-TF~yPi^:7X+J'I5SM`` }CL)-'-"."1#10{u*!=Az^%MFv>hNv^DF*$zЖTʩx:MH7|(ciw"E&D}c{II8F^ wOlA/ 5QtjQ-mCqZE<믤$K[ ( < %;%hMZ_2BG26KJϪ,(/xսi@+'6ZЊ̀Vh^VNlb3 ʉ hf@+6Z{Z9Њ̀Vlb/@+'rb3 h^VNhf@+6ZЊ؋VNlb3 Т hf@+6Z1}rb/@+'6ZЊ̀VVnNЊ̀VlbrMlb3/h hf@+F@+obmRbV V47nܸ~t[nݹ=2q7XO'{]s+$&wgS)TaqJ'*Q9hE'ň(o!H ?btԳT@IR5hVza1Ե x M"Fx)!(PsBtADHMlaȤ)\ᬖ!XP=Y7o72J~*ǟ|?ekk}GrCs[Z * VzzA,SISJ| sdL?V`H?Q`y)0P#I72T`)/Л7vR+!7 Ag\B ̷ejT`ZJ2?+P2V`Ek w"/|kRo0S`v$ HE,+0wߗa~@mI2%g#!.ܦ,)0?aP`JI2g/!K[,{'R0e(m{)WTÔ>INS")/xG\S'L;WT)g}0c*)[a*͔S d*)[_+ԛ~T/ϙ??SgL2%C\GL2eYďΚj[ 9hrh pM۷o߽su^'F*kWv^:0+@`i﫩gw₁opHOH-:{zQ =f(¯=nFn夾J__kb9~ .<.lC!\vRfweD|gB dnmz]HP yz{ƦVtRWWBF2eel-wpMILO/XSa6rUUU xIGG@ORS_SZSolCCe[e-O-輭9K%M:w8g㩩멥UUF悧.O]*Jpm < =4luT&RInBSy}czS뢧1Oyw M %SOM3O-#gljeᩩcdSD VS BISSSRɊnrw = %[OM;O-K22VIKJAޘИP@$+f Th^&Zg>>-vlÇ,,?#KKsMM CCyǏkVCyHvmv~ 6߬~*MGD/ |HP ~RG {-;ػݿ^>7^CCY*?1-.a6?yyԵ(Њ'"6ѣG/xʙ#xR-?f}10ohu"#P} jM%ddŅ9;EoY Dqpdj %dÈtS)6h?G0,6!ƆMMKY.Lpsw|򸯿')%=:1\zfh'SXlhf~&ep|?:luf6f)7EIJZHiEIrFmN8hjCTDKa/ v3]Hy/"IЕPb >íڔURĆij988sˣ󢩱W) `*Z{pN9_y:0/W~<󒆮\|y461_2 O*-ˍO ljnxأgf9{6uc)yDžnìHt+;{?zHicm:@@︴8~ _D'G; IDATbX]ZFñư s+<3ZSmֺPADK@UPY)i m  I 0 kV,<{ +^ DZTPQWsڪ{30!a'O7+hyu9/ojjGH[544tuuih ]͐< # yw{Yy!ל#<;ԜTʤU`\."#NMMNL>Gp. Q_oJ3uElKb'p2%N.rDYIvԳ#ѣqE ->%OU[+(&ONM=|1?'݋WXRւmL<{'&դ*;"ۨC޽w'Wy[Y^ϦX*{XZV둑>}(y49nEeOLb4,_!SX\[;qM#$n[Yɱw;"%%502[6X`xmOh+*WB[=8- |aELJb[@WEOEE+Uf^FuM@`:e') <}M㧮)8c<<ݭm,̌͌2gT|dEeywܪSn^mmP~Ν[nfDLV"ާ (#b#B#Bzz{&L>,P݅¯_ovnIM>ٗ_}hQk[KPh`xl80u\Oo޾^Q!8<}* ID٩M /@M&TK]\ڐR3xVQWWGBB" 8 1БީV5V[=8-ˉhAKuVbee"PAYiĢɓ'Ϟ=m*_r }<^zeʕ^hEgOe_0t~qc{sO"\6x+![fW͔#dtuufdclf^fPh@zfZ@WnaΫ T882d}sW zALp32C0dNvwwgap{et4757"m~193y}LZDDp%%kb9b g7nj ,UlneW'ՄJkJ\A[i驈ӲFu0@3KdĈ(N.Aa&g=?5̔1+%/~J__/::rϞ=ݷo̾e 99Cooe}sJrŠ~aElj/-Y%-EY0P4eN=}/zڕ"!;njjjX{6` F ?13E. Y6٩8-4~^G{zC]v tvutuvw55Ԭު[]P&0tŠaE\Z[kmM1vJUU]Ssٳg|IHtojsVTXY`aip;л@t`> h 233Aق:!h;::hu}}%k=ڒm.T(Օ99dž[ÂS!7l % ݃>~>'81rmdmMZpU%d&ĦҢ@̂%$rb֖T8'g3VBr|Nq*_0q; {uC^1Uj;;; *uvಧ*ĭޫ, *+r srr@\hL`!:@捿[ֆEZ8 OU#R_B5jW*#7unn!)K8(!u-l,P uMLB&^^եh~QSbik-,&ar5u+g:X&Pj0AA8 zídGWG,\6̃%PQ_%ȊI! )UBZ&s/|N7֯RRpXAy"f 鉘"+;+dqbtT(&tqw`.1ШP#Jolg25c3y / M I\Flphf RpVa'.+?:Lಹy`e}%EV3Fߴ-ű):%[s-N(Yzt-10:!16i:|4Gd8Vy-;λz%uhSK|!Tk[땫Wnݾ4Հ^gS:ZA /S SPu-u.K ғ)=g \毨%f5בK !*. x@(˖I\ gypx0!^~A~#'/ I!-;MMC x**~łbnYYSV]?s|NF!>r]&A 0`£,2r20X,Mm͓'`0<;@H}Eɖ70{cKN<QV[zO$XG$U745<}'B567 ]~~vgO[ZB"CBXjk5@"-Y dji  dekGC@ x y2"BuRR L jKJ\=~?1(pMX Gtn<BP]# DmݽU*8ÕoVPSPqœC#+vpti:лA9Dfp(Ask0Q:vR«XAeiu/Ufkq@,a l4%KK`ࡃ(AЩk-ȶs_Sa ׂ]HDa'$f[` YeȆOLO -ƯN/ JkkN,":,a+2/tT6T Jh.F l%Z99.NsKZp>%QBMZl]uHtX.ĘPn\qFPGZp a)9[4u@fVf8#> G >='edBuMux" sE,-xa^i4%8bt?׹_[6ԛ̨rxx̵ˍڧ)œTWhh Daӕ@v`p4y3u+d`ty:! ѡ (&8 F ? >jjzFz.\XΜ;HO)A#B%2 ª.C }s .Xְ e/˟={*c0SQIR)`liDMq6>dj裰J>-xfKph#%_9BPVoiz^^S^[_{w=P2b—lJ"-8,/_8FRXg''/@RzwT|4Lk\ʠŠzYZh}! CM}USSz"@p m `\%[Q)،v`B51 ӈ.ED6"#b9Ɓ FMppSsnˁ]!c\OZ\x.aaD615Q-dr|Ucme[ha ~ EkƋ@59#}钭-)l;qL"s"N5y^} K?\z.$rТ'l$-D xEEo~VaY!N@D>UZCL@aymG0 7.26v&.-DpkeOYj餖0 )xb[s2lڦZfbK.a7р'"Hc.,Ap(y#\ )0bFIe xi\N1˽=L8Vxz.vVz p\ޑ# Z@wH?Ź0QoZm'013 sH}X,{v ^N,o}KsZp*.^*_ZU޴t"-z‹Pe]30kn -zKK܆>h@M4%U2@tR(t JP%n?Y8l%j]ɻˡA6~=klj:} 1VFN ,@v- ~Ҵ|-EknEZD_ͯ0en-Q<^Bt;rmgg-zhˉVEOdhѢEV-Zh DZAZhѢEi܊===ChѢEO5 W[OAZhѢEki?9hKkJi-Zh}W$rN> }w?:Jcڊ*+/*ѷ’mU]EMSMg_熻BZD'6(|_@n߽]^W~ޭn߻} LZ7ܘ5Еʆ+7 ޼ ~[==憻BZDW_>/}K(/ +e׀3ׯݺ<뗛:/( uu]pc~tcuvn15ᮐ-i=@KQO\Ѽ{ߑOmQ]Rzr+;˧/#-)C[CF+äڿ55PG SWo\ze[#nKu6;߽zF1nu͎مWn^2;<58WFxSW--^ZDU7eW9rǷZ9v[,: ;a]ɳIT~u=}4W{%yyf)V­CEy#OL>~<11ѣ1hl! s2`+⳾ٙ5ڌہ1Bz.ݵF*ThXYԕk#kջD@;xyC345 I ^04$Dψ#_Z2[o_h;;C:3Z0ګ|(#odx9=ξt+콺fo޽Iu- 7[qudNLlqvjsAڹ^:,'>G޿{ޝɩIr BRd 9d'::}}:?z6US[p؃T[ȣϢq ޽G5pө<8)Aa͛Gzܽ!5Wٙ5ԛ-õ8|ɗ}'F>h2Ci'N;._YE${(Ўbh~Ez!VvV6fVfF&t 4ttҲ3Dj̸xm[.n.m]mK[{;:+_NȫՍk&ks֭b IDAT<|D7u4{̪ks[O/)/rw_7±`M.ܫ5511흛u i}hBO <;fhNsDgߕΡP-७QhXvm]㉂\jik457].TTV~~VVjI(Ah/xyy!400(M546\pA[[kN tZ ++*rr׮_NŀʊҊҮ.\il-.+/ίk E&( ee5}C}pиiilmk?+C <҈PCфI!8eD&3×>5K>1,8';~>zuxh:0CI(OttqaIqyq}S}CK塪*r 6ÞOtmCPyQg`d彃d,67\'*hwR2y⾃pΫe} --bZ!ZZY J{{z[[C>vH 0kG1j눻T WͶw֑L,ѵH|cgĝ: {Zs}joFs(~ sv@XbT``90aac`!l"[ caAevv]002PP221?$omk#|\rj22ή)i)phc( w̘\inMhvpk:m5iW\>K0axځ!ۿ wV>?2a_ƒ9|6zehh t`&0Dfp9Ĕ&&Jg0*(&;F=)44SSWD;ٙ%4<f^>^NA7ܨi!hct܋}4qn#'*fHѪ00>#; ]gڵ0-3 E#l|ј,wBRmS}gO'xj^E/ vvUU=$mNLNb\( -5=1£U!(s!pcecE* %!a!Mp  ;;]=]XYD55%. QcAwNŷjb =A+}lOϫGa xf{D0n=0@d8Br8ĔDP 'FiA\ 63b|4(2ԍ8jb\,N_J[oəo-G%N`-31s` z@\"@< AX=;T1410d;pPTRpBzۤ2 #`/%]q A-B)͘tg- l*g}ҥJ޺`qvc`~)0G%q$6&Y08Hdij.Ej`hشnZ ~bbZæB#ݺF-˱1{ܽlyּ@s'_;Ш{ͮ#TEU :?sm$ਘ(޸jna~ "?zuQJz!D3s}O_@pI8# &m?^Q?-MU%E9y,~ZzVrJzbUM𒤦P9ں(챶NHIݻoolb,  IFP$8tЙg)!*-ŭ{zq$& %%ZaQaHM`g_kY_k D݉򗛾!c/ñ"ݜ|v8iʪgBPˆ{Ehne ;b8BSZZCnjo}_ '/N}G28kr azUcU@j_9*/ˑ9Y[>0z_8m ޥfz*1-yZp GGG ,:Z0.n+=н=%@㊈ȹGsef)8aIe>(MAlT rӭ ]jlnjA%B['~VA"_?gNI]RY"gHUCUg'iiٷk6#g;ecSg&&20600urkX5!eeq`ZvnPKb \]ʊO>9Ap[# ,Y [4(lm %۝Gd'Iڮ(Kӧç-.uwiEY/7a F2֚YzӒU@MDWxul]!-Zv-F״N·s~ I 7MMM=<=@֚K+K(0pCxʵ+'%ASZRr͸8S3S9hY[GȰPx켬Ș0S#@fFNvV3RcRS;‚|@ edl䞽{bc>⏲2 SXnphl272) z|r<bZfyU?R}y?lm)53Ӏo~G`lIW~"VA%%պbba <'dr9UT?31 E@#0.H0iSDLb|teC%P-c; 9=Uv)&Yࡃϛ-NNO(*)fTt!^ك.V*NF!(d'O3+./qrzO}}Az`SGAE2QbgI۵TKmN\+aLY}ё1K0~~|>vb.dشxy*cL2Luvh#~A:̻vڂ; A$%_2Bވ|2pKzea `gI:` GDW`ĺS$krq`3Y/l,+Kh!jzBJ'ȖM١|,k煔ZI;ujv odo-؀ M pYpk,iҒ 8@syUIk wmjNv,:XxNUջ[R_شd`595!)9>!).>!&6>,[]_Ej Dީ#:BȐa!/2 7-)ET@])'{rٽT<59cILE>ra9O _g!?qK**B<.++)+QVV<{c<ڸV8v;Nk'N{Kwqƀ1`:$$$D/{7.˘Ƒdtf]fνs90Hcg0^f-2W#ciEM殁AKX-=N\rBl|R%93qq\ȱ1pu&kDpڔBॉ+ZLRfM-vtpOz Of ((H%&Bf5"A/*oJ ֮VAy4eet :mAAĊ²zD  b*(&%! X!@6&1ADTPɬ$VAAA .%=%gpf3qI ȠB)/"?FOO`$B83>VPUUTZ;9-0s힞`)(-())c:** <w;66TiEEeB*;53/?~;_vݪJ5`Uew"ӯם 5VVSnLمs5+ˎdd|q '&6 i5UC0Ԑd射צ@1::d677S("6mk{c[{'9mCkCjF\g! BÃC‚B‚NjKCBHc#9nk.0~_yO?4>~;w%譼IVDc) ?tJ).{S\޽{F/+/ innSmݝ]Qs?Y^BaYaqIIh/(?$$"SN^hǎBAĜ63u. nDDUVT{z 8KKM*}gŘ3~ț-99;tuBE!og O1)zRX) Zb(@񰶱#xEǒ)M\9d} iMD_zR'3p>N'N={vӦM7nrua @Eat&kuM_+yƆĐ@vfzxZ&}zw]bkjIw}6ܻw*, )B~cnS'})6&W5e-D844d1**zs#"C[ۚ{zRҲlq@rzrfafvQ֔ Zc,  NS]2 VѲhNN۳ge ~3ΔT Lm v@ rxdXVN&d۷n44R渭[{Nq1'2*<$4(+;!DE"@SRIVDcB1d"# 9w}ZJaD=UsE;>~FO)*.ldV]} 6PP<*v kM0VɁTr-6+j*ښ)BAĐgLLHFFnb6<2@MS)}=nff+!駟ݽ{wx< )Bvn&-CƄ0bH ۓƦt6044RrF6c롦SA5p4n.f!!Nv^>apP2AYY99kSTp@Ռ K`61]b˔ 36 BAFعJMM%3]YUɽڥ=7/ [Zz{cHs\ '@ 5<<)*ʹjou0OImͅ(r}}-M୪ HY4 D|x(1$sxxhdd{i5&D[Q[y h'w6R 9ymMtFPuMEcs}R %  {hl68OX{m bk6>vʺ6&_WPP'ϝq#Qa#QV]& 651V^#oedMl)Wiy1]RVĽ1PkKHD442tUUS><2TTRe`8P)LBcB]ݝܐf3)- Daq=th`חr(1tP`H=#!)KϠ =l7j(Za sA!D|z IDAToP 2X.Gv_pm@5**@߾Vk{SWw%@a/ᑡTf$sdd雅ڧؘ ʺʹlIJOH "Ì `Jbl@ODth|Bl25{@Oe9|a)mmm-//P(pĕ>}C6nL SiYiBAzr`cF&o<0840:6b3ÈQu.CᤰT^}J ~ȱCh,pߘpR2 rFXO1hs66Hfg2+*KR(>er|43lYEqCc씹O@l&ʋ vvvykk?`۶p@j|Q_h1mG+R3R"<\srjjPYUHIisO lbO,BMMu^~G`xԈ͆YQY3\Y_>0&D[][QQUJIb $޾"r<ɦqE[Pgsr fʢw{w{{ y6^zm_:_8_GǓOņ1sBAčZAF'b|"&)uS3˩XX8XGR9̹l&%X[A<Ӄ,o\sv%!HS!GEGC]]Tnq.#.\dmoMIYУBqBpv5!qSARө5 5YYsΦj> BS8]v[yyEEBqPpGN"C#PTCBCd! MizO dy%yEEBAgJ5(ghlZmSmNq#y2K򋫊  m[W[nq."_S3RABaKKK U Umw[^Iޣܟ.OY"N_q'_Ք} G`W>2YY9X =^\'xνy9e5e}'1?Z#2G$vye.*SO?eb:zt trr߸dL_x͍JJI^kSxLkvuUVSϘqɘ7h[JQYUM=:>)6/We\VA+[+`?"odfk&'gN.Jzq}~FdT7 L=0H=}c};'dFr\re@ 3MZ: 湷 aEFD#2عle >SC@g0RL_O12ja4WT JeFEpɆŦ`M'A iR"b"L*Q~^^<6,  B245 P@~H^'/_5ۚ!,F}K4d2r27=oBMh 7,5h@߀x@NtD2鱉P+:WyiuaYaymB=:^pr٧JYBchĩ^ШPͫy8)A Q waxwcX ,]M4uF^"3xh,'&ME4ٺĔ=H`C2Fvnj=Ačx{! ǧ!à'0ðC mbnG\ ޚ~%JJC.;}'P# vxk{k]44 ^ !;|0?H]=0 _h.124fPu te`y_V?t18o`dohmK۲=/!0?h 9ql'О_547])TU.4y`tx 2fzQZZzrr9 6Hu u x8 EwyaG|s8mD bE؉4d']_x>6]L,[Fp $ɖ_ٺĔVH|2,L,{Z2ih{;8GX oy3/%x ZcSc- >D%3RQa65WϥW .[EA/arARjjsdP%.&G[XF v uM> J,-`mga {4&Hsmb(˄="$ϻAա;*Nl>>KࠀN5jURQJNb.1e= g KR;-uum_gqUNމTe70@$0[pTeyz^0?5}=PUiYiX+ *!If$|JZ $UTrJ ?3%]Cj! g<80xcYŧCӂ+W TȒ !+4@vNv9'@t$5S $ʊs@^ PՍ3K4p QhgUuU.ј^^Ȩ8 GWG89 Bv.Ft{vdP?"N a!V[Yݠ%4z̔L/S#-ddJHJLH"N]}]%%,'pbd‰6d@F|  ;QQgΝad0 wT=X5çdde@B~, x{qyyށaLa,Ru~u WV ]@c"`/*()@8p ƅ`C3 vxfL8)\V^w)fQ7\c(1,_o>|w ;yu hSR(o\J@ЍZuzD R$Js 8Urp09 !URUx1)5 sru>42豣V7¢=lmgͭõ>3}=._9AP/rrGB^P*){4p;%$edef17(ʅRYUR-$P!!u|@ָa`l Q 9 ?1%XA B Bct"%-b0351CՠB(AIf~ͫWAZ`Y(Ò`_p5rL_^0%AE70%|_o't\m]m߼pg j%9h[%X j4hr ް,S]Svv[, tȀɉdXxJ-L_ C*{ 䎄 bD )0?AeOVϼc191LpJ#f&<9k!R(K>^\gQW`6:UfR2ctJXV'??}=gm@O@gAA gAAĊƶFw AAĊ&AvAAĊvAoAAĊfAvAAĊA{1T]% jjZZEKgD[XZIN&#(JTf~fw#hsrFG[kz2l~nFwv Nc[oz2ilmS޾{E -E;6>rE"|E ahC@(ZhD0L`HXQ|B;P2?A"`"Z)hd~E0Eؑ[#7Ɛ hd~EW#EE1E E b AA--)(Z (ZSP"P"hD0hEើxˎXQlzC!=bPS̓uՃ3Oeak)U>hn V5ԙ`]ohCKMŜ`$L`u-W7{H6 ĉjq;U7_L;13\ H b۳.va@@ъCe? Waak/\~7L~39\#.9< ~bt,]77R%V4'צ`ൔ!9'&\⍎_A-EihEIv Sվkx4?URG?ouZo\P}wc|n8nr& 98ug:lֵ)ef%GjTmG9x/]E+xV4-2y$ٟB{uH0N5L25$~>CJal^tSܡ1mV](jԎZs%BӿXͻ@-KQ?3% _6hd:(Zhx,тA=AcBClQ;OHzu햻wY :QmHJv:B fRƅUxw֏GM)&%GG-)\o_EH A!VUށV2nRu8_sqvz۪σQ21!⢗dh毻QzEy:-LE+B6N M/*t="QKc`Rѹ"X/ЕQD6PSN"j9jy ,мyR[XU@rtVZOcQ2q_=h, ^*$dBm*(~6<#4/~w&S*X(G׆/n*֋h"nݰ%VVQ6rkDUS5+|Ǐ9+++|05563O }mCذ5BMC:j孽[$K$cg"fɅ,4DL D9 r}^JZ9JI-LE+BL6Q,_>Q~zw"|wo "ǎ@`x[\[r;BS 󞗷nBekZϭ\B6f A!&DKkq 5cg-cƼ C$FOU=bgWl0حS;辶^{V8t+afsp 뮮j%e%jjT*57t MJJJM 9mbEKL4 $-'/gdlTTR%:'ǽ[/' MrhP³c&"15 rIgSnzb!UN[}"}B*u\Kϡhd:(Zx_ٲ?Dkrʢ P[VkE žS^{,v;O~)Zvw}ٲ*.)W[: jU{}#JWuZ߰ N:Ib@`J2 l* V=SUUWRQb / ꕴl-I^r.lɅW&{|+g@<,h ӳOb!tBe!pI(wKYA!VKG[(CDSII~@s}7by~*v/*o0䳮hIZѤIJUC!ğ("JIIMLL$H111>bNJKK%& ~[${_ku>j|+_] rRAki+S[y_ 0Y~)v-+9k4VKQ^ ZBЮ3! 5~ǩK(ZVm_XGx<:hk [Ycb+va޷!k[\k/So6QZ5*/86w8tU"-Y//ర0OO4DPgRSSgT,' 쥫WLF@6m,vZ}-WGȗW)O}HnXGfb?f|D+A7{"QٰŊ+v䜼DZE)hEBdɟRE}cu/e7;>0yN.wy? îƂw?X~ iAs/wZϿik 6ʖx'"7bHTKN+=U%  y!&KKkL)e2--"r1!Z γ;:^J7X߯\ʫՉb+ָtEˬu x~-C,e9 RWP4Hyj&qqײ7.sE|iգDkPE1dŹ3ESXgE,6ZWV:]`%K̅I ~C- *I, _ Nu#A!t{jgxv[!;/|_EWe0X9_*{&9 ZwehI"`&** [M%`buuuE%djrw_Ы3#h]+O{2v>rɌ~&rbM!+r^H\v9'r&QrwxuN@W3VNwZ|rYU*UgW;mrKhd(ZbB3?V}ьm3^v+pO=o/iv#쨦.OA^kh;wbM%i1n`A?Qނ^׹xmU_s VM]ߟF%%%yL ]P(6 (]yhoV|zҸb묢MZWXElON$J4v2Yt5gZ+Y#O-X2C߈E*U lbeZiۭrhd:(Z+ZcѧkV-D+d\Oi{Gz C/ nӎ!u^J_G0z/\K0ucX^UM gݲEM > Nz0?;7KKEycERqʳQD\4kmKi {I_ \d)\Z٫'.w\3C"}兘gmҔeۮgzE S@ъ zQsv.B\Ti]Ͷ4z~duA ywO^|pq΋/2^ x/X`/^U@͕M/&vۥ>hA-- _x}˹{1ͳV&qvz?v s-ʐy.R!yy.sQ /gqu \^0oȃ/jƯPbE[q~vJ/Lz--LE+BL6w)w"Vå')6`3Au4ᦳLHVwe;~οx{M"1%/?ߦmUk@ˊFYEf{k_uWVhBNelY ˮ_N"Kyϯ!2EXgb!pZ^߅>krn4I6[涶+?5RlGhb78l"z]O;fq0?{QRsuz&;W,ˉ'.wK(W$.IX&MYو_S gq$QZI|$u/Fa@ɠhEI{{ckD۬r.kNРbrhVl)p\8,i4ZPA5 5*רduMG5cuux*^Ӧ]WW]$/Zeb`G}aŮIVR,+*S/Nq2ߧ ɮ|=ڇ^ ɶž @ъmmj-n8aXvs.>4kmך>O`u/f==nwv]+;ί;-mYbf XtKV׵~Tk,2B}!8Zúu 6]Zw9sf @=}53r[kj,MU曪ioוJk T`|Jr+V&z HxU etr$c^ -G/XٿV7ԝج.7(Z3:>;RW)O<J8ɅrbrKѸqG#y90L  F=`ԗ@$E߾O>zC|QOG=Av}@~WN:vJ㕪f[q3 fqJn㌏ܫϺTw6d}d Cс}th{w{N٧|Jǥ<c*Zs`*ۉx ^XgwRT|7)NT+FU {[[$ 1˻{(< ^ o9ۄƚNgg`hPTR]gPSHf&d)q\hB%Scg%%1dl%֟Ie%q9u5mmi0p(dq\jjf"MIIOaɓa$i@dbC}|y$0bgB'I`s =;]@/(ϩmx7`E%E@:0x! wihmhj(,+-/SRV2GPTZ.pF೰u 4FQiTn;̗W[Xi]ՊZ1DhE `Hjjol\ Kx45OG8)44!S鄾1Fks^~^vn``2ttuL@M2"VhE⛷[#0r=ygG00<`>,VxZ} 2Q XNBdD|@"RP_[W+AEuu뗵x$5E bJ}DK~e0Fb~oP"Qco[ZddE1E% Ia3M2hDLHŻ[ -)#1d2OA""R%[ -)"(Z2@""û[ -),Z2?Ѧ23L֌8-+D_xw Ym`XEًPBIhd^v n<  U }ABJ3|{SgNıSKG"|-yF.ڳg ў|xΝ@v \@P^<]P"o 4 MG{xxX,ghǎΝtRL# %Z 4(ZSA=VVV  ɫ]LLLbb"zyyy{{qۧ`ff /WQI108p`x@uA]P"{юI&Bz ~O8rׇ&Λ ٵM&웜 /6$$DJZTA]P"{647((*Yt䧟~jkk{im)###!!ƍiii𖑑(hDLߢt妋:°%''~'4Y丐:88kʩPtFV+E1e~rPr$FƦfff0FY'N\+A-m 191C"EGzx{:tvtr%kbI2'hDLA΅TFE%E#B YP"hhK{Kph"$u M223(ZSPOkyeUظ؞(ZSPO>cdbTX\$#A"}@jXT$#(ZSP#F*+[_u{M2A"؂2 }C}C#CN1IsP"hV$**+5477b A Ia3M2B,A"xw 1E b V--)(ZwOP"hB@""xw E b V--)(Zn1A"-)(ZQn1_A"M-)(Zn1@ъ=}1&٬5Y#BVwfp}<)%"WBi,OM*,PĭzF-?]m*['e-h1PCbYͅ 3bh@Ji}5uoV{V{ނ{{odd Q]wrQZ8+NCL3$$[twoa퓡 [y/9Њ>w2eF3cxRbp3}!%zQ;)"ڿi^[@Q*K{ CBhݢE[qp{'0w$AHV/l!^m ϴVjZQ+>y/9Њf&I]wƎ3SnH+}_i[ȟdz?7$u%-{_ N)p&f/.!v~-;w&56gQh2$A?AzRM봂k5j5k4k,[7h&8'Z_֬jů+n3?c31_xN>!E~[GF/_6~J3s~q !w(:7u()E_R-# sRW "'+$%]%\uk=R[(-B;X LbO,o>؟'$n%O]yw*7H*MHV$ֽBXĖIw)uOAhZpKh ˲ No;&ڐë#_9G/ 4h+0`tdn%7K†sU‴wrco[:ްc'`2w.]9B;ͲLwdm7A-FjY:nQbyWB阢֨<~lQ)l7fF4 ߄|L9UQ{T}*~BЊJ]$sWƹHSoc߫>^D~ʶlV/XM Ǘоv%+2Chva m? -ܔх-ӯVeDafjZxgXv ?:mRZ!zew]L:8{=w݅:7ZbM]5i[ӡ4'OĻʜɶ4Hp޶Sh{zݕtiva@h&S6;WXFPjM *fn.415s0t cM HҲtȦcgщ0I):$*PhwY*yUD#H m"VnC뮿Uoޞ`#0$_YgwDCO[ZL5А`p'`&C\Jډf" B0Ph mbS -SG혒SSH v1E9m+y]][_7Mp*F6ѱM]X.a!&mI=,eMd' ygEhEhh%Ah-3x2$k-~R&)JOjjpT{)ƶ;ҽgoKQ__N@hva6&9mVQJ(8(-ce@+jYR-tu/ILQ+s܄:6>;IQ)XǠcn7yDN| Nly2: PnCiV}ppy3="byTvk 9ח.FrЊ݁ffשhikijjxМ pWZ48MZ4uR;j,ieIMuT^^ǚIR7$SYGgqz6$Ui5j-MmM\ØÆAt񥝓vi[yDZ5jpnCLe]>MXs,;br+ۢ:F'*UQ{We2`5JrovuU F7CCÉK/TRRڷGGWr;0.Igb ܣr}⊣ NGxdд5"ۃ^Mƕtg:4ePAiBL S*)ZHz  g >U=CJ$KƵ,EhEHh]pnJ4 GV%_]L:WB+ 22٣#++nbSi@@TRJҙ3s ԡ[` s7}[o2!w 6Lib0 о5SȾTaw934HqO~$%6//&DhEVVN6(((**V\\\ZZ ####77rkoo!5u¼sZUY(a[POU ӷDZdjy¹(EhEhh/y=A[i')I=tC7,_Fl v>1| J#" ڵk7nܸnݺիWKHH~?ńA},,]87L ETCRoYʱ[bhɚ)V}U ⭒}5r$|@3ZI"?" mܑ_O  g>Z{ׂ޽w޾BW~o1.)Yva/x.xv^y2N^>G^p]:(de b nK=B^"B+*((|S\)˗/edd& ooq#+++<<\QIQ/&bBkYoB:)򱏃=.cΥN%caŇ#lI~bS~tOs{rvC{O1΢n1bA[ B* Lh/3(hOb"G?)6cg>) {-ݫ!\ ~JWȊˁo y),~ˆ%_}y7yee9ϗy4豔;dšO/AhEZAرC\\|+WܹsNFDDDA9~8fL|L`p &fu nXcg>)v4OuHzKa HIuI;ayˣ}Lht3T"ڡ!:{2O9x=.{ucEe e޸eKlح:ؠ$[;bVX=c,$Ё~~r>vWsmѦ=}= **"+%%EXHKK˘0'GkjiUut cʛv'FZ7S_)Ll)-$vtv;EbflM]OtR:V[p`AQ|Uc|7;'| mYav^vm}-֫~)zC}"N'nzXׂ߽1 ľ#LYf˄dXAey,}'zlĉj/jbkV C$ 3O|IMLLoJmGNNN%%%?ý{/12$ 4 k9Ur(0 _DI=IaMZ zQh6(]>>F{ĎVv5)-@uș&5:mn\cx9ZP<cجF(mT T5t\kX{hZbԞ3] ~B XZ',>9倷ƞ"|"v8`jF"e'bG{VM$%yRw2 :r/06Z9BnSʜ)1 ='٪%-B+FB=WeB;qߢz~qT*MikFBW>(?j&R(^%Eh0oGJ;SVK~^DSX#]Up`VKZKuy-xXXrii;EL,GJC}V$~9uО~Z61ݬnJYn޼IIIWyyy舍ew^}C9`LhNEq,Y=Uh){y{,s%,/&t ٗ54Mln6LlqFQe*!H _Sů(=eh/.c3r 9H;D[!nK!WG|[٪ٔu(Y]DVPYuOSɳ^+7?ЊXYY334233ǿ1OKǎKHJ>=Z*ū m>X/vŅEƢ>8s>Ky'y/w@7GWAb ,UvnjŘBzn עZV6|/);/h~xvh=>G=ji}|U"T,pz9e5i^29b-?(uӦ={">(X:񹖩C{^7C"B+%-啜L,xon<~dڬ@<9!&auVGMZ ^;Gm2OoJHĬYǁRo>ib7mT])ZqsBЊAh5߼ޚ2{μD:pآ76i0 ;v</(ᇢ>CnQhy=Re:?\CS}!?"豣k׭ݲu3NbӦM7mV\\޶j70 =hW8UhSKN—3~鈗_;➏?N-&У;t&M,&봓W)DOoUw8"B||薟]}s>v5N^o(m6kQ,۬!#m( =)x>Se]d*}q^z%vOR2v~6&83$~OvP~)CK3Kq\JĚ&Y{}>Z}A>A.d{+LbG^QߎW?W;UZ?mt;+V<(#9(O%$\7 ]'4X$+ 2IDAT-z)9)E# ƫ/x Uо<1;<_q=vq %#6_tUX ^w>MvQݖO tg:c4m7]J&9v!@h DURMVy#' 7*qՑY }J&ez}Au׏%:.? +z”ZY7EhEHh_[k$!չ_o"tж?r}3o4ྤ}ir#.e^Qbg쟹)v.'UdB{&ж<|U킀. Lh=KX殒 mrewZM3T7qթ+|Ek6nM!uSF$Xߩ%|);tWj uR:IGZV$U5 \w9vyׄ0HLmY9i32B;wOyk'Ab_Kl:=7\,@M%O~B[ jx :Ӛ.FIV:vl{+j/.!va(m*yTJZ ]p:k8trϼ>LeUR6j 1^~yE+e#mJ^WM$m!Ϥ"L8h"; V$Э%?AA.EHmUY,+& 'Ɨ,`ޜؾ%{Ğ~X=zJSĿ 7HA-b/ty} ? l \,|7R kjɻ+yQ])QWKNؔi01ke9~r"|*:BR ٨ҿVr.~ ;:CU_">o LY <`і"l:ӡsܦ]+rO61< VT맫`s+08'1?#675&''|[%Ee%EN)1231&  SI'a N?7503,?AvtAhFsEuuNQiZNARFvBZV|jf\J$$3$:^t"#eRF@b WBZfrVnf~QqEe VӞ-M5u5'kOVUWVеn6gzt mm7鸡u"OT۩[н[ЉӽѮ.CW/H킁ChEr];AI L\#tEg{ B`!ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh1Òܳk.;v&Mm7n݈,@-;E#mmeI&& B  mvav{W{oo`ߤvv" B &g^v/&uʥ.`AAh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;ZBh؁pB Zv (-G!@h8 `B Q-;n -}UtY,@-;n mEUE}c\rXZvڒ +^5,L-;&>t\\Vk[Ph,_ uSmƞEh x1G!Жf*)/)*-XJJ zz/ SP'uyBBDh xq`h\ߔz{X -UOSytP^w7̜oomSgF#C,܅s+׮SC֦%83PX74LsV ᩞ.}CC&V&{ݽ7ȁݲʲ 9߷ĥ+D:t_6t/; (̣R**JKƿXCKZY]iaeQyrzEҘ;عg| -U\V|yFU +S푨aBK׏ I)HͣВ+?_IHNPRQ425 4o˜[wngxbDTS 4mJˤBkdaDW7Llٱ܉yZVeu%ennhZO5֍=-57Ǧ`$e%QhiN|ݘyBkhnq [6 9>B;) m|zAjT)-w3'(SP38|\l* Mol:s"*1*!=!135#,TCbjbLB Oͤ ?~Z~<53^:/KHLJqB[XVVX3Ւ[yCu4LdV,l<'+/+%# RhN[NSGS[W[KGKAYӭi(-e!}x~΍#N=my1bcuth!bcm=mA^u[yC SQS5525)șdV,lt+)Os{N_W_e4 qvt]d=婎WG;+ch32Оj(,-TT/,<%kDDGP;R<|<[T^DKʯVSh/.Fyu9)(()ЉOt܌_lڼNJ4)))t3觎*+?ժXTlm9B w =rڇm\AY7q 'd:i~FF^.|&w]4Ggai֤Cf( *;_\W˯mla/k׭/LsJb|SNAI)RhH+%$7З"MU޶}3%9.]M-L o0LiLЄ:XoN4PѩttâDu {0YZX2BhE?fAaA|#{ ɑcG|EH[y8Fy<2 ^7~b/[mtƑ4 pB8:[n/η|'CKJC5Ҡyo5>tݥk-/bShCCɏ;ZPR@Sg3~e{yiѝ>B w=i&ut\QEh[yCbT گN\2{+Ost6RZV:(zxWU CO4ְ:e:f^~<|rhc Կʒ[6SV}|)4\~-\jr.(-+svsKJU]5<*|l 7%KwX B#Ci{\h)tۃ?53~6nP!Z/_/B{bCC_M\2{+Os{dIm=mڳr4V\. $0Oq={vvw0W@_3K32u.Rxq<5 5j!|: YVAo%t"..;w2s3OHSO͕iOG,,-[GZҹS5i}= jAiey(j=rNazf^&~6nP!\CcC@_|thfzp'+jA'==G$ڵ.܄vePib<[|ە¿Jb^rە'=: XX:Ҿ}6TV ٴU=tLWMg3bߖYY+kBQ/"-;&l&t-ONOKc0[o踉i*+(meS7.6SYbd&* ![./8&MZ-س>4N֟t U$%#yۮHY8R")K]Q׮]tHY8R")K]cB1Łb`````@h100000fq 8Z Y-,cB1"@}܏IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/recording-settings.png0000644042355400116100000002654112640736115025355 0ustar00ensoniceng00000000000000PNG  IHDRJ IDATxglYvmGwmx׻ky<<{gF(xgsF)R9sfns97s9&4RsD{oWU_s?Ĉ;>b<Ĉ<Ĉоϋ/666WWWfff&;F#{?a񡡡>f$FAPG#@ `c9 V% Cjo9BGoxQb\ZG!57G#@7<(  4Cjo9BGox@R@pಠ )))Cjo9BGox0yB D1f$":x=}ÃjeC!t(#}n߾ ~x=}399rP"3$"zG~x=Ѯ"P"JhV6RGa DD"L-әuѫyb695953EDD!$ ޤ_{153|[kxv_w9&gGReZ dw7b#^gWw0e5E^p`҃SWW~/rp PdtM=w울hk὇AΖ>f}uzVfemgϟBR|djYcscem%W’p)uʦĔĘxTzZ%\zьfixvǕh^^Q/piZZ{( 5fysgc[7~]muq~M.^-SYXj^ `7W[ ~xI#[>2|.%:Te%e7 NlT%&UIs rbc£A֨-./ 9~xt\4##tą"R3R]tcx{AR߄RɗzR9$>Feerhk*#b#+ &y;~^\GKn\ }TXg7%FĄ=i念ׯ?< }|΍dx.^>춨@4֘xGNڽw3tߨ6ʒ<2y+2ۄ+ |s*(vkxk$84bPeBn޾ x@ ݑ[ _q͗zlgR+ qJ(POǶ8AJ!4¸䘶.z-+/Ùs9><:t:MnT--/1<6A gYUYDTb@؏Fw4H8I'8yW]zjEM.] kup#tR_1+$'+n@tN_;%*[剣W]z2v ]IYIj,&1򵋁!\ Si޸}MiPZ_Arה=}=oz7x #zw2hߺvQZSF raixߛaҒ5H,~5SS!g=@L'LN*.lhNhciw.(>%ɇ'eFĆ4UE EVX[Eg4Ed&H43O2tAwxFea伒ƲpF@ K􎤵)$Zή(hܲمYw&[` 0BƠHC.-̥M(.+S`0yQL|vxvcx%/>zOOҥ~ٕЯo" Ћ!3 ''<Ϟ,S>>K̑3HAHt%iFV8g/ Y50K DwSZg/IZ3c5)MAD=(YU=rvF2Ǩ1jxbB0YMf)Ygq\Z7 gU>@3V΢#""緺l"D1jz=(;#?ȥҚRZfv <;^XVT+f#Kg' ԵZZ ӧ%F677wxvVٳ79[b+[Z^!x>Px*j*2s2]jlUzD3~j n"<ٯ*2&2%=Rs{J*.יu.]Jh7AE؀AK7&NY6Բ!NQ{/ f~nll!vEK"ƨ/ʿ~l|,OC[wn>s:6!Tpܐk7]r9#; D+׮;rkj<<Â;?*Kyi6 %%%544DGG͞X|Ȱ_?] z/76!cxzpf|}kJZX[XZP(J@\Um'19/o߽ ]rIQgS T)v 0 #619]MUBvqE1DD.EzZ=nxv\-gXL.hf2MKcv-="rX=em""N{ 7VX|$"%JnkxRT| qiqiy4&b`!+"\d={/z>$C<:ת6w@*p9^#|6yJ®KϞ?#",3I;xzR66kumF+R~%S$Jxv\O{-,!z_ZY[q3x2cG]8wy⥋o ₔJo*(gt16{dr{9֟nr>]]\Ztyps3xb4F DJ(:C?#,1* jk2ӪiĔĊ 3mtВ@oo^?sLrZPJ=]49=d3+*+$22<O3 MmPca?EbDgWgEU\)sdldYYenF]}]O_B0YL,+ cjf5> ?¢B\w?xΞ?+ 1D@*HH+ <1_ff667zz]q5.1ܻT.^OJpBs{4W)脧ǎ!nhjhht*1)`4֤;v PSQQC6kddfjNNI6[F'X-*ĉUU<>/3+_LOOn5iu;wޖ5<2ߗ Wǟ|*ېmmPTt+ $r oTZV P 9w)3'3&.fKfJ!'@)"2bl|   !2*wpxÇ@/437SYU^]`zmLl *7]Z^‡8xhh@VNVcSFGu ۸r?x%/_TVU NuVR$ ߧ@yfݺr<9=9424,2/>gGx=V\2~ +nHxHJN*+/'$4)*./GVIMKB?_,ZBBQa@TH#(ޞ?YX^!]ÇO}c=JA4: ulDoWtϑGPXo5XZp?xPtmN*.LiR:% qCezZ_71AB ypcqXp!23dž'g&sr*+INM*)+'5=)*)}lr ~aa`x8)i)M&TOBPow`x'#3nf~;(-F1[ 66>.yy(Һ9o/G ҊRL7yv3.υ[yeyqi#Gr)z CC!/Q"$ eZzک9 47Z(1ɉ['zk]( L]rsL|R+䦤DDGh)U|R|Zfڥ+6]쮸8EYݺm#c# EEr"#3-./MFD0>9bLL9W®?=:>iY<Z֝7cP,ĮʪJ W]S=9=fx7\;;?xرdNSSW^mtH,mjܼ\dsرq :`"م4<:tz{qqxݶM?~'%&UT%|4UTZK($99%B Ƕuۀ0(-+9{,6̍75Z í˹r͛r|`CGgG'3)9 . ]IإR>nf70?-- F"+UJ.{ĉfl /ȿ},++M<33ﲰL@2;,< Qo_/2"]-m܂\ ⱚZ@rF5Â;;jkcbUz[>SJ O=0/۽׺m歛##k3N N':&qcFNB8 QQ``n~8,"`Ԯ)Bcz]q7}GjEUVW"Špu,1%1=+=4"$Q^Uj  mPס\ym*k*/]BCX(np۶i ZҼV}6t>*aPkոQ˾aDorykѹ `z= {a/\L!r ɩii՝/䇄PԲoئyhY_~%ˬFl{8hDN-/-FG mo RB-4 \#F!1y̓s/[:Z23ABͿ۲nZ<qjC".V -"2k/B fg,6K^AZb~B\Y]c]dnu uzqhdh<3ի$3;#+ԊΚmf$F7ݝAACB]}K}P' %qOu9x}AUpI)IHJG( ?*@$rL)s- %yrm#U5U^Z^ꎤ6^ͭͨ:0&үWFQUB+(O" 0禁:n}}hřyݶyw[m75@j3lP9YYyٔ߉__P\PXZH 6ePmsӓ@HFģ>fP Q;k"|XP (aWu]5vUrinjP"DS! wWmEEhp' IDAT'Laq!2L]c]p? %%nj%#n>Em{^6mD[aZKy <{FYP9Wc#"$nkDm#MCcC$SDrק$?ܯ1jxbn_>&8&' RT)HDD 1WUE)ZZL-#"rI#uۈ޾t!RZp vRPz^$5~o(*n"Oq3!-,ߺ=|zvl[_WUbx~qލ΅zЈP&xLk ڷ̌ӻg|1_mPo>V׼oX, -E'ŕnYcb+łBô.m RiYןߧ\:z}w#,+kph:"H87?ݏ&𸥨9ӗzsM-4r2qQ&;HTۆlqy40(Aw;Lgd6UUW}#<2鳭bijd}$7[Ϝ鋈;v_wrX)GK֚QYUYT\7NLSqSOXX\gfv\/ƹ"LGz{<7~}hCW#/4E PH+\#b*z2}-qvN>8l[ VsumfŸ -=|ɴ=04S˓+Qt2es(BA'Ga |jn?0-GGB07ru%˜Up7F nFFgEKQ9~r0 h7"Q7?D\wGx+4V}?5~Q_Rhxq(9Y+/?,7-1obv#جq"aU!^Ã׮]00G NpG`qX3s3ƎΎѱQ ,ʄQT SsSCja2>= QCwFL>93<h5aE 'Ä#-B}=~B)u}-?212-,aacX!:b/t,FSsSUmUu]58h3mpd}!\;£`Sc6I?W?JOoqR6#L.d4q vn4YM}GkÙ'B>;uMpkƆEcYxiQWf, Vʹh Qk BVk"{F?ߢo"8Bvx 1vp#f>;-G?яNeKphcm0_kυ< 7. BpE??w3hxbzb^F>[T'͢$*ʷ*eC!@BqCIUuH(Ơ&oQ<xL#džÞH΢Qk:/`?`%8Q}^fP\F {ˍ[H>AH_9BZ\t^ W̕k3 &JBp q.υCDt@x(E!":>p8ZP(p,Cjo9BGoxVWWQ<} "#FAPG#@ u$I Pb\.1br:aalll9t|H^ 'h$FAPG#@ /^C}hnn#N#vH G#~  1b<Ĉ<Ĉ<Ĉ<Ĉ<Ĉ<Ĉ<Ĉ<Ĉ<Ĉ<Ĉ<Ĉ?GGh'1AIENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/preset-properties.png0000644042355400116100000001216512640736115025234 0ustar00ensoniceng00000000000000PNG  IHDRrh_w/rAel]uX`0{ٻsvH?|D(`|ϟ?!"!H 6$C7@rv@T <@ EgN'j2L@DClH~f/4Mc\>fk|x` Bo<0(ȇ * "d Y,Vnnn&@T <@ -<"#g jb؛攖T <@ 56E"G8kֻ 6$RaKDQsՀ?C5 6$ G0fh7lxl3|Zg54ם->yx9}2XAITMYZeRM̮p2/!Nz\]f3ϦypGuNp\.R'Lt 1g0JKKW-^|h3-zY3P`*4]_f%ncߪiwzBrB|b|tV*r r#"#?bV^+M>rzcw0VAw{ƵV~+hsm܋ۛkjoٽwwmCá7'&'v ).-Ph5hQF<F(e⊪Nݿ9|yT"¡O>9{VG>ŔB>pϹQs#dw_^ae>S|-#uu wٍƁ\WgfeRr Hkǿ<͇O, :eIVG%/\8m6,/bbm߆¢B4_()+ ,Y85ouACD,У30X@t;P#wJ_@CAk<VT2oEE[|cccceނeŭ83M<}D~tYTqݝҎsbN&/ SNfUٻm>/6ڌBtV9VySKު8>/6;e%^;xawldy!^f[F+:vRAq򺰸L CqVms;2jv;\']SSSKyDjbbR%g >bfffe^`dQIQ.ߋs |&߷D7 | ֨U՞PV{au:NSai1h i3(3F^{'ro4JmƦ2"ߊj''3"#KJ`]cFDFܼuK;x41PxRJR鬰abPy$ӟG|5mdfMDs۸{Kpv }JUR*h—]][Vzj//} &S3R̎I>i ݓg6i(*.$O2 Zh!V;o_~ O?~ &N|+V'@_U4z!SUB % oݾN:Kϡ/;ŝ;w?'!ԁc7ӣ&>)VMk>D TFȕ |5r5s;{iB ;4r:z@ ٙ_BRoմ ٍW׫c݀ysm)pL_s%jyn~.D)CKSjɂcFkcI80Q$ ټ|Qh Yh4^3D,3T2 coEF[#&|2t]/[o+׈RV-n+xy_um5CnX`kDBnBB&EfqL# |38`&Af\GE[zA-Huc%>u'AE$J օqJrfPhx; n^6Z8fQk͇2Lڝޮua{]QX38{]wօq. MX&~0 PGF_ .4F y`_{{y| JOb⾡ rd Z.QH)%Zne ߳gϾg2 %-*qgRR?EkU vy&/^C%r5/r1 Ŋ +d"Dg433}W hCSHHnw]A.&)w~Ӂ~KɲR'R")(i4c6бwۙMBkMZz |33 =3'>кkW_u˖[-gofi<5=ewy|^oJ1[,&5oNZ!aDfcwH:>PT* KTAng 44h3zNn[_pYA'b};m;̯j}߷lw)1ZNNO ²eҬ,ԏOɩI`sj?bjfPiO:lK"zK; SkԠ ZSZu#G&SRĄ‚ȨHHu!BƉ H.=NMMQyc[l#Iww]h^dw JMkHzbsa9z`R:a&hCa ^>y| 3Ovﶽ;dC4팋_}UenVRL;NM"h3mhl=w{*W"}yw{6DcX2Lՠ1"%%R 8ղ`o nOUEsZ>T)jh5YNb4HMZWϩbRRK7C y2d'2^?Y@.!!?Q?hxCt* -[[]odO'Q@SaGS"a3,,h6bh@|r yq->)9 %..d1-86IA PK^yS:\˥ß֨tXFo;vPZѮںlB{ E P*|{5ϝƏ> òuk_C=dh|$i|OUd&Z">0t4 ")FՍS_ 11GAu̍<I9>iziw1ŀ =C th^Q`m"9%VH$*V3ԙuXjȵr7OֿwAvZԏ>$J2ߢgdo|5ӟܓo Umd۷oT3MSYhv^̽xsD扦;M ^D >xhtS))-j6 ۍ.pR5111^pl0+>Ǵ~NJwS/c~[vcj|;EC5ŴRAٽ‡`|w{hۯկ$""/?bӦoiRqEX ? " 8]֩Q92:YVTˎ̋M i #;k〃>m-4R'"?Lܟ*4+QK`m̽Tz$l+P#[nWQwiͻCo1nެO?G?R͛oo}k724@,`7oݬkk )i3 0)0jw e ÃAoң18HІ>&:c7O~<`UrB5؅6(tpFDܚt\ds! -0ȰIŜ];y跿bys;bmAڀԄFZ<24 Pm} D3|}#{<7 +|ȀڪJW.1Xd>_WbYÇҍI.Cs NrG zzבq"ibp(B))LӪ#݅i,8f}P?Qڵn B.Ak$0r7s 9f,ú0f{Og)>i} )Ժ0')[Qo|׬ |38`&+o(`Z6FGGvL&ciii|x` BozzzZ-ϯgX999:ȇ * o||a"bP@IDClH~711rN'MEa8pZDDClZ}Idk2)y-@T <@ 4&*#"c\@T <@ ,Eg0y&""`x@ϟEm e F!"!H 6$#"ZM&QD# |D(`"L>G0&QD# 4$>vIENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/settings-ic.png0000644042355400116100000006151012640736115023767 0ustar00ensoniceng00000000000000PNG  IHDR5 IDATxwp]Ǖ9_MkڪvkwڱxƖ-[bP$[9'9 9C9ADD )h(P>u_ӧOww{RH"E)ߗF E)RHyD)RH"IRH"EO>>vvvRH"E)w6hf(cjj&;;iS{TRJ*U+gcc'@ 0?@LKRRR`` D#*UTRntE9| 9PǕ+W򢢢\]] 7|RJ*Uͣ/qq8Z !UTRJ]O!UTRJtȣZ&TfHRJ&9# E𜙛)<7.>S2R"c#pNꡡ!(D3r2ºϕTRnfHhoo 337622rusMLL,--  x,Vy5m۾m箝f@*}7Ӳ bx=( K uu/_7^wP)IEm_3'cJ*usꆑ͛7||455tuu/^H+  ˹q]͛KKKҊnݺ5111vGׯmN`mծ(WVVWTpVV?OC"BʪD(,熖R>ILXYWIx!~hH+6!VJxS)4ԔV bam_Ï?ijɋ/|$&|㡾xP,E W fmgM%6DK̕Ӧ3b 0?'OT U]0ctŸ`y*JpcJ*usꆑI:((S[[8@ SSSsss ;⒒ 7X 400EEE0;9b``@HfkkK{{@A"|띷Hۧϝ޶}9.)-~_O_R< ejhklݶyfnx~o&"c#3r2N:/W/h] 0-+mᄑ[nOCS3SϧϞ)BJ"72=6 Jgwo-[ܟ>w}'LNW_yL-LJFGOW=\b&wpr`tz9+Zw^&? 𡯻DbDd淿9x~㭷R%6|*Uu #yk+{===###/~9yE\]gggWgʛ7cbb]F@EE8ZUU544$*㓓颦@~~~hh(@ell Xۚ-m 8---%%%`Pwww]] 㤵UxOHH&''yT\\LC`kl/>y¿ۿ}gΜ-cbɲ?OHdƶFw/w}џ^SJf H׳T$&^м@>~;y j-]w_ =`x I NN}|ɞ}{pAyMc"/v|_J@@򺮁HCQ4Ǐ?gupv#g?WΜ?CT< hi?=:6 ?x֭ ><8VT^TX[\lhbg?%aO9 i˿ y7/ny&aTW%' P_dxi"8x 8?!9?ŗ_߁Q|C<{p_|cfiVV]]K5 5/+,̹3%% _|#UT?Hpvv$ >>>e˹%%%NΎr]TTDqZhmm6DBsss+_7)ϫ}}}L ghMLLm^XQQQPP <7p2^FDMOO?,<y@ߐGZR_޻< gFJaicغ =/^O~g,XoX)"ߗהӝ>䁱"He]2I:>܌-[i(jhȸg}%7z?4پM*I%c-yXYU3֘ϋ/""`>ZϿ<&>FoH*UꓮLܠRBCCnnn陙veͧ-v 333 !< gՑI@BVVVCR@mAx-(C:::ֺr"^*yyy6TvwwuVV]9!!jڴbyy#b"Hո:v< s\4Hm%/ MMi 4}q xzrߏ/~ Yǡ#o o\AJNO޵g'~B998}|B ֫Gbj"Q9ډ/B_N?gO?,̣`~80^b{TRnycbml--]]]Bcccbbb/]215dmczG$o 0Yr2:L,8~URcnnzxDDD(ɃW$yuHHO]}}}[#NMMR~thXY7^7~ޤ^7' ppv .om۾g3+)'C?/2wQTV_WxA R[^")瞳mNaDt淿Y+/79uTYuYMC~; xy @P_|CA!`{nnL= *,-OO(rvs/?_|NGH*UFdXx( |{yyyxx/ًgww򨪪R;[Ӥ|dtt_ ɡfxxX|T<ƀ!ձի|G#gffS(300 <\|BTTT@8!ζ67VO#|?_\xܽ|*UR7< ++ ???P{G[[[333###}}}mmmp?T"UTRHqF|q000A!UTRHccceeQQ^ޞ.N.N%%[*1$RJ=O,--OLL B~/>G}s}U}Ue]TRJ@e+k76<[{FD2j멧pΡC^l0٫g6st`%5iCgE]O>?6k?]o;?2*Ux=ɝS3>9~kJ*U|Naη% gӠ#{-/5>wugglݺk{}`GVA[7J*Ukم[=f[OYC?*U{̶>dtJs˪ Eԍ7J*UkW 6yZwxuggd??t¿Q׽fNڿgM=5:;t{L ?8f[}4?`}:`ǗkǵJYz}Oؽ#U*Wȓi 19=tcITU06\K7<'Z7y;e.-w^2|̏/g?>.zڤ=,v_J w5f^mϞK[},Z"ߡ\@~WYrh~o3~ɖ+ƪ{҃miKc[c@pА{|Y]+k+<,M;:.wbrjrm ]2"Tj櫪ܼܱUm[Zcbc=tdtAGtNiY)757 <DHo~fi;O>4$}9:8]CB>S%TlG/^Z""=+9FIHL0h`ain/nC?\~mn%$KپɩJCEkP32HKgÏ <8̃ÇD 4Å IZ>~>4.8:; `ogo#̍%!Սd[#G0]$oRg2CSS a୧0dL2cG1KLJ$O s?JI%qՐeg}yJPaVW" rr6,"L}tw׬.6egtҰ舎,*.D+WQVg2\挓ﯪ9fW[r#3=lm2\ w1m&D#*'2,**++P<$ȵ\W5Jlʐ9#&.m ;w.W<( ;afƘbUlvܶr/F9qW*9qj رcǠHZ/-&7‰肚ӧO3 œ]5 xb;`IlO fGO_1ոŬ[=~n2]pJ_GO׬QdFpB2`8}aCq4:6:-#M Rdz[:x@*B`'O$9X /Ƥ"++n =~6,^QUA.\N%L10*Nmh# ! c(08i^zQ`@8g,ejѽBmhj a յQ 打'xe^XܵU% ^.qF(Q0 ]@?WS!4%)酺(pK .}P5N=W46E(|6֫[k9rP")۩ӧǹS.@eE6yy[HTm]uyyg\ wEDDD hooohhhsK{A1w2vl/8D4 ּ{bTեcos o36JxFGs[q!ӿ'1k^qIvl>*IRo Ml5]ɯNuqiۏC;"Je:{0ƕhN5J+1.Tڐ}f<ק-M+ӓ`D@f99>~xnanZV c'U)uu<|<ҒhĕمY{]C7FAlV~~SS Q1QڤəIvSsӔU4G?:>* $ dz>2<2sl@5umjw/(*-W7W`rǗ(]|gNqf~Fmye9)_CB=IW5  & @x Y754'3vɁcLCKoٙ9jt7O@/~)'$֌v"8mM. (ES[yRJ_G!1۲?r匬 ]:q,a-DόtM_V#;7[($NN]L2p$X ,K~.X,IdDV!ЖHR諨H(!)ua몡q"䶛9$ x?3aEXw3] rց[yzNos3Í- sdlD}(t萸Ξ;$+[lHY[òr0Z uG`mmxtAu,Oi! v٥kKYeFnFaYaBJxȃSmE(,}6 Ï>,*'pĥ7{9m]76)%kOIߢ.ST<+] YNS\aa T7G ))@Qwr(摨YR^AqB[q1^Ř.gmMkG?m|ɘ Cca A a3cmmlݽݤ.2s/*];[[;䮝.Ⱦ5Π!Hl9tj8 ,';WCt WSfjF*IT9Q/(J҅@_JG,7g 3ϙS\V}'9愡pEp!JeAY/QR\ 8N9=ABCL ,d`@w5u5 L|¹z.9Z5 A2itJt]FxH,tbgoG I5*:L ejh¼j~khV^!\PG2R16ϵɕŵ{l?e`w=5QeE e+RRRR\\\TTTPPO󜜜̌#kϵ^\Bwlq <{I!;wnqk{0GՍ)7԰?8oo/yg:o+_hps`mSSXb𥷅7a ҂0Ctkc*q3t]9韰@91 а pݕ\i6ܩҗ[&=k-Ylb^ XZs͝enA=+V҇kWǼehf]ʆ]GQmysþ//O8>cuGC)vO{/}r߼~υ>m||H]/i -,)톇=+5ToR]_%nJ}rutltsQ轾CZڭTC՝}vv_Jc«^²7vhK ;u^}G/|uςgK}C}}}˯RJ*uCu"RUQMF|npk3QЅG/e=t!( Ia(E>q?y[y\p{} 22A x||H05%%%u8GGGr9ma_|8ajj&ӳ! 8(,,TG G|Dbߟ&gϞϧ@=0AAm544 DFNvvvFF*MOO v횃,# +#7H"E' RpSOR'g9sֶ&""(ZjjjzYjPPP(AxҿC`Mpppyy9ZYY?|&rsss xV!Z:MLL>6'yg#K(QXThai (CԴԄ4g*.!񻍥J*U֞MMmnYߺcnnOOO6H"(((++-,,$u &ėC\PG+vtuu> իWAzdԝbЅWJJ k׮qCPQQ7 `ъ?{ kׯ]]ZRZTTUttۍ\P@_ZFZ\|\Wwfk IDATJrjrpHpYy𠶶31hni..-NKO]ުJP^ŏV]C]`P y < -peJvNv^A^Aam*UTU75y 's<]ww7d.*Ӗ~xbv~NLMTV (xz ED}..~~ǎHL߷ũ00 LLaW/͍^@`@fV&" RJrMM[n_HQ̣oo<(p岺ffg0Ek{kdtFojj  Ƙ6WƯ1NNyy3s3-m-&ƓӓGMm?4wvq+ȃu⢆CQOU1H*Uǡ]=]O5y^[y S:::]Q@ PūBBC AK[ t3@R(UTVP8z(8"0nniޱcEËXU5ihjRJ*{ЎO;yHNYO[z&g&&T j'g'#7?7&.ft|t`xӕՕ4A_8_^YpLLONˊ _c<04ȕzGM-MVTR~*CwȺ?[v?ZUSehd`db84:46&Ο+)/W i*.-5-!aM`~bPQU\м J*UAۛ%yHy󎎏picgMHAQCyU9ade&M-Mm.n.DfNrhpd0!9|0†Mnn6c&J*UA[7)y,7yg1N?m^pHI/qqU$Fü0TRJ}ڴ~Gs7mۆ6lgҭbPڽ&q3R]y46 I*UԧMkk6)y4Tb?C}ϞvvI R~965GFF+55~᥹>GgGTR>mZU_Yc˖ 8[hqe[ɣ' )))33E= ܊^Y(7nܸz*5׮]u3333&<;{:J*UӦ5囗<ʶl)я heEu_EݵW!"" E{{{ll)((pvv 8<-- ڨ^x1,,LgOs/YA9zOݵWI^QQXLMM 陝L~48'+W"E)O nyכm/`=yݷׅw|6t_ۛ6ƞZ䤥+kW>L~A /..ZYY k<<)0eʯRj'_<<)O_Fy$l>bST|llm|^Ri@!l5u [SGSS;|vr*Z>n!Sw JB!YB'B!!BaDy@!0}< B>QB7c}N!pJW>k0bk( *kf]֤eBXVfmFy@!܀RvRM6úPcRu Z jNip4]"!*Qmw/&S0bZy{:1pxݭ]z:Fh? ձ1^e}:(!M*zp·KFe-z> ??4M>ByPFm USݬEL3X'ǐ7;wwNaFFBxnBpG$l 9l;s% +\}!x _~WgKF><>ģNOnJvݳ'ۑ޲?)i{IFy@!B ?ZV!֫\:evs&Kc^%uQuҠT%`o!ӈTF޺7^<,][iwCBvϻm[w?',wf-D[Q2ccӆQB7*6&X zEvJs'\^$Vs[c74|♃(au]嵊e/\\PQ]:N%l+)6״Ч]޻Y[Mtǎ]_^|_z+~ۋ/ _{-acit[[[qIq]C]eUszziaJٙٻt|rFFFU3sw^{S$=&? =yi(! zIPlXKwaF'.nnΙ2fOӹkg/qmڶ{xeh?xw_J_ndmNMO=|PaUhKykڀ?jj[<&džƆꑊz /~#wW|E1U]fG2>8ANnέ[D`y#=Gt19'K:G>wuNК4ޡ粽(!Tyh ]ի+&@Ux6!K*`:nY34GnY˩*.(|:pyQHWSYtԚ68/4<>N>`£_amo ׿nP7D  Z[9-/Ao4uz$5?O &ojXFA_snz@Om/4B6U(!Ty Gw0VJFHIZZ{z;DnyXEVFn70qsΞаҵ C˃5 R,3 /A.O$>+޲kOf 9f֜}AdžQB7P&ZkIU4j1 f1ZaC!V0됉Ueʲk)57+}Vc,4JԢ< sYIDATn hvYf^TnuKOl73Zf'-u`2KnB:> i+Dmg ;tfݲs{4HWqFP5 VױtPB76KW>I^|a/·aqXL65 i+ B!!BaDy@!0}< B>ui <>Xy|>Vjjj 322^Xڀ :jʁ*b166-D"inn,((,@m@@@@@@@򘘘bNE p8Z&`j*j*5T2 ,˪T*ZZ`j*j*5e磅b$ ,@m@@@@@@@{ -At:- +Xڀ :jʁ*b177GBS$IZ+S86BNZfr~XsyPH(@?:1SPIENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/signal-analysis.png0000644042355400116100000002117112640736115024633 0ustar00ensoniceng00000000000000PNG  IHDRiZ| IDATxtTdSOdx:&YdsNrRw8dǔ`bӛPdIHBH3fF#**e&fw7f@C{O7 41 !$RbD1vܹs[nݸqczzW^|@xu`CE7@qjjj|||tttppd~t1@nvA=:iXCCCZ׫T* c :y!4 XQQOB2?Ho@ph79` BQ[[[XXKB2?Ho@ph7ctС`@xu`Cgx0hHIA]@xu`CE# A03! IU]uW/Ho@ph7xCb8rtgHꢻ|}Axu`CbTPvƶ:R+k݂+SʪzƠY*o+J͐.Qh/< oo!{3#Sje{К&+\kRG[fS"Ee SȎ'9ڔgg"9"+Y6A/z^I:5-)|:V}$HBRf$kY򡣇G'$"xCaSgOg"]eEfN&dvf8nMy' uN͞=yEy֦ҪM5niei`H `aaY';,X0k֭a\QRQqlJ:+UVUfm]}]jA`?П) Aܕ,T١dEe6%OwbA6e vk> nyu9“aܕB-9:̦D<e]S^Fi >L%4DvZBC͊vrI/?Ȳ|ƖF[fS"t ^CN^".ɘUUިqiܕ_6 No91be6%OAҰ 6lڼڔ]]7;m>p|a~ jyQeclz*[fS"Ee.".b*ԬMjݙ?&$1܂\֟H>^{%&i:5sX6 tcPYW)wbw]4O"x捈lsp\0'dg1/!v%ln+e#v{n\B\qy] PP7PiYPH|Z/4 mӴٵl֦c{lrlˮX6kU6؝CVecmP5'<\ ?.KBc737T.# ve708X1]~~܂\oo~e˛kvkJΨ[q}]s*kә[p37'|G?.g{}kWm,֢O?MHž}s^1+Og>~?)~򓟄/Z-|IG*8$Fv~OSҗկ~՚/#[7 XHmg?Lo}[?,('k_c.?7IHK{"C9DZ{"C9I'=3:JkO${(g0DrHkO${(g0u֞HP`id &֞HP`(=졜$L"=졜QZ{"C9I'=3DZ{"C9DrHkO${(g0DrSGidxs]`&g <LWM \O96)#9My##{dcx~_a\`Xx{U/~񫘋Ū_|W^vSdM0vva_'>]1S Y AL!;HL ϱőx}{hc̞HHMKd})MK{"s_{D.d})'=3|L'=3DZ{"C9DrHkO${(g0DrSGid &֞HP`id L"=졜$L'=3DZ{"C9I'=p. NAGA6{"#~{ds??[̳,~Z}_W_SO=3;bzϠZt]0v:utnҪc!*K*U%vI.T%RUbTJJU]R*K*Uu4݆>gg?`ZYmY]YY-ǴJUlGg nZVZqeqpȀY,PyCH5U%' n@p@S}6]Z B k%]aOZf.t:eQv;G[խ62ql=>%g7/oTt3QוuH-%6={Wmuk֮_[VU昻s.yو1/v1={V\$MРVUkJ~M[{[`H`EMĚ=XfE.~ʺ’kW3(.Ǔx_'%6X-N[vz mswVV8Xx1 `=}ʊJ*JiQ8eم#vqeN_@"Øjݴ;2:281w(nie.~ݪ{2m(Pk~MxqmQ0;GYvwG" OLI> W%6$bD\B\JFјm6ܝ,JwD.ZəƊGFE5b .Z;zAA;eŵ.~]v:r[s7ECrߵ=,sL} axŔw*[-ڭ֩mm UP 38ڰgΦ>Eymݸy#&v'dz8ޞk͞9 ٶ%vfM]S k ZYڄ[-vkogS1/875_;{{*;g{̫l#"v1uֱsL+!iYi0Φ-}ngenpl1m|56o1Ygen5]Cwbؕ8ĮMIOa~koL&am9iqR3S-VItEղié=vc^qYB{8pHxHL;y~6;<ϞH9!6g?xÆ.?ݯ mXEQEBW]1 +F!vg#ĮHؽbbWBF] {_!v(wg#Į؝"b"$))=Et^tF)1D%%}JJU]R*K*U%vI.T%RUbTJJU]R*K*U%vIĮĮTfEsiA)ܪjLZu]e.L-(ŔF|]) "n^2qatQLn>= |-^bWþyvw/Ws Kdi D+9xbU[pAcqtrp話t+=eE=}v9uxAi,Aq/A"!a9>ұ5Z"K#^C|b7=z\QS NNML6Fyc]G1,A=5;pșũQ#~X;yѱ[TVWF앵ɪ[뫻mU]UMC }*Ԃv}W(ߊ酏MXXZ^7seEmEmp.v|pVYUYU#oNPZ1&4kkF=cfUrhx]sL2nG.&' %U{|{ 8cljSh+KkFXHEFJrGpԵfvt9wD'Fv>)()xuɫ!)5!a! W^NJ3 E[;{:9f+wyظycyM9@Mm<=˫{~hRja\vN7nnFwwggU nNo9صCS;R3RX(k!ߞNc<<0撥K̿}Xڒʂ=] wY[.N?o`t&IE&$ǹt-.FB#  )gXweg W,sGb 2cbpr ,[f\̷s! sz_Wczx aXdJ#D򉐽!{#fYJ.(AELEW}L  شee[{큩x Z|f؝8; !itOqe@, kz `7":VfjD2qoV^zym__oe&8SԔj֞x^^aeKPGtD4E,䰋G  1_SRQȺv( keæ @rzr""wqQ۶8mK9H@`gǑ 7$bo- حݰxJa.gm$\~7׼߻L-S SfC6G&)D>ض}q^o+V**~%AD1Dž! izCKoXPaH-fMI v&Ow;;b(( V[eoV֣)>õϛ=DLpxPk{#>Uj sI]ȇ9\R^CGaKL}rz2y'1dH{ 09v N8YxhW̆]d#H39y/QNN~U__/a؃YG/#g&`!sk㻇tyٻoؼQQr0ۻRmZ1;>Qׯ=XY-HRSBB$Z=׮_5Fw5\~;x s# 6a0pdC׫QΔfٯAdmmDQ\O(ff?.L|b~c^G#B|w40wf/v،Ac]:cOS^>'gkzHȮToKe(xyxz w=Pա svqF>~8l>#gF:3+qxa~ ,[s. ; 0I;|zA( k7*Z+O MvO1fVߌʘc @cʏdVvݻlE`ƫp׀^olշhFÀ+JYMۅ3}mH,:2&Ҿrҿ2[JƝTbTJJU] + ĮTHg:љNU:ӉtwAܦ3${g:Y"Hg.sӇw>\rC:Ijw.?>v#w: q}x77FFGG폊`LX<ě2K_^ T?ȟ Wcejikx$K[v b 6 /6t{@yQgLY4#Б?AܴxS1 WҳeH3Xv'N biť=4<4yvr[֭[tvrrBcʚ99p#ZF!/OD8G7V9ƛ;~vqt4,Goww<LO;msz*J=[m@VݴyJC))@m;ܑQ0# O͔ėаPXB&.3fV).bi~2s34qeBr`ymkH^1BjFjPH3f0ȰÛ n\k9p3zm^t㧁५\\]qр)|rhNsݫ)oX϶FByEb@vpAL]U#3WTYe @ [U_?s(@%` :f?-$aoޔgLq`s1m2qS<0wbߙ g&+ׯ@O'$;GcFƻ / S4 #w6(IMO&UWL5n9&.3G ޢj9 ['tK,8 c82Qn-eĿ`EVX Ϙ4F!sn 9do mǻ&ߋc.Bk.^E رs];Uh-Ѐ)9>1bl¶A+*))eKSTlb4dAV B† 0+V<a#踼{Lttٮ]phȶ3330h4"jBچ J½+: 7iiۛctLý9 f ^6pPt6TTj:A2}v:*H%PQT29i('(SXWl0 c\إf+8Frg iUM'sv蘛Ny_h"^FLa`zYl&7 J/- d8:@EJA0ЮCy4Nt .A6 -lZKD5?wcUAVaB\-o a__c|; [F$ּG}n52yXUuF{Oq)ȱ]o]v:bXY N\pb<Ȱغ p Fl@Zߪb)\O<4]Ȑ%׍ʥF˒vXNQ]cqyv:t$T#%BY"^uQ]%Vܒť񉩱٩Yffg'&NjJ >-JUhhxYG;GLO[k2F{$TH#:գ yny:f˻w@jWQōYWetHV}LP}3r*غ$j;tu66@myt|d:o)E<ز/Ĥ gS/5={<4;Ԕ#Vg4";qT9U,E(v;AFӺi!bIWVHv-gS+ieDجxuXs#)o*e=[tZ;Z;l]=D=}6D@EhB,,,]~ܜ-Iv'b,KW#?NtX)򒨫vov[uSR#໥$k]|]+]`@Gںl 𥉤{MD|2Qw_N]Ij{Ãw  ݻ?8:626pn~v@goQH+x勋 $};S ⧳s[ .Aшq^M~j_?t/U+:-Q :ɼtv(r~'wSvѳofylVE|aQ('Kȿ]wli"TXvK L +ءS[_pY+A8`kMNXPJ*l@Wh%t6hm)GFX WSSSS37rz>@FI)v~}|۱e_)D^2-+cKcK ZݙV7^@gUؑaB΀\/'Zx3Y Kg3/s^-LEh*Gܸ̊e܁K]؈9=2RLCߢ;tV3==33;;7ѣܢ]Lίf=Lw籶^3>l;&feҀL>p}{*Kқķ "ЧJ!usw!ʄMS#mQٻϦ_/;OFS'blsJQƭqV ,--v ]"/ק&N"'ONM8F\+_ZZe~pgnFat) LnuJcϛ~v(ՙ \npކ JG!G֛-͑U׍{Rv]J-H΀BPU]ȕlrI>{/OvɥQSO&n/>z4045שƍ+)ޠ5@'b?r(*< t:U_s@~ڕm=2 QOgj:k7zD#t?~LX 8s<œE@I}@~"*=gOCVD,d⿌ʿMԉVKcK @a3Bvr6XjNVt{6]n|2ZUȗV 9;5O٬+UST!aoR8E? ^?uwf>c ݞƯ%땒<ߠ슄|^[RPtL!귘u&=m L44W`uu:ŜhJF p3haqa@x4(!N!WY$ {"ET= ?թjLeP^7vC˺ikf-J^+tܬg12O^70H)bOXZ)V*x}-e"I.0O#̒g7:.c?X݊r*#coedJJk$_{KʛlA!W\ɩL,Nst`r@gjr%+ü#wS~86}2tX縳RhWt8͓'>y]z:s !Ok8UVYUI+~QV^)`UbܽشJv!=eti|t[L*Pt$*INQ__yRF5VD CG2(*!T!goJ9eebVu^6;-*/ygY!y~!WZbʻ{_ȩJ,Iá5& ~aMal+s33*AP# 7ŋׯ_:EJrC0 i!2Cx={ϟxrЩ(YVA,E*QJTũfTir*EbXix;-)sl33/_]mʨ,*+zjbzNշvC嫕,% 5Bp;@ ~ӽZR@-gΙ5DITp6xUf$dEEyǒbs8%ri)i;`\aM[_gv @}(wwwut3twjim/ΓJ?[ҠVrHO~C \g$j@k55*J~NZV 0Ok=X@\J܅S3F. m AUOdu@_>08Vyկ:tj͵Z(_Sp*yҨlVYT%Z7*#d!Rm<^r?сKqyܢ T!"nyFTzۥ>N6*zB+Ph82MVL[ߋi%B|7_:,: YC&>JA%X#``Yt:թJQΓs*YY +CNB>/pt`9^XҘqdLFV搙!yL8)II11r|ȡ6˟EW^S `2l\} z䂚UƱP}""Vj"Z:͝."E1̋}jЮCG2X D5)4i*I-f9:@EJC0:tVqE@@?tQTTj=Z\޽&]:Sd'CX UUN0T*!:.h:tp$sfjBW%+CJ)gU=H L 2J9l*`826Roѓ v1j2,1-q~R~hdJBc+wLהf Dkn}C֮hP]`|jq*P.t 8M=!ŀ)>4Îu.,eUV! f)=եEB JvM?kZ^Rl[A14?}m]-yMbX']z 'Rd2bljP\V˿enQ.y<}ҩ,V#'B1caq7&f2G`ő9:bÜ Sbb.)/{MP:+@/ҵKRtT%ܒ~+P8}΢C~έ*AӀ[j:"&3 BJf (GIOGA]8J`p )#Ȃxe\?pbc>g:@Q66wpLvC@}{6U(j6 8;aw-bƐxp\>NAϮCfuDY*ΑrsԼ_tpE0`][?ЦbWk㣿:b1?qyJgg "eK?h8D^Q.-:CD:b7{`(Ξ? .ά m5|*<*?ȿZT.c1ԛ.cqXSRO<}[;$Gf! 7蜽t ֡A W!Ky+,L9\%“S MDMȲt:z;=+?+,*le;ҳ 7+/H0B!Cgס[͑)b"VAyyVtrsǯ߼%U`O @ƮfRQI>{ӭYIq!VBf6r7w7! L*A+SdjYTDBqڕiTHCIF\s \X03r2C'YVW)_<_ůڑev9!!HD샞 7 $Brh a/OoO< nc=tvn&,2 Alx'L//ؙgZ&<!CIiסbkij%bKsdJHQЈ!Q H{㣀:dHZfDx(A4Rrt`+œpcь=m*"Q > l"Ծ&9:Iݰ?lqlBef95LS&])/;1>8./لvf m5UeLNOA hס#uqdX2K ;t$9UbGvV - ϞKS9A zб\޽&]H̭Rh8NpËkYat& R;,B0:tp$DMV~mKR(HrXT~-*UYփNW˻wDг6SQM,@;`"u |bBE7=нt;hkoÊAE7t]޽&gWTT{T]W.Asҫ\N5jDNVKvJ<1S) jdA<?O?R^~N*keilJrwj;gBP+QH$w5Թ| ~vz=M34<?v6t:{:o믎=rg_:#;HZZ9K8%gg@qLVBCsCEu˯+ 1tv='^!9uMo_o"7w׮-Ff5ФF^65_<߽&t`+l'O4Y@%qkkC'O.ۻ!G#ăjO>8nLnWqt@FTme޽ :r6A,y£'O!ֳ>F^zY%r6tp%9{ ԙSYY0 P*}}|1[i6j\P^s]t}aW/R==o L̆kׯkZ= v%&>bZ',2 -,.lhAgOG{z{~w_/_Vqo2xʞ^ 8 ?ʵ+l.{ωP6_x⥋ܮyc4 IDAT`$44-d;Kx.$\r P(aV@UTZ$ ;J 1%sc[#R8@˯ 3X Ŝb\STR-t\Cĩ TA,5VkN~NRj('`uuo"VYeY u 8Zph0k($@*֠ьʀb#ǎ dE:.ԦՋg/ݸqOOMOK+%R(S/"@RLNObJY*u C__O5z D"G5꛾Mnqq>,"@:A;>Q\ yg \@&}`̜L dAB` ,UJm(@(x2/(2]8ztAG#rTK!TxC`.>em /?}y8'ϞԪ⑇#_}QIDBFP/MMDTXz3xt F;tԲ巺"!Ͽ<6!TzV:rMb,I)#A;h|~:vAeF9]8}݅:ݸN=]pNȝ8Thw^$ Lf ccbc/%%%AAAQQ=}=O92*߇ -cOGx }8P$y_9Aj_Xv-":hƕ ? 8  6޸Q] |2.KW.doܼ  D]P 㸷Cni/wOHܡέ;BpHFA@pJO 2vDYh)4q6GKܮ!A١f͢\.Gs(  GFGRS4jsӈo?]W/ąӢrtK2C/r1x W"0bzL%lbUf4Bvijkrh~qVVesvD =ӪQkݟ"r603?sZP?^z@ȽAM pm'&'t+pbz_rriJZ "!#f[I.x;A͝;z~gP*beb6>25;U^Y>pe?ϭNL Y9Y pN4$8A+T@U)MKOSccĄnf[n͞*Ղjgv|*A[8E76NKg h[V]CEm ƇvJpx &S:{{M026BS>M+:Xollk-o)tM!R ;;/xkzvb8@l YQgo'Oӛ?Q;ӛ&ƌ#MsVj[7oT)tVc^~;Qs!Bx9tP:Q~Y j|w9r(t\e: ;D[zxIL϶;N ЙqQ-"""zz{7={Iɳ'vϴࡻC.u֋W/ffgϟMLlC_֩;z: XRNθĸ;wrLVS~Q~K-jwJY BƸs"rN[+ $RVeX]]U*@Sδܼ\8|**+;+1)d6Yur<ǦήNK*Jp?}\QY/;nUҔ>xwQmznB%?y<4<((8 Ͼ|2a1g^11@de٠0>tΟ?_- j._  Bxua9.>20(o^𣅑#5ZhfnIO?6ZZ`y@ֶVb<$uGu(t\b:b8v`EuŅK]EMCKCS{N[#A#oxހ1__S[SXDXZfZaq!:zS #Q@`@{g; JK,%;;SN!fyuM5|%xRRS F1%1*6f  !jlk EjH@ ^-]$A=&GD ͭ( PԴԜԣǎƒ:fO;w^7{9e'%-OL9HSZzd0{UgyrfB%\z90A͙sg X&Rl5#t!>ZC-v70%Yzdh鑟fKH&&g4O: tvw2JYZvf~ͱyuj%< y0;H_6Y1Soqc&Y_~D!ABX:cQ z02@g&+Qbr"Q@ɱ /LLM \-pum:M/&A| fc-,/ujgeO~$qc@u uțlmzc sQLV^j9CWGOGEuEzV:2@3r QGW"ST7LNߚ| P='3=:{4t ;M.GNܪ "mWx JJ ?tsMzz- :y Udɡ VP+fgffKJ-Uz)ffDcu)ŸU@<dXăP4j^Qph[±Ee0^㦇T)usqLYZv؄ \6f!f<~x7븼Rv[Y6hnѬC3}}33sl}C}}w6x W HLOck#3=((%P@CWE[U mVo??=qgV3ddg\vGeM%NJz `/ۓxUGdћRUaNpJVRGWgfVTWttw,A.g#l);FQ*?g봫Noc8}Z>=O1?,UJãqj ҷBO7V!8$]E1z&STOt\4E1=| x&ilm#ϠS\9t;k@AxAqAVnVzvz1fn4'%e BB\b\|R }|ErƃMYEin/< HO?}G܌̂OQ9<bĔDIq d1X Tc['V , ^< ҳɭ f<ăiMOfN&mAatltKG |TH ^VQ]K\RZfŴú%5Pl"7i}?ְ}v&Z0afѼ]+-/THk>AUq0om_0WI,ca@ʭL_ āH5iFʁݘAڂA(t3p9 8 3 n; vxy#Tp 9^UA:aQȁ? @ԍS>**?t'CTa_(k/^xC]]=]ӓFywo7Ǖ%RX%-έ52Pہ>L!5j9C^qmr`]! `ă#2=̜BǵϠH OtB"%o`"krm{É;848.!N,H]%qt [Q_tr K utuغmu:RWwWjVjrvrJv'T1*.bώ {4j1 BB D.g2US1!y+*4"'0xpNE`%|T@?~HAΜ  ^{)}wzvZ!YifF'FGV;ij d!OjFjs6F鎅_̇Q*&N An^QNbkg+Ӄq^HA%oZ9Ơ)er|+R*JN_DdQ+;z:MF?Ddӳ@GDdDCEB= П$D*yG>[c[ިLVTB筺X=:;|ilqQ0œ^[]}ܣ7oځ?JP8DPgobxjLqQׯ~vOss:.1 y%boF:oI@ūv^|[:Hwfg(t\b:m]mIInnb8!9k\KGKt\nh޻+j[B/3XK<{<3s:bN?}dLltt<}RS8y".1N,J/kZ g( BǝVt| JՉt[{:15008ų)[ S[omvvKOP6כ#iz8BS-m-&iph׉T# V֓`" ;L:Sh>g ΅Kt_|77S3Rb ?|?:6:>1~tlPt ̞%@x&N ӊĔDT@F$YXعca4EKkKjZ*◸tN $$&LNO"&X\Z7404ُ /GXa@)㄄dq\P 5HdĕQ a-eI)t\e t9v6A^^Dnbr:Dt | Q!NLJdP?rOgai~ܣ9򊪊 @ovlSKBR wBx{{K桩>R 5SgNacbcF0>}1KCg:nya*.O Fk)/VHt;HW#]B@43?ڣG}}ݯOMgfgfg"ili>U5U(g^jkup($kRF1tw͛7[9Ox#<)նn(tk :X$CCox(vua‰d"rEyxqկ:UXDs/$iYi׮_ `7&&|'~ 6ͬYgSheZ遑T-.*Xu>{ =dnS+uJCa[26V`1u )\@pƱ |JP\녈Kbr"*77cϲ'84ilk$856m@sd*X;;+k*{O.޾j+<ҲRYYh?`R64O(u;W_^C8~ZdA2ɩIbH*JHLNޖRrRʊpv;F?"FuPpJrlBX&v Nbv~vFvlMO~Q>;SPGGl@SS[v#P| )Uu U{t8 VXw~u>Gqv}l|s/_h5KMևWT!F-U\A3p1yyH|Hh:GDTݭ;%eg^ZvMB~:ȹN:!t0MɋZMS!/y{$_\{0y'K*jfn`7|gbWV%oYrAy+k:,6+)- cNh%e%] 8SؔSI*#ћkz /'Tl] '۾ff, H +C2UVYŗ_:X*IzET!JxX.:j9w¼Cch~ah\s[׻zl#G~h"ҫbNg[Vsu}wCbc:6Tgcl 6X XHSA|exڛd+w< p*8t#o)ʠAޞiYi r7:|*ڕx^CC|o"o5C}PT-sCms upkw;Z58U*n7:.:0B DDEX-DXd*s*8H0oCZs*tZː,k1c ?^9񼻇'_bjD5x+d5}LVlB,V3u¹r^9ì@SVQt;7 &"c"oݹ:}UY_x1hѣG6:bn T j$WeeIKV&6saUCOC*cz`!8Er-ց{oe^P\@ ,!],Ϟ8--9餲V!qmv_ӓۛPs6tN9E)D_Z丫x"u<~xɒC:؃鳧Z6 +8 a#`aF:HӒ1WŜ⌜ ljlRLxސdjMB<$rxv{k4S2Hj9b,Sf Uèب܂Q 8A :h uxwG#*4w4#Bƭ▔(eac+*)U0g :g:4tohbzbdtb-bDB74<|MkPO'/$mxRI$!D2V#x 1dăuA83`Vx {ǜ &AAـG1KֺܬW.#*=N;Hݘ`2@8X9{#qfe:.Rwn5jvZdtbWFujfjjvsMLjtF\cw EP/~: NrOoOLg_H$<*e *%L<L.*L%A &CGٟa3]pNю ]XS疙}5?a776m&S 1כTkiZu.6o=V_TTݩQFaDt ۆ($pKV#jBY5jԨ1 X4dyݻw;;;- >eSFÀ( @@ ϟ#+! jjԨQc8phȶKH333hBȄT QFaDt ۆׯ* h!XB[X5jԨ1 X4dy v?34gQFaDtlgl*ԨQsFC55jԜj:ԨQsQPFͩFC55jԜj:ԨQsQPFͩFC55jԜj:ԨQs{Sf,IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/pattern-properties.png0000644042355400116100000001575612640736115025420 0ustar00ensoniceng00000000000000PNG  IHDR4pIDATxiP[oS̴i3N:4M雦I&qq4x[l^fc}!6IhA/HHlc 61Qt-$L--`EE-""y8X:N7@=2,W~5!#2># {5H.0YMƤR\X^ԐAj{%40bxXj:8z<\$ps:l:#Qu++\Uw#%l7Sq6m[Z^YΨ?烱w O_.bL ȴn"J`UoLص_AXEIbH:հ㗱ThսYK3c;,J?rQ'OtѺ@Is{sHXȑcGƤ9}7;7;:.ΥK'kERt=X+++q 40co#_\qH_@SBvCԭ;*pƐ{sl%IIL.3jfL|Jhjm덌t>ovAIA^a[Y[y! ڈ6Ǫ0bUtfMө@R{>dxySUxeg+J()pdy~*L.?Bi@CWQ{!bE nļ|>($9p֤yg_<z.lYgB\ VAedqX2J[I7'fJo{U_Yc}t KmPgegEDVT$%` *gOphpqyq΢oXX'(:b OLߋl濮7;3, Wnk'XL'Oa >! 9r܂ܦ&li'LWFM7eIߋj="p@? _k\em2̆NK,'jhBLhl9}78|ΥK. ^P!Xכb4q뇢 *}sҎT+ 62jimczLNKgmVqѐdXP=N U\!5Ys.(G?Nz//a|Pe L~/OLY{sl&=qys xJvVVVTfa%ƍ1+$ƿdnavR۫ TVmX]ݠW\H>VVEjUXXm gYۺ Hm [4&]Aj4BL¾%vwEH7CN$9(蟶=,lP.l).&^(%^ 5&My]97 &*IizXj:+7k6 UsN^Imu`]~eN^.[XX+8lHPu]cݖ*)/eh7+̀#Fs}VO=|pkeX?*ƨQꔐf ޅ9Lc8r[k׃P(nܸ(mmmjzNKf^<t&'/zبǏ-ED!INOFRjS' ^y> $$p8? )06==ӝʔJ姟~z{m~x`tȉ| q[DM%P9r4St$%wѺBBJ:w΢#ۿ/"*B PZΟ'B}6և 0%$$p\c7[  R[pPrc'!&֎ֵ>ʰz>9v!a<[7ӧtzKKjޝ ;`3W+(<2{Cݷ,8*XXIII(bq{;y˶**-iQjIvA@L{уMvǶ )ĝ;wP{amw{P OĻt9l RK{ i~aZ) s}!JL[r󗀕Jl###UUUiiiXϱ`;,.an0u:zP>e~PH9%\4>[} G6 vȆlv(X.) ~I)I"/5m*y `TJKeMegoWg c -Hc\+7˦ f>v$^mlmuz+rDr7^Nljro,eH;}7SHVO{O{[O-r&#ۀwmU,K+ R[WEPH 5F bzV+ʅ}F6\֓B0eR YLJAmĦ)2nK, ܘ`Nu1:h(638ݕ`573[^|=XgI!R, >~M&-RȎ uu7q zDrP&$HaE;O& q BbD)rǁ[[ZQJ9V?_QS,RjkѨ yƤبnWܥ8Xi`>`uu$X[ %z <:;Bυ t*k*s:{;##rqL| :\frZ2GiP{^%fMQۺU`Dm"r ,*'O`BzY`i zi`8uHp!CRYYjr`بx'r, 8R:!8憏?NHLȼ8t5jMC Q~A?XbjZ DpΦhO`m X؟O@-LB~I_$ll/,-7%|,v~a?*8#6"JV@ /Dk[Do42ZZ?w\89FE\]W ,Ѐ(l΢_@2&ˊOrdƜ/XQI\ VIx({X=` !N@?u׼Srf RP$X",Rn )[DE-""yXz~wɓ63†9Fg4:w7+ޅ1j$J _IxBXUJndji'_Vh lWH$`_wQRTȮT)u\h=15,L CKcCc7B#VQAQ^rh~a~yey峕]TMO ӣ5GI.蔽y.!GIhO}*B<] n@Kh'&[yғh nhXa)tsXѣ'xAe>Ԉl1R[m}M,ԨJDW:eF5ᣵ(; [*eԀ^vP%#z!V]葩 8(yp Uwߵ?k^r嗇}W}>zyނRvج'ڲ<|f̮ +`iM*۸ Sy^ s#%VТKZqhv̨$KJq5 :O²cj+ lO5L6ˤ'fѩk++{}}>>11_7.^歷ܴ yaqA~zEeE~A~jZ/ݝſEzx ws8>聣p >z<Gg`P ׮!ǂe5b7)MKjYY-n]|9'S̸Tku#)U,A ϊڒ+iR5߈8 /FirӐVPrTm!9:r? [-"dGwx7wuY,gdه߽qF}C=>lftttUj32 FCbRb|B@(F7nݨlhlmk׍VX(z Xrp00݌ 6M3wX41+]6$[oRRܜ eQ쏗iBDJ.+$$r}N>1X:`,:uAG3W11:ݔ>-}}/h:*PX<(Wʭ6+əسgOyE(ɼ9s{PRHήND>dR6 .K@' ֮!g6*CHeVƖvE PZ*E_cgEfд8Q˔* ȟƦ:Uŧ|̓2c.E^J˺Ak&?ݩqKe#:Lթ^<9e6^poo/_\PT /{ohߚ+IIM;wxxto DdLĤ͹ W٠ / GBNIJF+` rLު،!?S)%53[TmM1pZTdAy\btQyn}s;:>"bOU 1\ins1`iZL*Q<ܝ{G4€τ@0b/l7d/ ?M-MNmO@On8%$IJ䑱}6PEDF,CQ\|kuxhȤf *%z$XzZd,eJY ~J<\MOed0+@cj,fjmLBC"*?$[D_D z*ͯd1m AK0oX~+Ӟ=yyR s)~îӶYQ# QLQHhRlE("$D,B8L,23;@ԍ)Z (ˌƵFW x XJSo^JQ'Z+i&Sf8\%W*?w- !/ƄL%F>%;9RC{K+`64Q׃1hnݾ5{?}H}0<?|\[}{= Z8߼}Τ %Lݚ1Q^UvаT݊vXߟ6ljN 1YLW]8`a!840`º 3R$jDnl^-`xYuԾHh[)nmT\-^Rj_˪9OhtQh7KW2'k5us@yM/kw+w?]}hS+oM <6Nm豍F634bQ͂8%Ʀzk * @=Fh 371Ohbz\A}Md̟{jo(ʨDF`4"\HX|eO%|bKowҩ"OEWmArL2.r(O[T \poWǕ nOw_^OO#MO ^,㊸Hat6FiEbP%*.R0Is{wP]9`V-SI7|RJ6J]!F6ܖ]),Rn )[DE-r;XNW inmkffb⮮SN}DW$$.5;;kU*jmm---gHJ`e&NGà644L=H H\k~~~zzjj4@*`i^iz  "2(D*@ɵ44L=H H\t(1DCZŸya0 @`@2XKKK L=b HJ`eH&i^iz  im`#"-FE[4 in1,b$XHHs`#"-FE[$ IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/settings-directories.png0000644042355400116100000005644712640736115025725 0ustar00ensoniceng00000000000000PNG  IHDR5 IDATxwp[W95ڭW3S3lnے۲l9ʉs93 0D""09$I/ym<6eɴ$u~)ԹNpWI A $~ $H A5 b$H A/y A $~ x< $H A7!` pGN7999:::00C $H } `Ed󀳠1\} kB!;H A $ [3l (Jf+H A $ [3l:A[[[UUUaaa* $H A7!` pcmm Aw$H AnC' 0,'B`pt3C @as>>>111EdXZZ466h@09 KKK<g9`?<{zz:::***RSS@09 ȇ <g9`<@ Ly@8Phr`_sH@ ͣ;_\S\K0*jj>ՙ?(  o2}x <py59$vssJljn*,*mSsRٽA8Հ is17?HH+643ƆږN;hKIM.(_X8THH<4ZMU]UIY (-/l緫Ն]M~,+&Z@" 9Ksüݼ<SRbqqI,$IC٣ s˹>5v;w}"O̻͕쌓7$@ 33 ܼ(wwwooo___ :H:^T\սLtsss0})G----|'gww38yw…O/Jӊã±8m&8iNX&*KE5D%@ TVV?SHxP*$`29 ;;E2zCct%6 r):D@ -gfX 2===FhhhxxxDDD\RR oxrA ;D jȈ@ xFSbcc$jݳ֝[ԦW? O/YXYP ?FDGUt\@L)C[Q<9Ј_ۿGpU*0kߜ?]K vo[S3ӏ/}4rpr9's}ge2;/zO&f&"M9@x93؈JH s`|魭zJaUUUAAABB6j:;;]]]333Te]]]SSP(ؔ\nii)t* Ў|-E[< }}}"4::T*)#AstOX__aZ^^ޞP(DC4ǜ S^^F'ss/5 |uwOF(ȝw{7r@7Wy7KJ11З Ç߆VVxy6b,3s3CcimՕ %fQQvH&:C@ ^s<rss:XapfggX,ʓ鐀 U*jd2jRSSpϵkP]a 9 ,H$L&Zh -..F=zikkÜkkkQ@?Z4D!8MDDFkiiϧC%y`?f0fF3elbo~s!Q uOLKem%V_IHNz˒tIBC`yyyXZ FI:soxH9uvuFrzp&y$''b1+'$$8''zeʹ"()9y ߏ] #뇧!|}}a:)0nmmvvvx9ڴs{7gӋ-532ȘHsZN:e_~Q^JEn r@ 朱y X233ژL&vG`i  sss1ͅg(JX!111X^^>dŐCO3=-TabbbwwwJJN #>Uy|x*U|A(b~37r孷*,)A[(fNP< y`蒒$P_udwbb:kl WVVT*7/. /%Nno>Kwpcq}ffoyX{ʚsEK%h{Ν?kcso֛o ]@'ϿoMo3\Byo\ <O?y7>=I9@x9h9̌N8͞na'B`aa! 00{XY,ޛ7oMgٹ݆a<&[1B~eee]]FG4܌"MPY\\,pGjjj*#88xccťI{mlk sK$aW`H`hWW:;C8! &f&ή%eIJM*{frBb>Z'߼| cG~6-3/fFsOTB#B1ϐax@ gY2^ (--|geeedd|#++sttC:=[Rbih\.^277[|p8RRoc!T*Q䋿CB|&>䵵5Wc[ZZ9 !N0OV{t賍z:o3y{ W4Ɉ˃j ?!1!666,,,00ˣExV_jg,crr6<",44$,,400PXXJ6<3pP>$RIEeEVvfjjJrrRrJRFfFiiH$:vn)S b@8cx|x8l]_|jRvɔ2@ <7].e䝽yoZG OĒ. @ Q/W1)O yHˇnUd7 m4_xѣG+++?ktt\z^dmm 4ǒvVccc?×x[b{uK'Ko,/~|;3FFFD@ O0Sen![uO85bhh?lQ|?#Sú:Jo'h4mmmP4t?*:"?ibc6nMwu}uv^v D y޷Ihwl"?q77&wLLb1j:@ *[Fm0SC.O_*eegggffJR,b,B(ɝNgdd2*t{~:;;a0^"f&''#TyNNN(":/, F0%lK-Ek׮%%%aJ$ctܑ04=>| 喔}YO.aFk~uFNODtDdL$n". #p46jzGU(K0~:9':*%0.-,"?*)(='9;' xx{0Z Mۛ븥676pFfkgw5DP_ף-j y@!{ ™3>9>26B=QijpxP73y,,.1[+Ay^V:<<_[VN*VPU~zGGG\V ?@뱳3oa[$667<XfOfjjXKḳrlltzfzbbBӣaXfѣGsssT DbLwmm-l~ KVz2WVVQ ]ʍ[@9A HJJIr0 29c4Dop0 ̇墕A&PX(C1 t'77wddy*SA8tzњnnVqD-0JptKNKgfgъ> k77ףc汵mYԙgQk(KSF&q6Fh;ZXhleu =F7u  "(TzFUܼ555YYY*dtp;0@ ssx$uxrqsVV 9FjXYlFʚdƌ*P$<+BN~ZbK?hX#<<K2VhBr=>^@ ˃bG(]LJy3 4qz}FFFgg!yb1v0F C"u@WԠcH}Q0OTb^ވ舤$5` ~o?o HN8lܣӸ UVw# =zDy|m>;+d`UpHpm}L.)d==0iݴl+5191 0`|j 8h5hGye94WQ;VuGFW0@ Գ\rj{wKP khu 5B-j ccTh4}5U'1,)))4 3{kkkaa!ylllK>Vk,絵h&G&---T+3i0:7R"0:\I1P__aSjllDyyy@2uO8"fx7wk ixTxAqH&O Udd<G9ør j] NabJ_Gnq5NzgHyp}˰K!c? NwLW*dBVb̤)vu)T=DXUS>qKvQ{SY CsN %:yhz_'7xTZ1$,+q&d䔖8:_q-)5I% ܾ{;53yPr QfSڥ+KV1ZF;YCŕD__?ߦ֦ygnU7vO[XY5ASKٺ{ 9 QVE%E8nSS+*Pͩ"- (R JWb,̣ A/ZZZʾ =\ThͣlgvvwR e38 y.\"Kq_8<Z536v8zE͔nCYU ^Qo)dr||z##S5EW=3?@xU|ypYuuuujFue%QNhRy$^zy<X}#c"cb}|<288TƧ,h8@G+Ϙ[|Ffp~Mp8ښ2zqIQAa~^~n~~^aa~Ii1,bd++/$oqq$,//{yy3LF)//Ѷ1!!^PN>m2qqqmmm'0=kyӧ)))/yhZ!UH%r @ NEgOk/SSsG]XXs`ޞdK]٤siiMq!v x{{q\$P@9p=[R͹9l҂q{جlnn4FGGa B ,K*R.H. Ow^YY]<nT*fN Fioo^]C=?i:NݥP) @xT YTe! Ji%[ۛKK|/7/FMLL<pNc%+wIIIqq1F nllLZ- S[[[XXpOSSS^^^UUUTTTnn.fR><k<`exE 9uuu0LI,!'DɨD1(?@ hhhrrr1@Bac0h~lEUļɱo$󲻷;4:'Uu~eTR^Q_Y^Y\\y}O;娡"fNHu`}bb"rsXYYAiD!++klllggs@|Q%P's@>磉E (@[777h aZZFlq<ڐ *--NHHK!1:\!wgw $Hx9{(]UՕscs}=5ebbq޽ 2ߘN/**Cdff.//A2lZ- %%%...ȉ>v"===//Z{8:\ .c7`hN]2)8j(`/BMi*++;fa 1KųG@ lll SJYW_8:6dA>"-3<ڬ,񭭭4 288ã #5&naXQSXX/9",khh(77cccop8 Aaaax|<|}}WWW)vZJKK7663&4hxک?)!RPR>84)O y3+<~G]}Rխg'''C#lFFFz,Xccc EYY3bqhhj$ zx;;;yh[WW&5RFEEMNNbZ]YYYUUuT/(@ ¦ar (sitbTJ}յ5@ +`ڴdWN{X366Q@Z&QTTbP]P ,؋VNF%(<> vt2<33}Bxp0BR㥛_|ERjRFvFJz__@pKsx.UB0|.e|g-!Sʨlre +ƶF<)Wɩ :P8HPˏ~ל2UubfTdR`LJhDB@dbPJF|ZFjzFjFVGck4unQF~miyiqiq}s58:V(`SǠ+ K kkQFGp` O۷i^2MLjfqڱ(}8 q2o`hg`bzoo+UݯFffNuPh_rpff_yxT8DeBPgaYYYȹ{۷,-8m N.Nw=<߼X\ G g}e]2j^vV I..1^XZcJA!AVV^]O.A# ;j6v6GDD63͟9j +hhH<8Zt.Ӛ܃ҿmw#/Y^Xz+3D;'nlnd2.Vwc$G&_wܹ{GQJd (ɨONM.,Ge9UH Oq2 {V<6''>>kׄW*3{:&xZ_x!q,^y1w>`S(ҳR3R*92akoq`'ήvv!!h0VV湸XYzS4"%=9N.NTU~ʪʜݜQͤ$\nimyέc恣ezn1zxGg8`eyr.,BR=}|ۘm8\\5>5nmc )iebTQIJ4Tsffn AJ WcXFjɒ7p/\(cB[TuY^;Ix/d"g(ȥT0| )4TLI}(HNro؂w9T V6`Q08zHPCeR7ar'K'N>(8k֧N_ǦGFG4vf~5#TAC%n!(zU.H -KO4C,^6dON/Sy;'կ̷6i/pF2z)_~y4662̔JBzr-loo?zkkkGu_yh[^U^QS!y`|vq[sGhjUS)@ ~݂ΨCrW_ w-ELoS[\Q! eee"hwwJ100P]]u</999"" (g(V؆JȨ.LߟFQ?/fƼ_mzrHU~[ @;;;QQQP>>iii}}}w#<}j/KqL͞2;52>" :~>垽yt[g}j:ofG)´O'yO볲 WaH$zR!%~~~9ͦ:@,`KBCCWWW)󘛛X 188h7((Rb+y~w_٫$s'ҧa1?){cy@yI$qU֝"KtMtDƤXx|x)*cbbb>DV P hnn؀a`TWДL6::*<3p汭g7i5) itX-Kqˢ%ixboY^^^ZZpDyqq lB2.YlnnnRM=z1_sh5r\"@xnD( ?#itqoE#MuõVõ5”11/+^g"UHWݫ%sQk3}9߷2Y`,0Ƅ^¢J:Wf[@ <7{{cc<Oݧ~̃lxXrG$H Acsky0 O> I >@8 ;l>[iaJxmŽݽݭ\g/WGg߯(@ '`k{#AǂCp4wMfyG߻{)(2EB ɖ)B clnoѣM"%g/<ꂒB2eŴb݉]ޟ<FEK䒗n;;kzÃ| Ǥ6s- :855QNYT Sesc}}}bbbaaauuuii=r%TNq9xѧ p,>0`bf—I(4.e@*H(1 #14)eppqz5]z%61V}W*yN%JDH _`Gm3UU\ZDx|@TbpXx\`|JtbJnll`sssRDLJs1\$j!:'ɜX'UnXi@mVVV͌mOpXp1+[ߺsǫǓhGph0ZB/.+7}l./"4"&lg޼} }&$'Y LښR[7*k+~c-O~!s؝Q$uE>>>8 AANNf99u8JK[KhXkCcÚ~ m]\]=O44C;Xl*%#3OtMx XSsRCĨcmm xtx]7>m]W\\L zWWWNN'ޢM+ îg KJJCu^8<8~>)m׮_C=^I?f[[+k1 EisW.E,3 CXTA$ ;gfg$zP+بJ215Y^]a CAB6jedTDzF:fP*&&-,,}IOOH%R1\J/K&NOb x҄rvHc{{[,Weյ5UO`<9Jxx8euuNd [D=111BpooOb|%))&f1+0 j (rQQQSSSف^(N<:;#c">[ L`mxTT.@ Ӓa'zOo?A4o޾y׮6v6ꄇFK.sKs1PB{&`!n1\Z]yI3 3foBM(/rhck#44`aiana ϰw x8ff-./646@A }YyYeu% K+Kii99UrttAMUMR@="bai ~XX1VV&YHcbbbPʴZÐHOQ0($ 011H$0HJ骪'lހZr||<뻺Z[[!hr2^;<88/c78 dg[Z[R'agcW3e8ǭ;bErz50B] nM<kX<&15Ѱ2x8ZKNTa.l?<u=":G ϭC>sRl[k 7]X  LLO;ګ4*M//,/HdXѯ/۩{)i)Uh=(ʸej@ x+,.v5-,ۋCc4^ՉDBFy$RiCCLVPQM uc 666**rssW(0P A堀t:41@ϧjq9TO㔾U[\za IDAT_GۥO.4`Waioo?xJhĕo S0[%>Ǡؕnxxy3cA]✂A66a5K M/o{sO,.|Pr#+T; 'oIOVF+=;nu7vADLLMfglOSܽ(er>82(I{)hT`^A^*@ 9XSߓVV::|0M&4H/(=6*z.B744cʢ0hMii)ciii|*P@R4tnATWWxs.FdNA~qFEEffWmB_6ݜ^ u@%u~+W6:8YZ[FDGP{S]lbcIJ g?Y<0p-1XѯLM9]]vLCV1XFlq-ԴT'g'_~^xxA/k|jaZ7m^3ࠑ񑙹ZkfVN h@5j`-u u vI@  KK,css1333999==m(!`pc|N@P< GRÇ\.W.omma Z===яP(DnWVV0"F{ވ~I wYw_tD"qxm!겱+0$rH&wa.Fqlj,`D:zO)29;ar;K'Ι' PpJ\/;%}F[MiCcC 9pt:x n}}Į vpdpzn㓳}P35;50<0<>LuN  ˋh6F tb!lVZZ h< T8:6%Inn.H[__7|3xISRRB0 HX```RR::###.%%w :2V|c7L9(UW?'x;I$@ O2;?;4y< JyɁhAmmMCcֱ&&&4 u"n t:C%갺Jm3Q?<< dQ֌bV mww΁bnК[+^wspLN8,a`Zz40)@ ~݂ѣGmVZ-J!#rБ6jhh@e)D?wA8@ ^c4D\PWS[U]SYU **@9eN{$^nQ GF  O sx-(gvZG,,,¾j:O- 2$@ <U(+`,ANqTl# fr@xnD xG-gc)EKR'jԼxAd>w /HT/z(lZukk@ӯ'‹S?ݎ3J/&||(%\zCY?yOQpOz̓@ ?g`QWG}Wop 7|ݏ8GY83eDe ©r\u^9pkm,M̓L-?bzq/yz?N{'28@ N30̒";wήɾ~5^՞^U_}>=$|I/]SP%|r?b?z:#tu?W I1<py$E~s7mbRSJccyy97 ~J>}I@W5{:BǗy_"saEmŮm*{>DαW"[i @ N30Hy'mŻ6nn@׷>|Dƽ wΙV.(-{rOYЙ) F>j"Xᅶ6M e 7"C礯s#*9yHC?u'_掞sKVU9`29 @Lɩ*Z% ©r6m γ6aQY9S*}Cj*o;^bH͸t4 }O˱\ͷ /Sܽ3:%|ZV`TQp?OY1tf[܆H'CGN<8&|~4Ý+v=[E}TYKsK(=-qtwUT_\&O[pw[r<N@D" |xڼp^fDZͳ /gH+MC޻p.QJOʨ iTs'y 6iHxc*(6Q*m& 0O˙!av5y7v5D cb*KgXQ{QB`EaS-譖[c]et*#<[~wKac\~clN]uԧ0̧[$(1ܯW,si @ N ,o`{bja úiwG,T2nGyϔ "R##8:4׮KeFӽw~t\r`%jy!4tp="~{&A7 ֖JS۞=SdT C/U'+Y'Mb.@ Y|%'15Ϸ ]GB~v#*(V5ò$VMGVPsemAY!9vU\*:ڨ⦤;~8]ˮ̪eF~|MT\`I2?* B#l#@?-T?5|l@>K>uVΩfJjɩ*fZO[py1αׯ[_,+s܎0|>1Wޥr[>Bg}Vay'~KdZ@tYEl^m)JOMpi5Qs2goSɄS.Jb@ G|v+.osQ^V~**+QISm+J!Js44Ncl&1f!xƞ1^Ǟ;xx_Į1ֆ0#tyϜ J~ߏ|1|'_)O[ >]O[s$m>j_'p;x.?mBt}QXq%GϿ]xp)O>8]HY=ȼRAQB.6ިVTr++8KT} n3?}4VBMty@!p-BaDy@!0q< B8QB!L(!&NB'B涭,WyԻ@y@!\ҝE'l])JXwIVmP3jFZvߋB h4B=5Xt+BAoe6_P5r Ñ0 Py(JsFy@!\m6#*E3=>vߎL{uxtXUBjʃ'lճΘ? b!N 4hMZ}gݻwU:eӂO!p9[p/~lagLuD x1ti=ɆҮp]5LN:Zy9)i-[QG]0PBׄsy^_sFⳲ^k>GW#q/6l4]H,gT:51(mߺ5m[Bk}uџ3<|I¤<  c5q,Wk)nItN%L<9v]תk^S}K 8e iIhMPzXpt/3}gS&55W^ $%y[/K?[5ߚe4"aWwׂDF ?$yT%n_]cq:u9iKos_x%#a= NJ2_R_X*iqO߿pr9:6Zh2C39=ݛ^T\RL$d˗i FWu;2iwB5N8}(!kPz6G-^SCSuu=jRhR+W-QYtG{\ܝ,Rx&kl>_}`w^>19Oo7m-_t3c& /K~crTk&HJiaQG#[n EƉ JCѲLޑwݻw9zddld箝^ݗԢ< 1)]AgXV]-ϩ]WfT[OrF˵6 ]b M:=YPtJ5Rӟr>ܗ"MU|^}NĽhyo)Gv7TUR2s85h:Sylhj1d+g>># KOG۷o/c"Ts/Jfڬ[ǽl$B0^j7Y<%jvkFE>WV";]cH-sy5|U(i lpS37stV(^u*sG˺Wsh@:b{C#Cc7l' yy^spN 7VbӞ-C!Nsa#޻oZg)/RR߷o.ʤ"XjU J T28*vǺ|^+ǿ# ׭k]Yӎԣyx/Ё5a<:T[$˒Aiɍ^@rfh~[=?hyXI㪮{Ht RIFy@!\Ryx2Hk)•" ?[&֨{y+u1*`1,tPBWn;5 Fɥ1+B]Y;FFK`;XVJf|:(!P,u4[VAƨY^.+M]Q1 +@C:-x;(!S;ڠ^)aƇoa կB'B!!ĉBaDy@!0q>}i <8xB ;s װtRHHHh BBBbyHXR)$$$T U UVգZ焲[I=+>3Q555׵(Z^ޮsᗫ?g/Qs".)s sW|fРn}.\T+_󲪲o_aJ<~JiɋtvB.F[j}\aDLgf΋s0ul̚ޥPlf|-,*lQ䑸XtDMQYx.HXD)r rvw}0c촉) ֶ7ԏjWUW4:.12ҒN8|0Y!>{rڽ Mih}Rה&!%?#m99D ;ZANRc'b0FkR~|'26R3b4S٦lCw;) JAsDDW)I;~L (rJU X&N'lzq IJK\UY܅sX45nڲ?WButV11ЛXz 1a\r 4yuC5>*EAIM`^~x 9gY_YEQ sTPc$d¦V߸RW)PC\RYH[mw`D9ayzV)wRO(A2;G;bJUCGݿ31u?t `)lNN$8Y|@S[{=Or!>-ȅ~F9a?,T [?{=~8J-B"Bs@8%/>5)$7Yn-6YY4DdFzDJML?!d@L 4cg{v6$1կ~U h"8 IISFrʑZG":?IAYu `KԗTo߹P$H-,IݩU}98@3qoUDzs@021S2y t`>acgm܏3?,!YFMCMDZohΡ#I!B B'N\*H+Q?Msm vX2Ed": "B E |L"d! h?& k 6\խV+~=w[x%=b)4B %dp^Vs,>5h>C1!d(~{|pAIAXdX\R1 wP\'nSӳ1HH`MEFeX$'?nã…16tG"mʃ&Ħg ?wFw&Noa{˒hq2-+/㢫뫩I'c w^폖DnOOĝ‚x) - L4ֈV0ښ B#B\@Ғ{2|2nyD3.t4dnsmqy{sFNkSVUv\a`1]t*~5֦;G+6⌉a)8x@oDu:UU2?/!\͑x$Voo0@ 3'動췼)C}|]=]I%X,e67WWX.̻-mqqw!i&k;k''}C^'2#=Vؼe鳧?sqNBBX;v8uթ ߛ*];\Bކ(H ǸUabf"$Gb#0&abCG^XW2){G3ΐaL&_3&%{'{${￧0{fؽg7s!BQajݜa%a ?!9AL8 Cd{ޣFtt5?0V\,3165F>xZs [7/șޱ.ӊ[%\x7xwPö!lH,-i1oc-NQ2=K(ES{B=`ڇ GeKCPR,fKK>0w◚P:fyzRxl# +WBs$_0Qw%04N5y1TubJ"6{>+}#|zZo~.fC!^0kz9oVH4+ٝx}5l˚É o*![ M.\`ko CES@G4^w= ӽb,P\#L/¶t "0ֺ[ň.].HN) [M-L5\ D iĆPJb?!{d2sr9yy˜ y` I({ (H5=( N 9Sɣ#opр%%T#`/ptvdaliL ~~L&}QO0%[5ޘ {K#"҇_R0TvrxCX,FWJD=K]%;ӾȥlS!Άc SOb6Bvkh]0b&`qɶ0'\@ݑBQ̸.*%B oSR33uW d_ կ=R}a󔂝ю^>ƧϝE4gnŧ?}**J53 dp^ &/``Н&b]O&)+eCfETpxd' *:SJs1*m1~=iHD- egCcQa9)g/et5圆x*^ߢJ`. UkLO `cI#r722qc pg╉ߎ]L% !EܒpjU _sGkaYyx\Ok[odd|:9 9!${))lb]:'q5fR4p-*k4hEN.N BW8$xNRJ}vЈuf̰}}d,T lx纟ϡL&'+ׯlyoˢJACfɹt-u'SͲF*-i˻#-B=EMZve1LlRZMji)>oy ̞0Fw8]^TF`,& OX0@%"+7cMlğ ?M)X3$sعO|LF_DZK{ +agչ{30"AG,BHL_kRdz&:{5d  5g%gu<'*Fs=q싓YF `YI S/>%ff̯H%XYxl_J' `'yQj  lG,PNaB i`֓<5Xk5)5 &C#/)蔀f|VY4! C{ŗn9Z`bn2ڿ^-X شcH"a8'K9545v¥ Z {1{)a[ .iNvO{T#ސ>c0`ъ])%e!XCn0K c7bo6^PtzƸ*=3ƊnukL v *E Ӎ==3T=aq'!5QLⱪ.ͧ$C3Α۝#YLtKW*q,&zŧRB k)Yyaq Uc5[ =  3aVnPtiOP~Wl@A"9c?xa.JYkNA){f3DqEkͼ䪾Ҿʆ e(ET\[TI"|V}oB52E#&nO훘UN7t f$VWJ 7R&GWFwW;f:Gg{fۃ7nML(j;Gۇ kjzRV|*%$`.J[Uឮʪi蹉LOA&nkdbfprkxo{F5\>8P WK)2&<&}J9;588?zTʄπK)"1-F5=Ҩ%VvFP R:eoim]AiaMY[X]PE)3+?JZҕ[QWQXn\\ѩm/Y[ eJNJjN >[S}P]SxXXo^vFYyYeU0c_5Jg9:~ן_|qaX*ܞ153nt),*уG;&oM~jikgru(;nNߤ{1(j&&=M+jHOnRv*GcOoϥKFF[Z#b*2#mmowt#Rͭؐʞ?2:¼woS$ U+QeFvlᑜ3Ec9ʨBKv^--+].7+(EF~d`765qh-(,@FGmlm=*`ffv;S7࿣#;wNxp?rJjZ*DBO_?_(O+R +]LޜdVVpU׀ɑ._Lg ^ IDAT.^srvTw9{CaaX4AP p=|yE9R[ ܶmSPb2%ŶvP t#錧'f{>ٓGbY@Z)_R_^]~~+C&;3;,NyWV665*ZasP ysΞ;SZVz FPϮVcj&mE~A>ԢatlB`㥦Fkp 0`9>=vqAx>8Qcsg?ΏMq#1!8uT|B<1pÒT wI i9F8745h/rrq 8pR~VvUfOŭC B&[?܊xqs[PT@<6A1#"qE:Z3!J26.O9wބ 5d +dU Cs5lcÂgwl^H,?,|}EKCKCMCMyuy~q>rB*kdl]\^\YWYTԦjgJMgcNw}}^fscc)s6!.(Þnxplr 1<@ O0^@6[%;6i_p;:9Gr0Ksuwmik!9rԭ) "V@#)%)8$k(!)aj=rrA!A#}ݨ'S7φtt<mrrq5nnh4IL5JA Y^76|~$ouMy2 %$"6!6-+-$(.B#8z .^R@!Sy**Խ|7t>>1l9 Ԙ޶;3h069Zo޼ `\][F@TG1ZWÜAĭ) zAm>5pogck̀G-&+cci„`Цhxx0o׍WdOTL<jR!& UkG+2:1YQ]Ͷۨ|#,xۯRtEgo' cEKGKs{t4# TTx_)h [ّmuo7of^7nhy:aOj@ށMFV;r;p0f^UA3Jl$Gbh_nb~~z'5n]J/+W)Jѩ1mll8L=9}#+'IXD`gw'xā9b`mc呓3φNBS04DMbffϏIJ-XT;}))7gnB{| _Qysv~͏}).-/,)$'tŅhhGv`t|^}i!:V77Λ\Skt !vus%Y|#,v6U j֋]⥋EE7_+;ÊG2)K/]3튇$(&nNHRd%ëHwRT~Io h֊H[Fi%ݖJR$e& KHHT":%EԤhhlyE ]_y/:WE _V._(bRR^ᮡ6AvƋ^ټuȋ_x'_Xo _$K\ZWɫ0|47w,G48tmc=R z.k%$$p;/GrZ -~)O:Jiri!s^\ iqe󺢉GU黾wZgmi9lBWL큙e>1zٟr߂%]4*t6≟\WXkOt6p8Qs^/2tLn/x4t-0p,j4͝6bOpb{=g=vG'& ""H~t)-uCljg<g=?;ġoDHGzfMi.r㊽$~Os0pt'^#Fc0MюS?L |^$ m+3uimfaQftO7I59&$sB_žF9A<4ǞY֢֘GOPC}L{x#%>k8~~ƢcjDTGZLFkF]aHT'#k@Ze}i.ۯ==*-=":ӻե{ %mT6%F'.[⊽MͬȭL綑91e겔 ;8A^}\swyY[{•vk}VҜZؘhrTުE>!daC/iNˮZCt5ёu>Ɓƕ.ua]А1yuqe9-=esn6ՑzuM)RR%طUVD39?Dy8(tiﴉI/I1%64 f ?9^F=w ?v ?eUGqPac`{Umv+)3m;D> u7krpJRG{t"$>:]ucιȩI6;b\)a\6$n8j>cQ_pBo$.@DmVWY]?B ;{"Ϲ2tyk l=jC:T(z,8~`b@G7ĞuAc6:m%K{j%p}rSԅzU ZiYUaY95II-qޖ'EM]'7'YU%6auqmt Ȱ=M}]Ҕ>ռ0S3*=l {£}^"?$y靾0{jnsv~[ˬ"Y{OƼ,auQH~ɻjcm,*fuyӇREy^>pmYfw=D iP.,[o,3p<] n6 x8F^ LmK. :hݖ G㧜D_9&GMB ;гo|SXhϓ$YTUAi$ x n#@-*:82dKvV}S9m6'Y`6ytʠyY}κ p>V`C2ס#úO!4Ӊ.SNSJCκ4 ch,j-}~W4g,4'0\kLs!?\wWluby|=P[VULiS$4tVOj][(TexCmكf,O"HDmr^4ϻ~,?V.}Z֔d%<s?]/T3˜[ayzsIcmMf \pݳW X q?g8`Ֆ1k8`n)r>㷩$$$V;RHHH,oՂ7j,oXx5R)V7z{x]-55DپT+᳣U׵p,US{SmS Ԗ΅cJjjzz&'WXmycQklbՌepdYN(78:7_VoftbMLvM@/|q>X[3˼]>z߽wOѥҤRnVVܹ{V?OI;؁W:.?⬡jZ-*jC{wߡ =B)~vV<|P^SP)8wth]rR4w4U{Ҳy}" ē;~-)jxQTwi,iJXzxxvrzFWWg@?O²;^IlK9=ǫ[o Rܾ{G;dfzfmWQ:::z+@+ZXFnf:TJo)J23+*!˯323x+*+EcPw'SYU]c!`o J/K +ƭ9ffnGD?+5<"Yx+.=у/G$ hc.##Bڞ8sĤĄ0[[ۆѻ&!6UQC`hjɵ6N9VS=]"$?M)oUsHN~Q|Br\BRl|^V-S}/ӽ2dydT7ԐАM0$`RQMm5RJ1{g5Rx𴌔ЈvEV R8˰=`t]]׮]ӳ3g<Fx^PX@DM@lWg32-A=/?/3+L@`Ǜmi]Nn2ӻR(J4q}GJ"ew ] D)~9oԩSxAJ۱1j `ChooO--d 7lpʕZRi*X _} 3KʊADthXdp]c-a,;eaKZzҀdʎ!eeUeo_qP60]ƖUAΥCzRxbccV@~:%b/oniҲzԡdegq1usϯa|r $h(E?Џ2.T硣wJP_ S,ceʃG#HDt.u2XFQJv,qD)t1EBR)@`=\z OFD$EFV@ib5$,J+k+.IWΞ;{sϹ{/{wUaD_nt> Kԓ@ޜmP)P48cddarл'O\| 'evqRj9hgae\ɪ#)>$mG |px#6TC Ǐ_t'M[M>Ѣc!o`Zym9 XjzrrZBt\玐܌[3͕Aޚ{֍d(L~X d:Ĩs [-ⲨR i>xzۨ(/o/8Fwv Y(z'?6DT~2 !gpU '=}=L}R-=Zt,T7B)n܄K%EDEWkm FQqLcNN*)9D$Sɑr667 .e J182h6dޞ\sw@䌍"UTi~WW\ZAum5*ҀPrW^Y8$&'q}}P"Zz +**EGFv;Qc^ᑑ~QQi)<],I a5Mp4PDFG<CPdIDAT( &ihѱ -R)41}ν;~f%WVޜ9uk8/';/KlDL\ [3qٔIܢArD0D˚^T)mLJvtrtptP3C}C}nߢ2Ήx`xuj(G^HVUbDt' |*E{gwm٭JHmimOomk).)LIMjjj,-/]/>)^WKiU&.vt-<Niw7bޣE5Ix AARj+a&- Y9U5whD^AneU zR)@`dd-yТJGfnx*ESۢMFm(פ0\pCNRcAꚤRq tX¿%meD$+s-TEKKG V<"^X+o`kT:مnL _]L@$y@[GWXƧ] yՁ"=|6(y+M*Ū[YRjZ*@jk.aՍk&L=˪X[ P*śΞNv0Ζ~Y#`Oc^$?KV`A>Xx~SC*J!!!}z,Ȳ \vqas+Ž{FGG EEEEFFFDD",e a7?R}уݻ755uZhZ*!AH%leljW B -BX@ D" ]4Mh\ F_.\@]]]---B -=P!rE(A e-D.@===W$ ZhZh Z9"AK沉ѣGHA許v©A޲eg}/%X\MM۷>:-AAAСCBE/QGGQQQ PUUE?UI%FAVV>,zzzNcm۶tW>LW\\F|L*D<r=Gl"3HCCb3* a B -HZk!wpMqBX %q74@d#@D| Ωtuu=uꔘhA Nqܟ]ȣ***`/+88x||>xP9tksQOO9 R$)03T!XԤ$'!6,}ZZZaaaDD:'`Q;}4lk'''0q\NOO?r| 80BX0v?sḘhPZhYǨM1 qA(C>RSSmmm B[ 쌌 珸>m]]ݜ$cmmmPRl҂\sv{*))Z:::C.%#)#L FyϞ=5킪;v -544^cya ΗBN.:Uupp)!B;sRPÞ*EH[a,p ,3׶6+4J(%DNŅ Tcs9(] ..!O!r(!9y-j;v3[lF-eZhʜv ! An86ɓdUd=> EnIIIV<:M)´,; r'QVFVAI "U{DD1 ť:Dct:!ڵ +#G`:eee-rh 9~!Zo Ñw)@X#33nt ZhNL>ea=M -"9"!B"q8`Dx-N N_A6Ex(ddd;C 84PQQYHGXpFȓ^w^MZ[[Cl۶ \V[[;66F>"UæqqqBp/b,dLL f>Q1/N,0&r9,!$}q}=f!l /D }ZGGl ;g?:F)F5-B-yL){{{EEE$ xEXnllD2*!9v+X" h8SO$`ȴHXw_ZZZ&x߱p ,7-0ܡC`Duuu9xX Jp/( " 5Tcpc[[[$Kb`jUPjp円dUUU]`_ i&GBޣi3-hGlLB=F-D IKבZhEBzzzQ$BܶCFq wBނDe֭l$** |W˝?Zgs\Hf 8@o"X#aS]{0111%H1! &?J]gdDOX]PU ?|)],BSXSv!E%F 6_dD. ň5KM)Ga\R;#Yȇ!H^ 0&O=#Ŋ`Dch=B˷AKfAwF! {8DKL7@l|( ~HCCC珸D |SF̙3sEdX˞gr͂-vO1*(H|B -81((( ٳ ~{ucߴtfB -l޼y޽'OD߷lfiO8Oq7pX{[7|?m|f}}6 P~<ںa~>زaÒc>پQd7)nT䰀nسF[6(qX6sX=U9,` **,*2k˧8,]v#g/%ƽ[7rv8ٰ+9֖?mȲ82,f6r>fq>bɿq6r68ﳶnwYXamyk,οؿcmF,oYظ6rbq~ :kˏ6p~!k;koS }#Mӭ䉶_Χ! | 2vKJIe/yf3?b_?fH;, - `?`31~6㇊ ?b3~Nd?eS,'7~ ƛlƛof7w2~&¿2~!51~-Eƿnff坌_0M-YT`fxk3OlƟQ /l e+Ħ+0>d3>Pd1N;2OޓelgȰ)GO[PVd9d/fȡYƧl<MeE_63v)lXfe3>elg(،10؊ ݌͛ .έ  6 ,- ?f(~66;e3C7 y㣟3~`k1ؿb&C'  2` 0,b'Ð_ nZ'ѾȋJh1RaE!¥ qU~i~0E((-*),-!/*<?!7*4{I7 h{V~; K,dgǥIp Y4D(JvhHhʋ*, ۨQ¶]{91ej. ~r#">߹kuF~F~I~MSP$|U_9%9{PD$5CR3D+5CRωVI9*I JsUzNJR3D+5CR3D+h J J='Z%D$5CR3D+5CRωVI9*I JsUz*I JsEBJR3D+5CR3D+EvsU!Z!Z)BJ*m!Z!Z)BJ*YjhfVjh*RқR3D+5CR3D+EV韤A/r*B'ZR\dhjoݺuʕ˗/_W^v{7SLF>}tK MtD&wq t0u/>j6K<쐺W'ԏk: % WʷKJO&t?Wz4JmVza145 VMy M"FU g*%ڼTsGv[Km$?SdeS@<4 9E9s*ث ryf6`#୰OSOnUޯ\PT.x-z0GP)ܠJ)'QRe@QV_ %##UU?RdpOT?EYN' 7T)HV e曪7U?*xS6_2/o2WY鷔UeFsߩ2FYmҿWeAT+YWf[22CY6?2Q`E>Oe&UPYEۤ?VeID;+3ePVa+#-ܢ"mҟ2?Q`nSeʡYϔ(0ߗޡܩ\6ݪL9 >ޭTDY4[ܥܲMZY w)022ed*l_UL}LEyOU0Uw1*G*ǔOie2Ud2J~TiLr.S/L?3e#Lw*Δg*Ҫa)3UsO`S̿HC"m?6v$N. ZrͲׯ_yc|jBv{{٣5 i%+eL>eW*s 30>cgfm{&0(("2R 0"Xh#|CÃ)D hOzƘ{SaمY2*WdU4G wqwI!;=/- .6%V8Xݜ __RVvk0l$';RUEݖ.~H݊+0ERFbZN|@²P Q9l`jiiCOO'<<Wrcw3O3 ' }?}I;u=U=ing䧯r@ᴟO>&~z(zru4Lu4 ݵ̩N݄c.VOeO>`auOO e]=[u+?=k?}sO>`aeoghnӱC'IO@]OONݞz]c[u'?=g?};O .I] ~zfvN<W٪ɵrp1+Oe]K[uO?=/tɵu@OI]˛*Y۩{x|=yV6<=OՕkoypIgmstѵ2Svq-4xNY+-VZ@Zgjε7 4k,&:<3}O]+-uo=>^K(6/!#aqZ-_Ͱ7!&Ƨn5= *.,Y4222$$&3+XP\TTҒ_6&@qeQTbXqIG߿?5utPǧ䋀/VfUNݽ{-$m i+[ܒ:S[PDWZzJhDHxly¬ O\'(I[(Zߜqg.]ใ)“6vVG`xQXQPIkysGss{S,4775d@5PɆVz0a&?Ƒ"[wn޾31uo)(}MK)ĥzx>xx`/=3=!9\N^ԝw{tRT^I]]pr>Bc[#8}۷ Phn;9XY]e˖#G(hWՁr*`v$O3C. 93] ReLNNTSsCfA _."]]]MLeAYY酋[ww+ -]@I+SX )G*Xx^!/ENϏ]xBRZ`c O //*JI k=|έɻoOqvw hk?EmLrfY;MLܜ{½;wO"54$gHe2 IDAT'+V&!# s3mXYO;nOo206LN$ $sH)=W?퍩9`5PmO_F)i] QEy}yhl BE͢5`!A6m'Z$^X7NMMM;c''>|DWV!aIkkkSRF\[WJ0qk_p'鬊'WA]~m06>&0RiEc!WjIٸ;=SH3L!aMPHRBAYY[7AHg 3E$Eْ^ʌt'R:pwTZFjFf_:Osvw}(#?+M-NjsXLN͝ Ŋ &Eѯ|~us%zz1AߙSTx;G?޽qƵkW261feSV WKIQ}}>xII 1=1&!:.1߂ J$h*zLܚ#|ɳݽw-<*,&)_Z6kIqy_{~Q>~N F%QIVAֹfPӟjkl567禯أҮ];CCNȄFڹ؁mm M 巫hk[jW<|W/(/d [-5X_ ޝXT>|ɓD"D@/A~JN𠑑;ܺ}\"FwXhdV5>寨319==X8tW=84_TZc-nئGΣV@直X͑egFƄ{xnʼȘ{bI&PY_6M]1z4^vV1EB& {wO0QV]f4ݶ45eeXxe)㄄]vٳ{Ϟ= {Uخn5M5+kV3G`/JkC`uF~Ih)}8Ͳ=~ٳ_v#6Xp6/?7ЧXԖ::{zz`Ą\@PUUU__сXى؊BWwoJV4<=$ݒWTb,kT5Ty&,2,-;|Ft[g[`֘xeʨ]W1ddaW kFk0<8<7ݱcPo/AO_Owo ;+W|WT ̼?XBך[m}9>}Q5M?憜,֔F8k` JNؓ-T "QL]]]lec]] =}6,T)T5V{FD$EJlaAS>[kIusupo`p/^]]tԼԤ$4X6Ok'Z8neCr|jfJ>?wqfeS(1I1qa1a @="p V6+SWWۋ }}T%NBCC=뽲0FZxQT]XZXXV]K\WѮz篥Xw-ĉL(Z.pUYMPLd ׬jXI+Ї&n!+I3Iktd䦯x}z{DMZD[\M{,\c{c]kv:u!-5X-h*UʫL5Wk4t+qnEQ%}jZj]4$ iH'Z8nmK-"vU}} 40EEhKHh1R̯AP%_w5hА4hWQ^[^$,jlnlh{)Z\88bdT5TUW2XQ>YHRhfQIE8ЊpWXK|W,aҰJ{VT#9Gӡv5CEr +R\k B?rhq_%t+qHݥiWArZ:ZrY= `qg7瓚'z\WOלœNdՑWgmo t tgk0(mLJ*JG:/3ԋKC^Jh6::pWHJfʞ{=W:ڑ 8[TB'kL_+N_ƧmE1,T^G0S{o~2+\}8qi14^cD%DaǏ`G9YPR޸?'Z=KkKUjtB4.DM6qqg=&'!'g&gQ@x2CFnʹE8,T7V{yD4!SC砆 uE3UQ =ZWU"BO_O;';@_l0nyM9Ʃk;Zx,XʄZapNTF^ !A4* n''z`1hlegfdwss i &&ӉZf~&6+H1؜P;CU8^s=}<1YC=*> 눚;y*c[`.Q Qc:+R*N$lh)IO/,niCxBay!8*XyU\jjs ..>>bίU񑨁e]( xqR\97K\2qk}v=!Zξ8Rc8c{famA~"D -G# &#H?6;/9-;mY-A[[d$$"BrѸ@8@%4A/\**a͌y`5/ aMmM|gsLqOG[i#^&'fpڀf$(<ϋIZXY`gӃ 5jm,U`.űǰA+Cghl矡ͫ|ifiFuc gCPFga%~T(ATVW[RRV<(lDwyx`lL ?~x`h 3߱Wˊ(9~| #aax>tV'.$skj(mbmkApۦ5`'=dN\bveBjqn|a7 -26ˍ ±:O0Ͳ2cS2Qkb :6w*W娂a? LgeB\A.,W͠RP ̊gEYY]]Hv:S\loz8`k|uQoZN=>c,K5!cYMͭ͏>~-ZΏ<4mmqsf@DK ֵ XY!@#;#yA\xy#C - E\fhdgZ" ؕ ~z"W;!bR G8D7 h,-Βݸ A*iX h^fco5=͵I-71:Y֠[Zi)ٻ()+!3C F=6"'O$CXO-(`)UAXA0 yB~ʺ/5b=>}J1q6 dhSޯ$FFg7g *Nr/8:GFn}J*JA89L|8|ZN6^Xhg(=nhU@Y "b ǒEH[Q@K~)FP)KWKAij@̫f K QV qع5m؟acd >}E&z:x6I1F.]t>ފM0n"4JhAk2`mo=C@yA0..99$-"A$!Z!t.kŁ(+Mh YU33qG>:ƾAN\APz~ t_DQbo3CtkUV.N!WBxWr5ش| ίMCQ[gU\ơz.545ܚu͉ nݹVFN q;(-ufJ*J#|ǧ#KC*MLš,kŁ12h8dZ!QU巛Z"#A0 . Et: 5U; C**ȪR1Plb,tC"C=aB0Zb=8 \5t]at6 +{S5{<qѡmZV"[Z)SJ:6uLjC%Q*\p-ȠH@\j"*Z\^ IYp9xwc_G 8<:umxM03u]5`#6(׶RhPRAG M:p~T*~NF @Κ%$u?6sj`GP)\\`I:. /]x)J+/.i8 Hh1]2EE\ ( Cq;!?p~@ "*"0h^QzvpE@AtAp 8L.(,9.)z%)d:OHA^M-a}hJ M=e6( ςX/B @?d  .Ay%\ 2(L 0FEMf\A1̼LЃO }~c_9 Erބ8A\Z@ ZP EEPr`"r'6ެI^FcϮpL"7}ښVif_/)~emekg}8b$܄jk? &4$ v'gsD38ja2U_F ڠfG9quׄwyv#t+q혾_ ZXYOoi@έo[K@. ]wM@Ջ]4fЭĉ#QuL:А4*Ѿud6:[-FZѠA kB'ڞiРAĉl 4han%N}}}iРA)Hhh|;s`:=C=nX4hX+s'u' j~u#jyiРAEV6V7VW7m]}SU_U\Q黎EŠu7$OEcu}k}@B4$-n&}q}W_i_weVؕү={meGG1u7/q7;ݼ7܇i{(ACr8ъD7o߼|k@PxbkWwq:9~O>{ P5s+} D;26]u\v<ݕy4_PH ymݸu{+F{w_:vXwX4_Z~[؇_<8<:6 بTTJ쳧ǻ.$ruP \ 9 $7/\?; c}!7v t ̮:~~BHy]ZhiX ~zvK43P p#ʶdu`S=╋~/.7efg/ 뮳 EBgO?6VyYEw׆:M{ViTAO0:gzaA}ͫ4xDKiȹك]6=?Bo}d%cfz9օ;.\%!`1&0$k}_OhɡxddU#G߸y=7ԷQDȰمUkB<'a<*PCWr2zsUGw>zxѭ;]v(ߜy]҆sč;wL! ȩfU85q{nܼ`zЇJCѓGSv$b0 `] LL\\ˌ#;;zYY[[Z641354.]-{κX|S3]ϳ IDATn|1A(aYu oQh(qmUtbl^襹=T*;Ћ-X}>1%qRD{㪨Q a-;VQ#Mߌq#FFӦކ:{2Y F/̾U55:dT`ũʚʒj H%GG55*Eh~%b\҈ÖĩΞNԠaEu.likn]IECÃ}}=%BAGGx^AN߼(FM WVW wcR%%7<*\O_((4p!^]_-{mc-,S\)̙΂]V U{oJ6T¨˦{WAS9S>}g2sߨGXK:::.= a_'g'A vy[MhX׭mA\۹W~CcAg]::9VTOMMK|2(h`ơ.]Ϋ;v;q@m^;U8S ڶ68Q ٮ_jhnkjol%-V\ѱ65>rL., hika#R5\sMݏK?Ҡ>man|en`C~îU8kUJs܍h! 0Wt\40'":e;~8ߵ0w(Wmp_䴘lkG+Lwq NieiCKʠAb%\B-'ڪ+7lt8/'k5:W[b+W[?z=17spMmupo*v \\]lmbpx\·#j rjV6Vagogw_7.quw,2)5 AQbc[#9,kNKOL/SRΏ esOEuw#:uΦ:::WqprE#ede呙Џ~q5QQ,<";!Zvc!|9Iʓ OD}+eLj-Ͱ@m]mSsܼܮ͍eAM-MI𱇧ǕkW0)䲸 5*QRV^y='7<~BBC{9niYiMmW QCTz |?!PDCr5xu-_l;EUo#55sf/&2&]@fv*1Xijm- vafn E'XYm;qH3dSSѶ6w?q2S{ĤzD9ݖNyAzթ8=S(9.vtx%f/ǔU?XxxC qS0 zd{*8*0]>>4{~ |2M4^oFB"N:":;7Ը:uu$y| M lW?]vZfBnx&""g$ G Z'N'4 .9q[rGSBgcgST/2  ZrX,,lmkokTTUWTvtdd?;'?#3':=3Qrt P;@s’B(Ȼ{$2AҘeOzȊEYl` 8;: *3# Kݙ|FWsTNN˴F̦+-3[h,Ɲwz{ @uyyWƱ4. ]Q"qp0~!-)-AH[Xյդ͍[7 Q.FF*aPV]9b:Fg}k(r~l1MVzK;eg^lNO"iIr[V^GL!:bbA\]pS'q ,܏v~sm=m({ vlO7eۖD\=Rh],onKDoB* fׂ98VӲIarK7#<[ \u;IU;>۱ 5DKuĉ7!5zGQ 9a=df~w,rȰ*vC`w1,3CjYSI3R`&҈jjkhhcD FZ!8P,,+NIKCEҎA $'#C1!; qAX)ԈzMl `tT{"GтeG޽8l[c= {?eтBѱ~O\OLJljiV*;:n޾U[_ct'5N #qswD{浘ؘE-.)r IQh2N=;:W4=cޛw(R=9zDjVv\ Z98\]PT`sdd9ЉCj /z7O₣ǎNh)ffG0|qIs(T,Ҷo5iX{c6Ӽ 3v'DfU7E\Y`_f5Ӓt9ŝ#uEɢO,=гe$U U iАւhq##h첋rNn#rkf5ܓ @*ǡb-lQ(!ZRybJ""I R@ pABd ZrXP_S'K2 8cmb 7?+19mtoG𵶳V,%ڽ |UU$A> $!?ȿZl *ϛ΂#"롻ZWј쭱vdmf,0vi,84XYng,}|}kM@75fVy'ڢʲ܌ȘȘȐ"9c}QれÃ!GA KKH!(AC)0: *3/$'Ň.mΡrhdĝ "[EzJfxQX&DnJ.@嫗I9Wzˑ[F.⥋AXn^%e壊_ٹ [AIIAVR=ᯨGdz>56g aEs?VlDD!yB;$Y $vGz(EfWHo[ g(C:̭ۍw$ ͽoq tff#xVt9E6=;"m1cwBABhcMvl[ڶN*f&fZđm?[@ykR^q?n/n#oonL'$.6גâ~JZRvNh5#+5=#%5=9%51)%,vtjH\)DΝәs6[u%o`Ӡ۷zBKGu]9h{1_@SNhjNS8T?q\CCĉZZe%Ll\kvyA Ϯ!.:Vvu$N;`{@Ś2W4cy[tѹ>g1楮7snه Z4x!y4nv8Pxةc'~ziZP5eedsr rPΦ\gN:T2΍s>u|gMڸҼ_~{g;$_ogg:^t'N:Cۉ/Y̾c}7.I $6^_Vd 0AQs[޷$6=&ж@[l J@XV֯6Zm6Qi恹i*U޾ZXHvKJ] [S"Tdcx_U1VK<DsZ`s C#γyl9hFh[ '|ˁ3SmvQ NZۚZ[j f5ӂ*"AKJ-.t OdBJ㞼X\ѱֈ-ӻ 6Ҹ'ZSė{69’|QVa}x rJ&g&5N hs?zqO6;[)L`AG"quKCRmc%kĒ"ED"V Φ3Vt)RHQj`5Ps\RH"EjGfPڼ|X- 461VQ[CDZ%M}+JY ۥҨ&ж K է\jn[{(Gyx7Bwi4ZII /ei;~xx\8έ]%E&N@^TZ6!Z@tH$nll,++pͿS~"E6@A)Soy$ ռʦdX zjhb2o$GD%G'$$g9/K@oI)RHVA[AQ@--;+9M} Zu kk &/8v󀰀B#E)RR+htQCʧ|uR2hWqLZ.ZIUXgWO  ˿4h(w57o~sZ$kg@Yf@+E]TMˠÁʦ-J}bjhi-kޜUyܩ^rJ%cǙD#WLȼQPVbH"EJQZ ZU'e utvyteӪhb0d&';x3Y]>\W7HObѸϤH"ť> E}]6@+(~aErimqUZXPRK2h۵))N|>?f46)RHme55*s%#P%m=mg[&PBz!X+B~7CmSS{[wg37;[鲲y99|߽+qI"Ej+Rhb+ӳccS QC)DFlHlE%E<Sd᝻w$]ssyI"]mIj^%%j41LBaaaNNu͛7"#KKhǎ~}레Lj9Un"EVFЂ.J 7252ft򚥭%]} a@x)Wt]FRhe]KhB3ԩS==Xt<7$\YjJVZU 笸I"@fqY,֍7O~>WG"#1OҸϤH"ťFJ%5%W/\ @V(zyyݷoEٖv/#Ř^@/x!O?ߝ0b' I޾hܻC;*&ĉb:53A-)-W$V9ms*Z$8 tŭU#lZZZxxʮ/~χ}rر! e·'qija"E)BjmՔYG'FggPs J o&~􂒂萸8`5)3 {wM.G݈v Evx葀 [G[z ]2heS(O ;W^w:26bfnVS[iߙ_K|Bc'4,t|rETvNi]jKߋ["۽ww_|G7H39)RHR.ЊEplGN9굫YYܣ_]XZ+&WL,L:{8cӧ?qA蠈 [ H)(5^ ^}*@ b u-Uú|.nk Ж*K($lŭN,NrF^Ff^fznL9٩$ĥO!WkmRHbjmgOgy}dbp&y˾zcߝ (MhyTht) usϹzbUqj%)@%B500`YccE驊+ nmk5bh`h&鑠Rnõ ۩T` !SohhX`+^Mǵ?)lJ9'E)RJjᷨ3qILO,YNS`hc_WvNvoakvQ6MqXL6;cGUP\zXUlf.Wfo^z+#c#!a!}}7o W\M3s3-m-̯]wN(-PwIUeC[+pinLN/>sI"EJR+h+Jv@մ촸83+3fII`l5631D9'{x3rMN]1"<9O IDAT3`2WOoO{:Fv {{QP|0^ H"EQhzn܊JUVP$5<6T1gRFff[ؗə11YYD *J#KnkohFGщQ&YZ^neOLO(Z1b`.+ yMի"E)mC]kj^ER'c\X]RU>ŧ8macA+ %'9w".nfijs[6🈋h8Z(RHz)qjm7>8<4:>ކd !446W koȉD&]R#[yܽ1 Q¢>Ӈ2@0 H{YX2*̉oOыC7c" (%O_ܢ|qEtBY41(<_RJA b_5{&*> 4''>98^w^TcPififdwi$Hec7M$!+n^nF׌._ !RAGDM.ELw)RHށ^fS}je"hA>i`d+:<߲R*D-&$XZ)$v>>yĴD@_dE"Ԡ߃u{g{p5{Y[GG(ևMڭlUH/,)G,2W/?/(Ϙȶ)N ݌OGK) & hЧSR-(C^`΄EXX[|_Fw)RH;^655W3ځၞTWpɴ66|DAjx t#Uvv8L+ /NW ʪTn.'MCs˗B@b ^QqQ(VÐ%EĹE Hp&V-4XRY~<) Kj{< `idjuQH"rRhyluvM`m3L}9YK $Z)ol+訑wTڋ˛ڞiGYŚg|kR(J \bJ{Q9o-"ETGW@oQŢ6]|J:$ x8(̀jA"[ZUsK)R/s)PQWQV]VZ]@8C'F\B"{V%E)R@,Ph[[,n\5j ꏔ)RHmM Buv)RHQJځK)RH($"uvd'"E)R;JnuvhtH l)wwtu௶'nknwi},P,JvĽb5vznzlrlhtr nPǬvn_nwi}r>gjfJ> s; w/pMNO 3gƧ嚘иFG5~njkz{4 R Pi2@:N e|%3̣Ǐvg՗Ѻ{_2te3st+6262(o{(2fcl,'hbPHnh^VUa^N [OUUnn[! PQpݵ!!)BAYm,o?oՓ oYnS{>zҺ^ $4([Y],fHXHVN.WϨccHvEbQumuSsfu$;'a<*@M;$ĔTPKVa`1+j+p3a6hb`LkPD'_55QSRQs`pFz3U DMxT"bV /gg[c+B(, 0 izbZF-WǾ]Tq:EDlI)ƺ#URpp+OD-{sgQ]\6WPzhAʗ>|F4.!( VEJ^^..-̀]l|>d^ uVVֶ .\3ijirtv<g+ O svu=6諦f#Z58-Ǿ>fbf /1%3dN[ Fy/0^1öHo}em%q..6E>/Ʈn޺rjUq$z%.1@p}6+F$^Y˩3p[q2yZ0>FlNAFA{w.Rh +&dbhǽAns],LL+4u}F 445{vnxZ o Ãٹ)i)}gϞxmHj5bd-2oN|S]_¥ 7X3̹w#}VJ @$@H15֠z+~d})u˲xޤ !7rqs޶HGE&66͜f(.omokq+.h"iCk \}Z=n7/ p0C+ j#UR1NZw/w;P]Q1``CѠwbn^.&_EEE_#]JԤcEe]]@tłƅ>О>}{1&[8e#9n@`/I)I?ýE#EKL2fHtiJx .4u+tW܅s#nގ5+Fvfo}:b8^̮?_RVBXxXYy|`41p_V-8\\]P) _E>kxlqr[CB"OɺpMV1ifXd )]ᛓ`Ώarzfv&F=$DxLS<вfo}:Z|u$#+-hDAA5ֹ%2jlUh4媠ŝ5koeoMЪ8WW\ џ>BM!e$JrЮ3GyWh[V6VyN-2…2yyD{Q3g>;'(tF#Qdb*@;5;E004"J0@ v:&Z8-}}.zF=( {y"73t垾uOop%hww4ja_E{`Sv,NPL\ v\za ݌oEEs9s^4tK-/_\T{'WMs r0Na`dbdne`w\41ph':zWLHAP7)@Pǿ9  - <]_jc)^>D8D~so%b;|+!zF=o?o$ಁWz%qxڑPIHH/̃XTJp09}K }5\GəIdh'>Aѡ|jz 42F===,^?~… 8vojn&8337C8|esGG6lfn_E8jzdBeEhۗ>(WeF(},+X&=:Z#{v(?J=JmFąKѵ?;L+#E.}u.ߏvv(v>cD rH6JƊrV+Z ,7$,ddlS ~ _KkԄLH^KJcbc1>b΃|1*|.WlvvEԢj$uӳÎQ،McRAȹacbbRSWCLJ̀嫃Vtrw/WDݵ"7fTX.Z_AVϧ@Vz{tjzf:1;7JM¸[=:9 ,hVqgkmCmn~O(#nUVa)oM} r|cdov+(ŔWgZ3ځၮ.XA{Ń#pFߣAo5s[[e_NWD6z6f@;534B ;\GFl@S$7 N@M%3Dޔy#DbBA^&6:ԂWp&"o`rOkL߽wy-O F#,ȶiб CRJ-5NI0]MC#C4o\0;٣TS<7~zj䛿<_{{7~yjOw9|ݛc{>7>{]c{>>xC=W?y~UEl`75?g';O|_NS{~o=ߏ^Ԟ8緇_=o|탓o~|jϟ{_sA^Ԟ?o8?}ډo?/^={ }~{>_N{>k&iZN(NLMtv< <Т̬S!?rS$ D fA5j-k}SG[`c0q[`Q]_=8b*:0)@pH hVUEHIhA۟k1%jw)d;--] ZX'H6=;)}^YK$;\ 5"E'׸K"hg]=T i֖wT;hA-CU!!u~Mݩ^ UЮa|o}mSj<4yJ-ܽ`8L?wh(Q͇wNX("XdT{wiss^fEVRiu-،FFpH0 μKR\\<95䥴_ZW_aM)VqP$LIMINI#{KJfEeECWTh,B8Р̲\کwNߢ0J`zT]Sq c~J$=Ҟ Ԍl=efnF=GMB))-r Mwi`4LLa+<߻w 1.݅ٹa(w ʦiw|nwo7,žX6O Ã$FDGEG> IDAT%$$G)trW7בqo+$0-@h]X?@EȆ-/sgp|||N9-Va0- i P)T5"2ʑcaFfQL/@B@Hgw'Qhk6D$hX Z\t{E!! MI66qqCC z6Q$]筬k^ `lj.%=eŻhi+s]t'ѾG}dnn)LNMA /zxzovpt㏏=C$?g@{$.X"*WAC0A 8˯~jjp w?Kldkhdl#MLcVGǐK wkHnv^tG546`JI%zgd"``VoOnb6"ATl y ,YXs8?ݻUP3y:h raQ!Ekfא1x>:6@+afh*v9La%Rn޺yS4O0-p9pw?akhn " .{9mvg[\[z?~΃>wQ7hgDyn~Ujf4: ]Kncema"*&Jv!& n$:J B+}| . 7`(xghbҿdpDœ[\PXO>sxM0IրԨ:ZOrVW 3#"AhX(Ђyl@.jʪʰ0[333.Kcd 4ހAZz&73Е0݂ hYccczzz6սe ZF䨢F$}jgw ]1۠,~y=]oOjljL*G`$7ȋqJ$ C(`=8:Kx% 1TIΣف"TSykNdŐto"jd$f4 QOx&%D%4=;]ߤaZ#"n;j#AnВڮLU=hG)d呑uS[Jav. >Hԁp;*c+1`- daߊB>D%3Z5R@"A[SSظ Z fĴoOȒeo+Դc"h1jqtpma CO K״8Ei2 -m]]X,^YOOO`؎dl6;$$ 5}}}IW\Xƀ>J:,UW?үq60@mG`tma4qrƆֶGGk0sd;*Z+v~~^rܻw- Ç}8VHaQƉ!{/ T==H"b"nkܥP,n&@K7& `njϵ)4gitt޵wv<ݏG9{d_뾻gySsbd;/ό?u#2yPOqDu?GtzH'qPߎaݷwGt?t##wgGt?G݇t~;}G=o#= #OO$AG"~E#¡ ti yWWהk**1 Id"ƐG@C0Nѵ*ϟw?wY;>M M|/777yC[;t?oo`bs%3[}wOC vNg|| } mϸ؟q6v0ayՋQw`,.әәK ~7hoh༩+Ng Θ77jos ʞ,θ8qr?oo`m}㒕{3>>vg\L!:o3~IE}])YfXZ@%DMWk9\slr͡e5Պ5rmTzFys%>-#U Eڰ1ppUyKhmܐE͡kϝͨ6󓌰s5u7/k2 (dSM'?u&6S12te=N0˄w鐱騋cCM^-< GO=v9.ؗml>A^O#VKld.sq-pG{.]ȮX̕|^FџڕΊ-}N泑fuˮ/ q)Jmf[qkTA+ q5\ǓI*$uRO6kDmiI4Q;dB{jFbbbfܟ^њLǝ)OR9Z$5e/yҕ55>542.ns4.wr;;DoiO iO k 2WĄG,yB ZO/-۷o?fD)h.a  { \ϚbZmgY{@Q~C񠢅jvӰvvx- ڇvIIISSSk#L"F9h4>..x޼@PƕI}ڵ͗Y@ѱ2kj(ff.,^@&9,,˫<+kF$RK] ;N!706=f;žkHjɲA;::Hn" D"ɼuPd;ɔH$wvZMM b_3f###.zH }~|3xݟr_X~K3TC (Kc0jm}Ɔx_~>TdutnOOrx8Km ޽қ7üI:4{z CjkTk4Ei?6+<2d"bG]ccMUUeFF'""y\^Zi__-BMYᑠd՞={6%%,))/%%[biiI䯰 .//?FT 1-tݘ%==-2mZ->~XZ ImZZ,qa鋢@kg#hL[[e%WQAdo!x`V1L}pq "h}AA^G OAxpp{^,WW$MM/),l;vGںJHQUͯHPѼ,l^]\LsttDBRYYZQtzquu@Ԗ,EEE-sһ)rrr0K @ f.-}}}Y+TAG_G}s؋} !V;:ڣcU1!NL܏}M)w~~ W$xHa`{,s/ڎRF{;9, sMfSRS{dWhxJ%UɅɪ5"ԴѾ hsssAN.AXE WŚޞk׮244,`…'݃8~~~l6{vv6..NcJdr͡Ӄ_1ptہ7rJj +?:63}qKOyjjڋl*/~GȭaYZ/ڎh HaE>>RՑo^o|v<:ԚIϬVhWP~lVx$h_ FrMH"jXe5VVVXJъ]jHnR(ph%00ٹnzyyUTTb;;;;$$DY[WW+fg=|48xaoVn%a x 4ɦj~k8sVʹ?=Vݕj2WSo#6 6[ss'xc ƧJjNMOψib|lfp "-f YZ}2rvvnvrrbkhd6]ZG;~AUYKh/Inl<Ɍv ~;G܌v@mhϗ2 AAuuuυ&=d2۳==CcbfUm75GFvkJ1%ADAfp`b,t;@;c@YLMƹ.66*ڀO7&'kK1#"$A9NւG677ƍ~ch64 kՉ FR*m1amZ-?B2l7(V\5/rA AAAAA1<`- Z\m|]f`m ڭ$-fܽ{ۋO~vaisΓ` 保B'%%_JlWK(&&޾-XZZ.QwYYPn@V?B.:99R(yHs=)VFFVvxx8%%͛1ZPV"a wr6##F E$ң㮂bUJQz]]\\ CB_Ef|O#$3Z5̙3MMM) QcaaK@~jjXb2VVV^et:7ɝZ&)??iPX5NV53LE*ˋpt,엡bIЪ HIl6j>|T*4ۃKJJ"##O>=22]1bl΢͠eY87pEE'ښ{w h,}ژdcS3[S-<0ָVchGDHvsർA3228jbccST\[ªZZZqHMMENj3hǗ*ڭn͊msZidF^|Y$&''bɷ0wΞkϝ;&%%544ܹsG $ݨEAHВr i$h_ عK֠ //|III!0M߿Ӄ|322ڵkUfffss3TBBK8BVA;NvK1#"$AdBfݽKszzzjj Xy߽{wbbx`0 Pv{g w2O&Onlrwz &JEwHÀ:ٙ_rٌRS@k''ZZmְֿ]#D/~߂#$hImii5vD'=q[ IDAT$h5me>^c+aTkج=`\pJni5vD$h59K;A%J9ԔH$B Y@5Ovh$@DןhogP(TZJK;ݥn!\HCV{;%򪪀7䬁nn/UG~u5ع HCmGI ){͛ 4?SZidFKVkA422U|QgggjjNh纺\\m5O!Ɨ.&&6=:&TmkjvV|x8.0(|A h;JZg8bbh( ڭ$-A;66*ݔ$Nwss&*h!y$=/#$MMD=K$)d{Q"PKE):/ʕmGI J N! ZB͕}{tuu@ҝյoux@19,LQͦ0AA^ar2Mvt`+\]Zdb%=3- 7UV>'rQCD KhEQz$6m3jyfvppBDGGk$))quCKKKvdd`$}ՅeddbĂ555㳳;-}40ZVs⌌~";;?)iA<+K?mgCÌHDno8.x$Ǫ\<ގ%%vv-/ڎ ![LZ! -Ͳ̌Ѩ +fggA[[[.PTP9''[3$h_xY\\%22Vjaa933d'Ǔ˲f;;. h>U@e{횃9!X!+M46*y#F,- zQs$DKOWUi~^C;"B0;RضVd}}>>>bqWTfdjpppSSݘE)Px; G$Vş  Z!ԂB;Ok{msZidFG7opk{z i|>"Vj3h@Ю_o5tɥb ׯhZYZ!폐f\ظ~ill z*A\lK I0 Z5-$hмD"v?O\!wooWla_s`Rri5vD$h7aAGTT$Rt qNNvYYYddFF`4ddWVV$&ވG[/Ӹ'{3ODڶ+մd^k4>lfW|MfdE: |vuuMH/++ց\`uxx4..6??WmU+h_߷ZZt-o}{z}ʅUu&* q_Z! .Z*,NNN,*͏;0}$a|O#$3ZV>ƮQ_Zv)h3h{z hAAq$hIdOP{򘘙jUMMő]vr i$hgf'''vF##ŴgX---IIIpZ*zЎ>nn$1SSq..E6 1;=Ӎwxj w8h/>vl||ڌT庹_NznCrYX`$%RQfoF|O#$3-;տh!hE"att׈pmmFHmIjjk6k=J ##8:Z XP=@;@kiP_OSTwcy0uN:6̮TJj$cn;ޣAE"A&AF.wc1Ę8bư?2=эUߤpՋ?hfv<\R3mbvau򿇄7H&ahϞm^(P5M]~=##ovmz{{NN/_<|򲘘I[$DG{^A=Lnte:555M*n t'drrr\ښׂI3OrsT_{V=C9Ch_!yhҪ*c©"22g*ٳg;V]]w-_/pm.+++))Qe#""BzfO8ϟ:yyuu UUQINN>}x)ځ6ش)jݺ'O[ylb^x \+mYZ)2.,,>. y?MKᶶ6n?pZkYUSVU/33ʕ+駟! qOhb~{c֙;+&ܯp2N7Ö_q(p"/77W S}.]?zȳehe=[^RzD]`AJJKǪ7nQki-Eomߊ~{w.fォenqoۯntikNhrϙS5l([~vݯqσ*'˖;/c|U&Z*~N8QSSS=yz[nZl۶ _:o;'vww'%%EFF"(6,,,88Xqnݺ>Ig~wO-L['ֽ=xpONI9q`K5@2|w?}?y7wiK5m޿ZɴqP >λ*lBۛ2i]XPPr~O+і55dPuu{m䧟~:~֣?{nmܾ}.sJþJjɞ={t竎=:p%='w Ǻ&||tkv恌őOd [l˛wلV믵,..?CnnnUU֬_~޽{/`RhooW*++nذA%/r3gjNiCv/]䬪[[[l٢s=?i)=~#GȈ'N}g*)~Zq*GP-Z0 R u;111˗}ÇKKKuM6644<~8~-Xkju˝M ac.*yZ3qt]A48YR#蜵DGqזxLxcZ_Ngޯ16SӇᙟ)U6ݧ3Wi]8:%` 틀ZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZEh -[րZ m{wӚ+7Z%`K/u]ܸu:-[^yՋwnZ%`ڶζz _: lyB{[ܾ{:-[Оn9]qJ/uZB xݾ~ǃZZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB %`ZB B[\^o}.ݼ}S}0~z>Oh~{ʍ+?-G|ڒ% 5׿`s5qƸظOWoWRl҃E 3&PnQyQfAfjn*3Vq0Cqt 4|:_ tNmŮ+WfMϕM)ٗwnyޙn{־jKpE13)) ]3msvNZBLShۻ9\p@S\Z|֎VT\ϻl㑣Giq6Ԛ0yڝ½ħkrr''ݿWjUrf*=Z⤌g#d鏅ei9i='O,)/)*?wngp:ʏ롸y[|~8y؉ceeuuϬp~ 鳧_k׮߰~]e-\ Ֆg6/=wvM]U<84WyWnypapHЋ0y< j½{e큔W-_tQf&f59,\p /Oq7w*|zK?[3rI۾{Eu%+(ҞTwf̷uC[@Qhm ۸>dSw;>ϬWnظaյ[|~8y-ϒҒ|eµw3CnjsEK՟זkWGFGꏺ̹3_|tR퐐92ӂm>˜ҝ;O>Ϻ~' +u.lyJFEpeuö]m'UzqC Zy @K{sڤ;Zg0#'iޞs#/╅cZS[SM땥w}idqy]ۃi7~ZE4|Oک^=`F^lAiAbZ=i}xOޯkA<#ת)8$XfI%Cw3)T֔zt%˖hf M pTnɧړHo$W[oՓAߝu*тU} =2 XB;53dggmܱks+8vo Eޱ}/VnMsQMWfCgC}@%?4p銥[By.RVآv-ZhGĎkVjA\XZ8AC-,-+s z 3u-p1-H>Z9D w;Wk3o+~;Nͷ==w:zsC-%S3RNmݡ ^;jw|r7gl߹];|g=m'ephjf;=sW=INϺu mFvFg̮YOy׮֓NBˌ~~6h[>-jyhR\^PZ18WN݄R'fOJVzEukgK##)wAZNZ|])k| xKȱmvaϖ}EaYV֮ 2{)()PcbˋՒ4.)ə~m {Acы/^b㬃Yz6jUdL伅,_͙QQCw+:R3r+ς ҟ6 Y)v 'o ~( ֓o=zo9X|Ydg햜<|)U[>ߢ2-6wuJr^;{u|v~c׎ݑ}ShSR^yyNZﭒ9Bb]S^UEZWE%Eu̙{KmgZ(ʶ)V~Ye+aRUm#'uG:C0:NhY9З[^*Bi9iq1199$~ҡCʭҨ5~:TdldF~ihsr##tC&hhJϡ@tuv-pgMYeFWQNuzԚa-Cu!#{?OAXEA}uӓojsR~mzHqBӔw׼4ko t5 -Ì(W_~yV}>}0c5Nh^ij|eBKhI9Z˪-jnohߗf.Y^%͇/Bh -3f?7(Preߎoڗfy:|Zf2M[WviE|ݏLhƷ&$߱<8|gTrZfLGoB{s紖mlx󪫞+hǓUu @BFBB&c;1hGVUkٞ=7.]qu?0Z|hB{޽ƲȐw”BQYTHRT4GھW?~0)))""B^*ʢD*ʥ9޿/rX>zV:)L)TEQT(KEsԡ};w.]ru8[}LaJ,*JB\*ÇݻJ@eee”BQYTHRT4GGi!7ʵƭ:n-SR *P*CcYWV(ֱ^tw0) 8* rh:O<Քh]:P__ SR *P*C ->Dh!B Z|C"->Dhb~IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/missing-gstreamer-elements.png0000644042355400116100000004261312640736115027013 0ustar00ensoniceng00000000000000PNG  IHDR= IDATxxe+ٳ|go뱮 wU,ib"{'@ H ! !$!!OdILˤ@ TUUwỸ@(rzyߧ3񕘘 k |Ʉ[bbbbbdŋ?>p'|G?}11111g@XqAOAxٓ'O666:t%&&&&&v (k ܁>0܂xd@Vl68,w j6ܣHh)7///--퀘؍3_ 8pfs… lЏL&SvvvBBBddv11111g@XqAa#pCCC7o޼\LLLLLd/P@}`PG566ZV7HHC.H$n&{lP@}`PuC48xx{(D[I=6ae` ā;5[>Zaa! nzE"Ht+@Q5@$D"Q˒pK$D$H$|I-H$["H$%^n\6cQPwU1+mKs9)b|VQN {]{ĵbY*RM%MϫA6Pv+~8^nݿm;!)-zܥsyUe5V`*x k7>M*, زm tjjkࠁ8켺H$jjz㋃ /:wz6n8`ЀJ[ef?vф ꕮ’Bp2lİ3GF 3H]XbE|wʴ)/rNK}gW.}{2s3 |MB(FEPJm%E hװh朙/dpBGcԘQ'M$h- 5bԈaÇEDEWKKm\7d5%ܝ:cCHIQDrICSK I@d3w\ڽg/-@eQ[=8]l #ɝ={~7%M4eRbjb@`!IVZQ~S`nA.c99{&wvc>C{v9C;9YfG"ZԪu}N<$$'u5k,u ٣{=\ph00`3<Jrzr1?ҳc=6tPxRZRחo߾gx}yK׮^;Z /= ޵g+,5i3ܢL2,ԩ^S<6Aj*B^{@,CqSO?^>,r7O/A'P^ QEè6S8umٮufK!Ч߻ 4nQڒKRx9zѱcG-8G큫׬FOxqO>Ey1^PVUWz)8>׋[Gyd.K[<5gZr@BOm۶|µ -(8'qy>iKʭD;vx"|-Gy~k6f G5n8t?^99o-[PA (g[%>1HU^vO>Aq 0&4pc\@E! K_n)8rHUUģY 5Bv]NP[šdLcrH$jWF:ob׮w‹[ٱa=rͷ&{x[/n_8K]5#sg'=`\Gxq7 A ؐ\x [E~q>#n[~M]ۃ{q/>ԓ;w0/lTGK6l@,t/PY3 NT9 /T6|z P/~7D4gd[$)HfR)hdF =scǏx]_`TL*f"w˘0nT%ׁ. hD?Z;6sOHn-|];"Èp{xa/nZL=Mie)qnڋ[99D P'Ӑ-)/|r;*mRӡ"񉩉='<ࡃ wM/hprz20ǁQSq+`[Y)=RqkꕔCA9{Gq^M43f͠nt:|(=ߘw!&>;t~׈ҳ! W_F=yd@oFUdD-qZ2eڔ0P7,cv^6״- +XD]ξؖT,Z_6|X(ɈQɘ8y")#jRO^3Xbs׼ P5\.r_$m~7&2b'M-E"wrQ(*S6d[4D60F|@äW;WJB%r gӧ'zAbkw_;U\@}.* _tD"V֏,CaO>d6mڵkG(SZYz[%D>'֏$⴬ts7I$|Q-H$["H$% D"HKnD"ȗ$D"/I(?t3~䬅7RtsC]sC喱Ը=x{vkiYi%%]&͖ [+5t&>%#E[iMegW*(.1\i SU]kڪ~*bU37}H]6i&074<u-Ux6tvHp DRR^'rO!:zDӹ=mkwi,<*A쭗[%[mYv_ عk'~jqg#W3x#L9&oTD Ҫw1ө̂YyYcƎrTUUS*ACU+YU,K=?~T^m;i?FXcǏUإI}uk[0T; Z bh U TTulx2ZV8Om(4hua6C_j j3Mj0p}_HZ8**)R Rgn`xJ9aW%:&6Tfb FDE,^}%t_?z%8rowɽZz R5WUPvk*YMU*TJuUzo靆6ѯi\7f(yן2r2 B-ZiL"%s}wh//w)n1Cʌ3,[s3N9}i0rҔI&cؙXCΎҢQcF-\2a4o~he6cS\:nrsySO%KX&S>B8W9w\ 7~aӆS&nܼZWpydn5ˊ7l0if<ɕH1hB~+:<_+lỴUy._ΏI{qHXȜyslզ-֬3 #cTm;i.2ZNJ`0k,}֜YZlJ36|` II2!pG œ2YfU9tPQkO#ˡբpR w\J6b\zGdm통 dN&~nҶF*znfm#|rOww܉!bOn4(mQ.bEsݷ_[73&63W \=^{6 WsRD ܧ1׫?!4~U˗XrXҪ#ye(> E$ IjaoU72N 7j{'r8vy*(A}E+ƫ42XJ,r6ʥ~R\*0jF~' \'XU (jĨڵc^% 3Ճ~AGlnґ鳦DL =v4)(8u2عxګL(* e=8f]FI`2> )CqKi}HEꜜXWzCmn͛/P_%w٨|D7GwlňyML.J+J"( s`ߙΐxw#Mfn&nK.1 N45Ěn&qSn4 dOCTvQfS3ҋ={xqc4kׯe?w}ڳ[|)%-vn}೨>(7}MOq d|'땁f$tj_T>@ĸ\'p>}V~ (۞da@w}+Y#ٍ;|嗵/w{vC{ٛH/bK/ݳd!ۭOOؔW0/tn/XYuB(C0RbIt`*7iS{D~LR8P G+yaJzn + C8q#b_>1/9-۸Qz?e۰ym`ZX.cR2z5s`h>!YZV~Oiձ/ʨdY1,$˿dv0LV*Zd+MV)~<h6uƜ 0L`FzADe>9-R ^iqԣ%,Zu"Qag0IMBXj_6b:X04D`|do2cmP`^8j0 "K4<*\2rA(#71[j)*eI6V^~ܕaW''ws عߝuLY:6YwG* @@aWpV$ZHRROY.L$ Ipry^eSlphr) V 'Eɪ.z3fP;.؋[;0,VJdvi3NI`H4!$/7qf|E UDIp!j8ssuSXtMۙ\6FF Ԣf^UMv1 ëZæzՂq@u`!=8q/WQ&<#^"$, ǶL;[4k@5&ϋ[$\fkFc(ףJGv׾8o2ޘ"egPG.pi-M6]H 0 =\\sbFmIU^FV+~iegZvd}G#FA3VbQ8M-˹Z  fv}Ȼ1!CKÉM#ɾSX*z+H=a٨G^h-O YbU 4PE`_SugcV].cٛs<Ҟ+q; mYl*𺬄[RP[x{v3̜Ya-/2G[)B{=C+q Y4`,5jѕsQu'_- mv~ gIr$尘}/^z4 wk\_B/wdwv-uPU u }l"X&|Y%"}X^L2 +׷E3j1p6h@zqK#CFIe7{'S,njv[_SmC05m ܲfv/hePxzaWHakZ/E DiB/n1/seo7-uB ^^:p荢pʛn0qU2b8L9j[~} )czq=SZuznEFG%9oX H01qDo5[!бYT,QMRiy|4ܠ^9$;]4#[3ͥ=X5ϡZEzŲX}吪ғp !m;y9kEt K a6)4#7_ovn$!Ksy>u znDvl޺qFx]P Ae+ɋ5A&Sv4! f}lh޾Zt1;n+.+V)8&h0oL|wELU=HI^#37WYMvL5A! eҩASnC=P IDAT!A+IjI,MU)R9g&l߹]dop kzAvz7OwS$آߔiSrl6-*P!#'JF߻8-j5ݺ'vr"tPxo^Uׅ&V}Yl9Fg90w8NL:ŋ[ *G>`c/EfD2#׮MΙDbm0ڽF 11Erb29(&rx+bЗ&S>N n\ɚ8yvg`7{G cznOiթm-9ҖSv(͠GCZv E\e3q,Z&1%=2ԧ-̥^FkDRgi5(Pao6S8ivayY jȫX̜uVח=Rc(2_ƐМpa^m9r?Đr}\qΎlEy7z9vk1[Wk^3bbbbb7|[E_zզOT}NgNsy~FZ%&&&vkqj2z饪suVέzf&-oĭj`W_us ݺq:&s6ĭ?~"{O{/hll#G8yds&6;vFŋ!>`lO>v}y||[y=Ww@eå 7ިO~:sq?ۧ>wۿ?No=z}Y'Ii \d ׁ^5󺩮sss*z+ݹR˶o[x4*9tP@@Wk1112^Y0gVy.׿&:r𑆆ݻ7xc-ZVVVMMg}'Ç-ȱy戈޽[LᦖbA(?))pn-ZnJZ]vرcҥTwb2gϞM6S#5bGQ|ppʕ+cbbsi*a4fFF4cժU$gBb X'ƧB Zp!hIAA?l6Z`Icۃ(6LTJ4`0_Ɓĉ<,,gij~pWѣHsΨxr~%&&Çp2SGWW^i:٫7<3ё70•N׫v١]gggBE<$g 9vTUUJ"ѣF#G"~A/ ՟)=k׮%10 ;xSNy9s挖:N36n~hUˁ(P+ t@E 5n1N@VEEW8<4w׳xl6駟*r9-M{Xb&L }O||[C[o11\_s}8ʮ[ wE8_ݖ-[W'q7x[oذϓ&$h< ~N:VppӀ=$ XB7Mojg"2pa֭X^wh>;b222h, ,P=Ɂ[@ *A2_)nG"$sMϟ?OW^S}ڣxc_yx&$$nrqD B׬YcZAW R{D-QbYlmc ɫbb>g}ݺ}/͆ryjװaGO?x_|:z\_iH@@F !ʩSxu^kyi={(n]VkwxLt!S VL7YD{#TSi<H~dYQꫯq]0)dT>~IJSGWH-zMgyqD5CLL̇skW磏V'8ꅸnWU`` 8ƤIsOOl?Cn WL6ԡ85k˹^-.rrrM6ӧO n qpk c` Gdd$c gA#Tadj t'cfȠׯڣ>wQ nPJ;v=SeffC:E|yB4eee4CFrM_ΚQ0ðx}hSLL[KR7h`Uǎn}w}TTQZaaaNx1=v_Dz_{V/۽;&(>芞qw8!*3B\z 04z W7o#X>z> Q@E ځ(ԋfRyQ5KN(iQ/rAG h}g@.B+j%*S4K^9Gvu`<C zJ#% /&&+ҹUCW۶O qo;I:~n SE5]._߀Abb"(mk-֢e/7eyѵ+tpjpw}ݔ֩S۴>hfBp5⼴4Λ11Vd-[uN:?SmX_jflU:~xFFƽ?+VX~~Wc4M[bbbb-Z.9>o;:wgn> {,//x衇PNLgz.],)-111[Z*j֚:tp>@տ{鍞oP:qb} 3gbNYv[у.[ nkܲuu?A'O֪oנucgvg\|ʔ-111[Z$꜅Kv|~ 9;㮻 C?wa/M>;jD&5%r˒r7'mxAԩS~~~?~\R]QQ1c^;wdxk~s| Z0nW3U7 -=}P__M#mg-111o-[:gEEIqslΙsDC:yɣGO=zc;vps'OOpw̙g̙rYMwޙ,uk)ܪW2RR֟w{LCrmVz =oY~{|Z J*Jғ֡ᇫy{q}[wN0;nݭ~k_vmn/-'ښ Y"ikA2[Yq &?.Gs{?f?Hv6?C=Y#3J2r3(p @ꁃA/n :x`8j ,4[mѸշ_@KuϋH$]E­fp F iMe&7 2 0snQ7O>eyk֭d>!a!^ǎ[0V **/nU*K"fΙɵYzjxskAD.H$ ~ҒȲ !vIL.ё\.p)6!iw?Qf@"c&O'sskJ{kn^s r &L~Uss!^iŭ!T-Hժes}p?/Sg3䎷yB0fFH_r% P70iy`~c_>XسWϘ1 I&zSܢ@ ?qʻ#d`ӊFP:sLا_A},Z0os+ eeS 2lBݹ"DWQ斳iqXeFo^ƴCy/8 jgTc :ݿF{`!URkKK 3W)Gd),)m# 䕦PKU;7}^D"*jBuG59~J\Cw-_%%-޼usEKeD[D[`-n?edl MoH$(jnD"$D"/I%D"_pK$D$H$|I-H$["H$% D"HKnD"ȗ$D֡zwhe;"D[_6XZS )6}nD"-.N@ [41QcpK$nq+K3rS5֜8{FЉGj8S%D[\eSk|'RWw["HtA׭Su昜5Y~Yk#Swp+Q%DN['=rj8U[w=H/\ 0?|Ύ܃QS2["H3=rdMsUXg0Hȱ E(^j_Ps& gʮ?^ GIjvV $ ׵W}ܱdH$By~LhQYe9C2KK,e3AqQ!DFSgN^vyHI92gϟ)"?(dKvAހg["HuJA keլ*^jX;gyqNyCxzebV䛲,GƲ qͨktpgǮ@CQ&t̃-H$jurs+/ckR#̼1ڰ<Tu(!!HعC'K[$޾kkpXP 6= D:IDATf͛^PoiBjLmZkZnD"QkK;r=!gիjƻVHޛ[h?8|:$4DM[lnR-~VF'DƧ 5G6m ׮aH$F)n>QS`Fr-vޘؚdp7T*W0T24*xڥ%*cݸrČ}YRXzxko:z>I%DPnnR9*QC%]ɹBY ް/?:wkaw!Td+'t¸}c`Z̆5E幱IQfMחǧmŕyp6)#A%DNp+ÐZh֙2g9ےgH*1ZJR-Yjnª˦Ϟ2s4uY)܌M`J`qܴ-dk?t%D(R\G5kWyd7f_UWQl19HcŧEǥ =t뎰1cen9S+Ě_Pݬs&f D" n8[@ѵ^`BY)2 sMiE٥fO2sf/_٬ꚪ=1]%DOn%͎f 8rlĚur5X["HU\Vd)1 >$[]9*nD"Q+S<%+XWUk՗jJ JsR,Ww["HtQ(,-LLLH!%g%uND"޿^i2-*3VSh["H$- D"HKnD"ȗ$D"/I%D"_-ʥbbbbbb7΄[bbbbbd7[ϟ?tlNKKܼyŋ'L_LLLLLd/P@}`PG566ZּP,&&&&&v (k ܁>0ON0Ο?:DA0---퀘؍3_ 8pfs?'L{)YV-qY 5@ln}p!KLLLLLd/P@}`PuEA<_p>#J|_LLLLLd/P@}`P%&&&&&M%&&&&K&%n |Ʉ[bbbbbd-11111_2ᖘ/pKLLLL̗L%&&&&K&%n1. IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/page-wavetable-view.png0000644042355400116100000022263712640736115025403 0ustar00ensoniceng00000000000000PNG  IHDRx& IDATx}XGp{2ݻ9^ZAPF( !!`9眆sy!3Ads@(Y}MY b`-W]]]uZG -B -Mk-B -B--B -QhZh17/O>}=ZhZh Z9"AK撉ztܹs˗/B -BwX@ D" ]4Lh\ F_躻ZhZ*!AH%d? B@M -B -aA GP$t \2>}I1566&%%B -BwX@ D" ]4LHHAD -B -aA GP$t \2NNN^| 2nZhM/hQ.AK&ډQp@ @ _ B -BZʉ)ׂAH%dwZdaaaHzȇ~*B -]SE^ Z9"AKI;͸B -[Vhmwww-[())l:wD~[ gs2ٳg>WvkUUUS7q8|x׮]86ߛ7o>k}voڴi˔#Gɕ=khh|8- gp01(HKKgEKK : PCo m6n)փ銊0ڈN|B%(w^r=GdB3HCCb3* a B -[k!脆wpMQBX !q74@d#@Dt𼜲 Ϊtqq9hA111 NѬQܟYȣ+**`cǎyzz]|=pP9tks)Y R$)03R!XD'!6,mjjjAAAxx2'`Qׇa$\]& @iiiǏoas=&B_4֭[b"ŚBOZheMD6LExkDWk(aI|"(|>KIIF( ~m*|ŁQ;duuuN###Ž;Ai~KK r͙=۷*//j C 401={ DziTQQAz8_9 :S@2J-0L1;BX.dPh4G :ha,haޜbaP(Ha^h(+++PSCŬ#-BXe&n $ҒzDxCCCZ\.jLm-b qlo&b9We3> $!Mȑ#H`qP)UĆn0"|1aoo/0bk{{;E F%"_'_B*I9 ǮMx}Bm }\'xdyy9ˊ5ĉ ͛7c3-BXeVFa 7@RxI2*ޙUG"$''K톗<:I))YvN- <,h!0 e1p@1t#tB%fٵk:yUWW_6LUljEEEilllII"_,Xh}ףjc^H%X`L Ky!IC4\~p35|04y>h):hm`S>12] GL/iZ-hWuOdHL!a@'rcc#P ӧ\!" `PDcyB^{%6CEº(#RSS#0y}\Dc`)9#*++DCujP{eDII`` I_*K;vX[[%Y SHOOPS.//%s L 6Y>>>?Bx-$OhF>"gdd76rnQ Zf)AriZ-h^ >E*mnLr'-HTlقȆK"##OnqjYqܹ#vFK~DžHi30*Uk$L_`/ MfRLtC.2!DR9a{wUHk֭[׺ 09]HsQI/ C2" fՅbDUGM)Oa\J;#Yȏ!H^utta MzFB - XXwZ$wg$INhH-O? BBB玸D SF |VHBy,,"` |+((h/kާ(B -o+ǾiZ ͦZlٸq}Ν;wiyc2MB -"F;ѠA 5mnqn^I 4hР];ѠA YӠAƷ HG3cbiXii/!ҵahРAcdy))sܳ]T4<+%^gNkZ\u7U;emo.p^뢢qY)iy~rSUSZ.*\WJICe/uUӆ<.znvF\cn뢂 ˵R2P3A:)k5tSնS6cD{eC̡^ZV-y\Kt⦪gl͵ƈ&.*(XVJj6\+/u]6<7MNΛ +[{sy\+%[5 N;MNɛ +[8[)9xnluڅunvʮ\^E͛Y)x{q]=,N{pG'U++ew7.`m`uw+ث;q] O;pVVFv\w[50Ur1Ws亚iv7V\w1݈k䢯nuS7;] 8jZ*{hGbSc^HO 4e(ʐӕcɲX8,ɭ>nYrX?<~a e?[6S[ g~y9,٬%+ˮpXOA8buaaZvֿaڲ8w~y.a}aIv{r7pX->8C?n^feO8OqKqX{[}rCl^|f}}6 Hv,ڲnA>ܼnÒa>پ~/Hɮ[/aoY !7pX{ج϶?a2ȭW䰀[)(8CX?]9ȳ;Yۥs8{X߷e=g#u8[Y66eGőb71%}Y|ueqcz8bqb9cq~Ò}K-?Yw,۬Co6`,ΏXﳶ֟x'inOr> q Xs}hx!ح[BZBMofo6mbg3]62͐v2CMARNb3f071l62~f坌I1~̦}iƏdo)|㭽ٌ?(dD 6fL+661~6r{w2~.#/eMxxGˍ~'wR)A,co71>P񻍌Mll;H1>aSxOA!ŦMO26,xw#36c+d| fȠiƧl,ضe962v)lXf|*&ːc371ar70ػ][R2m li[O(̐w 6l`|![}=Ʀ2 CW?a`mԏg!ƦucY u`!o ujѾ̋݊h1RAE pU^i^nIː_SX]PS IC,Q!A_Vx~|NEHystxQ QYY1w@yk(FY*ʊM- d 2ivA;V,Ĕԗ ϫ ]*񂊂e $$EE@\ZB~I9ŹVayrZVnY5Q[Ԝ'EJv.Y['[ܘ%KE\;Ms2ڸؗ:R9mEaQERϬy|H^6rC, )q'TtUtTqTmNp Ã|bJŪ/!J70 8,8A%ǵU 6j%GmWii6@HtHF~FAيJ_2\E vaigWWTS",y]_{PD+/1MD+1M/V^KL4JL xAD+1MD+h%^4JL4J ZyD+/1MD+1M/V^KL4JL xKL4JL EBD+1MD+Av &Zi&Z B$o&Zi&Z B$ʿ/1MD+1Mh.AVmi&Zi D+ ڴ9[-|WP)X*@ w޽vիWMoܸqD<z wx54 5}Fȭe&8IegϨ?UuĪ [7 LKd$E ;[z*dPGPtFW- vu4FkJ*ǟ|QwvT,{-zvISNSFr^&K=EziCYIJȔWdcn&y@ e$weTdRdJIKg*d*RTd33d>TTŔiv SPTbJ+)Sw$72?bIrϻLſ1gJZ0Ȕggf*)䞟2S$T SLTSL9s:c?:vN. Zrɲ7o޼}ĝgO &d 4/k#"!꼮]hl_)PZP@* 00<"BCG' 3o`◒BQWu[ƥ9; u+\} ٩s VC1X#8*X-.WMMZZaaκFFj\e5=UT}*nj::ZlxT[󜵲WA}_mu-75_m_-Ue=!5U }Pj8jjk:躩Pe-!OeoMʆ\m3_m@AMWWKFٔaWAW0pP1qSնҵQiؠ[SZWWƒkb `fme`lp@A'hbOޚ.Z({p-T\}K efpG[ZWxpTPնuPqrSZ6^<mOvqڨaFAEAdBdPh`zFC%ڮJ Z͝MM3ޔ =WAB++6[С&&&v66}cǎ|apcuu?Ÿ̛^/)Ӎ{ ,{,׀778hF㠩*PP\] ['ECHdoRd wܽQ߿ѝL~j{^^ ZM]???OOOS|~^sKscScSsŋ''' 5)>OLbTm]Ç/_ϔFF-6Px!<4w`dmbc~crU%F%E{%$_s@!`O }O>C q0aeOݿ31KLI>EUS&֥ bSc=?y40؟J.;7x7[Tbdnq.]]pr>Bc{#8*r۷ Rhi99\Y]yǏA+@~9/_XVhp-@D;=䒐]"}1ؕ,ű/Xp!#?}/QZ^^^...FƆ2At8t10U 2С! 5-;Ktx~y)>5˼09;/?ȷ޻nn^c@{G]h0KB ΝSඦP$~_ħN ) IDAT{y{bk upɸp[  E{&q{hg1%; j-)TRɴf<$&DJZ !"fǚe/_XVd&vH%%CEKj'&&L c~8xcfVF|bpHdTiy._olwmP,Y|OPj n 2:eVa2=/ٓ)=~8p"5=%=#y7o޹>xbC1\eaz^zsgsW*!ZP@ѱhӭA P54&TzS'|~usN,ڀҒ3p+Z*Abzb@H@EU9ٳO=~ ۏWZQ =z2gAY,q&U-znh|4[Ĵʢem}KWVUeOmJ>~nu008 !5}22Z:[׷PkkjoJNOF^}nta!`ѡ7K>}D[\̱s3m`kimijiIlqɱ5Sۏ;:;''֭[7n\G˘@OYk(\]/$DD_ bbzzQW /ft<_|ŗ_<|/GUФ| FE`cTXTgT踨(puT"(ggu6S?%T{c#ќlZN v Q:+%%bdv5ҕݮm]Xs]=<&ZhA/+Bb'Zj%#(-,`F"pbQɓ?>EYI(D4 |WɥK})>5eAaԛ;ܽwYQM>tRHDV5>審3yaa=X8t[584WXZc-.ئ<~2 }s /)_ㅹF&hzs`1.s^Ҭ֮֮-/ۛZ:ZsWG%ELB aGX[[%%%9tcǎ?~ĉe-,s H9|/ Z +|aE"w< G"}/fd-%AP)@zyutũo AƏ>e>/GG~y t_讨X͑eeDD{np+["q&PY_:Enܼ1+z4^D(XXG#G6ٻyE`G2Stޔ:j`zz NڵkϞ{ٻwϾ}{yy˅ 5M5kTO~a+_X[iun+-ŲX²OXgϞ}ŗ/v/ H;[[[_.8]TQ$F}j}x]]0r|B|nn@ D,lBhlEǟG%_}VBy؋TUn'*1J\= MJVaր&5.>a2KU!LE?ku(uuÃÃ;v ]#il_Vs]]P%0_XA/HJ|kMѭ޿T>矣%_ǔ|M مYI() }p?ԿD|h!%`ْP("nQD[^WeHC>ܼ\£¢ū6K0)D-դo/ (cWVVy],%7%1+-]-rv>%#90Rғ )`P\gK7+]WWׇT%NBCC=뽼0FZxQT]PZPPV\\WѮxoXs-؉L(\*pUYMYZ@Yհ+MJ|Wf$%+7{HI[*  n wXƎƺֺMuukB b'Zj&+[ u*(3W6#7i=VD[\MۋJ*ԴԬ&4hNpږZF`튪k[^4i`ĩhKh1R[Ri| \jР!nЮNhjiBcpGVD qmEmŒ._AeRg!&TW Kt[F.47,ƁVݳ%So]c-~򷒯fa4הTPVa4ՈzAE#twshPhhjj//2W.'e0_RXV;b$alo~E$-Êwtu0aUm4t4Я3=?uIu  -2>R| J[xeO~j/SmE,T^GC| L_ee>eho0";g1ܳgϾKgOg/oh\؟-F"G1*> "OB&ؤXgĴDD𤌤,~ 1(//i,kdrNaK|#)MԐܳ٨!mBB uETBFfF~~uh('[^SN.)*/qZa[R]p,XʄZa0NTzn+ !A4 n%%z`aahlacfdwsr񆦆SZF^6+H1ͭa1TfDPOpAE }CoLcs:fcNx<[ D/?/2J:z;*NXٜ]VTYێppsW3OrP#`R`qr+)+Zn(89yxc9WGEwc 1݇t>fف6!=׮_sNGWzB]] 3 vߏ%fjiJ^ ƒPA$ȟ=f.i8hmg"cP#]16hR&h#CZkWD%, @E9̢ 1b'l:. bmDDtu¬Bx ]S S"zP:D!8}46(H|}u t?ڼfƤ ^1p6elbn+aSJ`4 r(AFx;vn3g>s\;sj=nc cnۊ,CO]^q^Ca[Oᚦ}:@?Ӷ7 8mS|F!SAH hEG[XX,-J'q`(̨"oѢDS''yb\U|&&g$b4X ~ oya!lN`K4b- !ZepBj8TQSAXUh@f^R r] ○ r#ǎO >"!Bdnq<ƅ`hWH+D[ooU*%7+[+d~AmňHjt`ɒEnn] g!@19w:~l>FK H#53VU;q 5c=~ K1q6 dco;pjt ]A3(ȽA )(cf21٩xarȞ22{zUee-%5 R~{O{MsR@ŗ|ԀWω̬k\RYήio # G ep.">Ǒ _WDrʵGg?|` E);B֞%{臐$øaܜ QI[FDHzCB\( QW?1"P8<(<SCf4CD=`s OrF2"hEeS&M՚HѰ$=A`4E8e[Q_14>۶@єA `P DE&>>13 2uUhFjІ|㈔1kAhP]RUC &¾d.+8hhdhLb &ag}c]>APz*)+~ t_vwDQbo;K}=@**+p!yVg8lڈ?cD&~~(-@" x >{;,4{.X9+\؉[cl#c#_+c;,  '/%#{FYc!󈊋BCO}U_]v2$@͝Ngl)~RQ fDVbb}qr;,laY[r 9eXӍȃCmS3Sr^>^Jn4U由;F$5e<_*1۶u 8ZAhBIYk#pc/E ,rz1\Ǟ3 $pXT˶H?.!z0 ] vk[j_U :ƧSB| VωqYsaxg7gUk=~TLi wAIyɅ _ ?4N.BREqIq 8UZU]?P oV40= GmR <|0BJV\ =2cR ''#`/j }hJ sM9e6( ˄X/B _d  E.Ay%] 2(L 0FEMf\A1 Ѓw 3}~c]Y 'ERu kNqhֵցz.a,j}C}c(B 4FˁQhWʝ0Lؐ&1{YS=i؋߰mjoZq?*~1?( ] IVDpi9u+G؝8;\w MqH Q5}!*Ee*8A͚8sV,6.k o5:Tc1FVD9u@50x[[O; ^y\@"暈8cac!&4h[-F70ٚ@C +dcW\׋ƿ݊h1Қ 4hX};bK 4h|N`4hРAwSt+vA 4{ v%fG8B/3гFAƲAdNDoڛ*+.tiР: +z;jkԶ4|KV~4VK_|/7w4WŹtN͆؉7wn|qkQoXseS/0.0o0/WWf ޸}\桐 AD+l޾wͫWn\AՋݭ|Hms--_/>G6 N횛Z|tB4m[_|⥱K#]/_4~mtRυK]S2HWW/]L[#GFƇKkK:.Z X˗Q9ַ:.LPlgw%1 c0NHN}EkѶϜG._K~! p-M4x޼{wn0oϘgCÝH]2Ujk}/.]'7ede͋5y^Z 6澅`vŁLacnܤF?tu|^†)ϟzz&$&&'gEFDFGGDF74SY81xYD;zbiCsdi}z'R%5_e4xcE4kȹuF_V}Yo>y!<_%ZU+FE{Ư+kSYlSG9,.+}G>x!%(:DKMM͎qwo޺f}6YR36> N>D3jgODa6SwgY Bڕ-o IDAT'֎]m a\ [j}S}Br/uapC! j-vTposv̎[2e65ZI;mfW-cSw\US_#NkVTW 3pzptƆHKcTU*ʅh~%E%E--hS]]A0BuQP& :;KJj W^Ũ4@ށ^`tSLEiik.ܫEsme1Yy#W}elq.{޺DǟK?JdA׭㗿誮S V'\yE5ySkSs{őچZr :CW AP* ;k)p-ζu]'WW243w2 jP VvU2;OWTUE,nݾPRZbmcmffVPӍ[W_߾qڣMJjkWqtygfegZppDdS[{jp׍|ԇ b.7$=ݭcKυ3uSv)45]8R},go`@XWCpTl('<*e;~8׵.p-|w .zir+/N|nYZYҀ2hfCDڭk3k܏&kK'iI5X*hhvč]hOCmlHN ,-5cbqo;\''k[HQ>cbfihttFvu7-Sոjw2$77â mͩi)i%EEđ, 3B#_\AttvF&F:+TsD#ƥg鞑A?GEMdL$džl?hO`ÓIGAھ/T][S3Sh -*JP#*& ح@Pdfa|VS@ ZcsOK;k)6h/ (@c# ӨbWΩ[vỪ٣\^UQJaeHhHOo,ona/^r),<GV˳ M t6::C#CH|+*+ݸXJUڎ_ǵ~( bp nxxUP)88ffnVQU "tptPWWMbgie`j`Q}66&67qt##&ƨ!ϩCYWW{K7u[w[K_*nnCezwNz*ؕ2͓Ir70eJz ,G1`dk` '(`g."I526B{8-N'<˝"%ܸB-7b'z9 ApJF tFy;EDmf" pܮ99.\@ P|lhw kjk ]YS2o<+G0_ڀչh_Q]⢺/t>Ƈuuw k+ JE9y괌ξιA=a 6 b=SIcR ֟9{!M/,)be)Zខ܊{;~#FI3G`E:{#"8y43aah "'zb1W)S)]J$ʸɩKc[YSoNmj&#{O=~(w-,-(/y޼o`lLX#Kт2cb||}llm@ HG' aŅ u5uQrZFGܿk)+#Gyhtސh7L=b;u7k尭 [n-T)gY$kfSx,oB* YC\  kZMLZ11?T(_XAx`}OήsWY$hi;VUF9dc[WY`e!NaI/r9s c,B#BꪨncOs7F#DҌԄD X ҈jjogkcD FZ!(@TRV%N"A &%a``lІ$DOoOLDN_N#|/Vzۉ]Zt}oiGb.D+lp!ٸ8<*[ss,,]"ҧ )?0=ew:l$mvHk+jrTVE@pHiB>cǏ /_zBߋdڻUΫ {CvÜ03 GGO< |x Հ/wvo޹&MmhkLcr tӶ4 q]|;XvQV֋\o~IJ&&Z ;-Yek;kdX;v* V5Ty(AC|X ōD%AcWMTcRWV/`VS?Ldg㞜[@B 8#bJ0"2r/:hI G&5HBtҳCAYYHbrz2QDa~Q^M06!$8VP''/3!)3w:eEo@Zbccw>*PR//*+U7TAМR~ae?S{{#\hK4{6\}Ӷ }3'Qi+.r刘_QSW;ЛeIO>iamьBY*iUdukR 0NRYNg;پ{ۏ;}=dܾ{EcN"rd}ݕՕgϝGbbjbjfjaeD͐"-C `4@JTb23KKcq_Qocg#s557~zRJrkԃ,L[ڕlRs>Iۢ^6py(N kNVC UMm\oAAb>~8k*,ങ9U`LO^ƛ ˣ3o.Zǔnè6N:QP b:>ʪp#BX-=5( v"bhIM@pnuoI K 0 ;Z6պy_7׋oK -̭,IO Jn0ӧ-M-LAd gC ]\^L $ gW_R;.;uΏ}VVOt\@UP=9AC/I*jZ\] VC(xxeuYɼf-%ۺP+9!yKiu(u4ut Lt u tttuΪ5"Zإ1p[wnJ+ׯWACC\=%@ԣ1(I*h9~ipt5,jDkdžG/踾ZCe2ۮE;m^nޡ7"fƸř׵fpڴ4"A<*U!K?%m2 2h m2h ȨEFy 䑗 5/C*I6gLw"k%ĬtjzfJZzrJZRrJBbrBVeM"N0$aYp[o[u7 ]jnյ--f%b6CR VT#{ aD+ff#D+ $@ ƶ D [ъd"7@ 56aPԞ~o@ @ڇTrؕl$ nhm0@Yx|-ZPb7@ wm7s\n)..16$2$E\ w^l>8w73 * Nz)L=O^pnnER@w5vՂU. hmkINK zo=J.҂倇*^EIti;ukL{7*;¬_pKR^!ڱUwaXmSm,NEpXP\JI6y}쒂:$el Af\FUTo֑s}W] { d+@ ,FUP5UmhDD*NB,Fï~IyEeE2447+.npmY|A?qN=w-mUY(چUwD֨'.SfNFxLXJVrGM6y(./l!gn HKNIɼv:DI*%Qё //oWiM$>FHuZD;3;=<:8:6<53iW111tSqޛ._T^T\W(75KYbֆNQͩ`d/5ƄG߼D5(eVWC:?6;w_꥖ƦFeRT h(f6z:@]D+KV-bGD<~2X?3;=dXssґ Dzs%%Ec?!~xdV[?Bk}3{s6t:}S2̛D7539=35x|NJzrAi_CM]jjހiR6x"q_z g"#]$&,bZA$7Q1O@SO>yS˹H6K+J[MmM@٢T!ZapS"u5}XM_=ݳ󚪏9%g$:D[Y[Ѻ&4g=695jiNIO+ōܡ'k4*a\,rD ΤgfgFt-٬T*Ãh ohPEǺDkphP$eʊ+VJY.bѢm@eBrq Qp힦ֿLOاG?$*Y?vxlX(_ui4>9mSKiYi< OZ+frlqocA(r +ȃG+&JP=ʺʕAޢb"&ʆ̜Bz@*zk,c!sC/#Ik]߃L.//?*X?8TWۢ/J3y<W IDAT &BѮvUU)q-}RFifNzr^[,!Udo0]_؄X\ފKZj l5’PVSe}H"( ~^anFn:KV RIKS+y2!ȥ&f'G cȦ~C{l{?J$1-2j"h#2/fT5T%%dd&& UoQWS7mޖ_)`0e䧻-R@X@W5[p W7TMX9Nqyqz~z|rhV?V}$+DGMLK1i\jJs-mmsT++|z><;z;8'4*$8"((,00bC"#"X"L  m>mWo"eFyƛ UyԲ?TdkqΉBZ"3RVRݰw{^U.dykz(JL;+]s+S ];"L)I(j*#1",SrŦM9EGWhZmw@ j|*Z$O-mm{4-ocS6ߛD 1JE-mc[ߛD 5j}%>K{MDp&uӦB|s-?v|xWo a3|$ڞYȸȽ?÷⊹V e6 rUQ)[El) ~GO;0!eM%Y(ZMr5ў~>t+i44;*>`sG1TN>FVw5@ ]DkQ*aQacGõ,gQYHbXP%BYL)[2Oʓ)d]-7W7TWݾFYU}"5Պj,c ڀ5ޜMrJ|J|qYqHDȕWD5/4S-/($TxYXR`3p!8,%v*{s]nL=&O6k>{Mʼn3ZhZXl!XI]_ʯWR/Is%ܳ{x;OљtATƽqETߺ g Kzj"z.ɍ;7R2SeSgN!(ū/_| t&\'.YܨnT*5횺Ҽvs;ou}5MjW:MoF>^+ Kþx.='~+x6 0_:qu1t:@ DohV%yfLB "Jt-ҝ_tR xe%̒|BXFcc‚jk;B&Aՠ5j[-rsU zȀ,-J$dpئo[p +&6hghdhiE)O˄XeJJá}dß-Wq.q8 A 5+E +;q,)-Q𣄔6Rë7bMA} ^yFэ7>fYX0EHHMBDQ\P/:@ `2H&MӒ ʿw;CT-BhOYYΜ;/BDc!_y @2aҪ5">rA9´<D{חKW##,a c/wMUaygϟWn Ǒ K O|ŗ_2ۋr"c#?3L B}sWIWoh mD{~ 0y ZrMh-]vo:-+Ơa jz$t8DK/:?Q!!8 f *LpQ~{q_ ]KK&C`[Gª}%fmܺ{ e~ k@*HH \ w=XN94yc.5VCƨ7ܑ`JR,/P6Fcka_mvȰS2SK.1H K ޼jp; _zy9%2ah(7 E޶\M-qOܷ ='# )G͗Ϝ?5hkғh皚ǔ+<&}Lֽ[EoC#`zl2r3{/s aU|'Z[MS- cFN$:V݀L.Q#dXcc,w̅hUo󟻑JT닞mV}+/92~bSnID.>DuFݪ^FGTU ) s!WarӹL Eb/y{Qtۺ=EnW/WjϒWq¹f =h7艣hxNvA66Bz! ~yEy[e 2$OG:sut;@ JGWD;`Cx]b5H}`*IaCh *z_|./w%A(kVr!ězLXl}fBV`sg)(VA@٪MfS dn߻}iVP)q`p,Z'C#BaYT-E¢gǚbxVۡ]&՞%oA}s=z+ׯ\r)/}KnޢmA&yfqi1Ng.q9B3`&:=܃mN ; !. Ք+uTOD)ȁwkBשt"PkQM`2`_׃5^Q ^|u7P+qQn埚{=D*pfho:ܳ5wͤV.Wͳ܃@ 64߉I@ qM94ku\S)J'NȧO[G~SNvIQ( Wv)G[}*ؿ'ZI)UiU55KW\7@ @Gu8~owXVO7iww8@ xbh:EX0wI@0Gכ-=vuI@D;o0[DoDk6I@fD0T &iZ>hG'Fq_;-@;ݽ>EIW+kURP?-y(@ l|$ں:KWքcQUW??=;=xvI&'ZuР0* x /GwhQhz^|&&Njyexp:>J-OMOQ;b^>}9SS-.n.)ڑ$򽡠'aw|w6^hV7/GCSCE1^0RXShhnжk]Cae|*Zsًgb@@a<`y|b<6.нRR)w'&%>yīc(`5OѶ۫!0Xuvw.)^Go9W0ϤX|εWUj>~xpPb80]r~Qo4OuS"Bn /5jELYPocӒ =y ފ$R ;:;.^xՁ\6|S[W ZZ,]F%NsOdrĘV(cYv\(Si},/CUnՈ2y<ٸW篾}2߼wM׆rYp츃@ߪ*H@ B-wNbbI[ ? PVIޠf>2XS^Q׆GzFJa VOCʲIVu:V*X.\Z.:&/Ogdepy\ؽFV#iN}Oy|)yD.AY Ob.ՓbDjBעM&NG-=Ϟm|SѶmfΝ?YNLM|Wp$/ B:z4%5E\)x`Y4mӊLkJNIw?2: ՑGBBâλ}vCAbjb`hiRo5:Y.V 2۸99ވ\mcgO΃_;pýzsN` m4@ lVoOLOgϝEnikINMVKȰiImSS_NMъ.]t=pgF bF9tdد\3<:5hs](̄˝t`RU]MeϬSyWJJD sFF>},=;=>1T*>;*_.ZL( yGBO~ﷰ#c#nb"=vY_ }7)WhrpQDaT-܆u洌4Y^Yy6-jo/~ǹHG#IbT+BBC~o ԁ"~AQAyE9ÊK;ehguG8|`W<O~zy_]MJ*Z[=9915=}=jQ2R끽Uox@vQ7uYjztOj{[uu?}i\?T(BPʕԛ72s223AZz|llbΝ;0+ijk"%U "iDRR$BʝN$5Y‘Է14+80.6zlfl\,m鵠b/hHv32R a'Vjh>O>|ػXiiv׺D;5Ll4洷(_V*B/Dz œgO{<.'5翸+Nzp \}pF_ʫ*{27:=#f >'jhtZNnNcaW(Zaddd"fV0srq 7>1>15k?19!淪[חIS+-@>mn[+Hحc݁ި߈hy<6 {jjrtlݠѨ*zgJ]AϸRTYYވ$D05-A{gOGݢ5FՍ˜ak|2zywUUUbbcFGʿ~Μ9r?G?ѯ~аP}+W'?Ǐ>H=;x߾;_4?iXxU)|뭷_eN#u p6-@ >mdDN:h5mNKJ '? @Y 8,wYhYI%̂UE 0Xӳu u[=?  Eqfn)"*%L J B JJ Zؒr ;.RSOwE٠lhBXxQbӋ×5+L|̬L3!1ajf9AAQp@oݾuĉ8*[h Fhm]^6}D[Av~t]Zp<[#C]h^A6UE${vW7VI)I}ݢEj-zeHBypjrh n'*;,*ƨOH<71= ~W?J _u~A>[4u&#׷~>ɦ>9wV 16 8ׇ}1&IzV(h Fh*f! Fn2L]NOMM5Xz ,dKy髋C!C4w:5;4@VYJr2Ex-qzp"l؇sDTBc+ocb td:9DqpfmimAo߾{r`G _FEGy{µ^w_|Wʙ.^%*"Z!|(:[TKX*ArMNart%M=91΋u`ehu:d##+3:9?V6jngPy_ͬOOs31KQ9wLJ04 i?7zj{g{e8Txd#8x୷ނ5]f[c'G?{646_|܏GA &'BW!-@>mFaF^iaMde[e2\hyT.)Wُ^'ѧϞgȃW] B]+3<6p:ܢu!Z~>{eLo?|xȯfTۗ~3;i 9Q'gsX\VTLTZFZSku6%n I 1m̜̘ښ~IH^Gotl4Wu/hs $19JV50<@]jhn %/w~2 'Rv)(adg;?{<7:/f9YCU-$  Ɩ}NV 85'޻z'ӿ囙 X\ρW=@3h FhsKr k",ݢVA˥¦yK[:kUj DWcЁ-^fJK!c߂[Q'-~["Z|*zE[k,ZHJ9Ԅxey{W:t"XtWOWgv+t>3, SfӲ o7uF=^)7{DѢm/76zSs;K]h}V[_#xC=Tp+N ^VZnjrCHg{CN$-Sl5 z&EӢГ?N 6OEUU(t#"7T K٥0n I+Iҵ/, [t~%_T-%AP"byɣrh9(<'sr!8'z 22> Ijv9u-pذ닽FARb SPN7!2>mfQf~YUL!\EN} +eJ\]γr~s؉tM٢t m*_Ňjj $[Jn?,ae:vCnY ӓH~GWfht5=353Ca{\_P't2Tۮ])i~/Qfel+&u s%\\y0;Yh h r9n5PrKs;;K8%zixUZY q`?[e*(bׯ |F)`vBDKw IDAT ;65/58M]SX&Φe#o4bj=Q^Yӓm ‚L!׈"Ҳcw2SHO#%OE D܀DՌ%zݦkB@"fQ9\qxqбC8gњͦ&AZ{Zz@Q]]foEѢBѾz8445#RH!/R|95%%85œ&ݩꂜ/kꓒwzR>FitFt8yyCL7hI!R)@/--צXD"@ p8:<Vp#c#~{96ǀ0^Zm־}#]=]F:61a'@UKlz7lV*ŚLDK )!-**YqBPczdhXgp bNp8---UURHrcbb rⶶVPC ݗ~-Nvʥ\kB۷PS%ϽyO_zNQJankwAq7ܽӨjP^|ǎNjzjOo-)BE)zE\.gɷq@ĵ IIIF6aZPpΝb$wCC}bbMMD4!)`4MF].%5MJLUj6'%'EDut?qyjnfdq\ 6.k> |WѤ8~8D;DBR/}:44455%''ox:fta)l|||\\;w lVCTݗ-L9:1m*(*w^ ns +3߸փtQoW+ĕbq@h[ǤB )Th z\nw9TZ)AuuE *L RZV#et477d%׻SXh>vbwݽyfn^.nbzkW]:18)sIK/A0nBR4(Qm}-FgڬfdeDB )-aD !@8 L˯.@kRo:19lkE}VmvrbŽMT"ZRH! /D;uw"uCs;)ڠ "ZRH!evllo'm[~by֌pRH!?&Ek0& kbez!0KZx;OEkz? *Lc,a̭,A/-:sȹD;6ɭfJ®Dj4 8#N"m]vhǧ vM.OFO~7999}}}W ^fffZ,LeBDK ;d2h4٬R *{zzRi\\f*kg"Z@SBu><==}||nFLeBDK ; ^V3XEDht:%Z$n~Hm%Ipp k"Z@S|>E:ӌ cB111cccYh aGOjڊ áx<Ǐ CIIbimmp8Xڙe}u;*Zś 7£kJJJoo/ϟ#MKKeDJElCD\F1ZlE{A xz Β/XCd/_~&pz/&'Ƚ  ~-)uV~Wljq8WȽ 7xh{YwFoHԲujfjzn Rvn|+Eۖɳ'K/cv/M>`_p/Ƨ[u-n,˗~ߒ2&TӤttO>ydxdbl| /rfvX >{115ѢmJx0]^PLLN=q;g~]7a(s%B$57xp:>OO"Sw#WC]!Y\92&TZftt&u%da={LQ_칳wޑeX99uuJX6^۫뫻]xd Ygw`֭[4 .uw3~]7`hdŋ5H,ztzF@(괾ngOг("2zP΁;ua_rVxN D۝uɳ'667bP=1?OH%Xi 3kd5~WwNIDx961%tc.VURr{vڝvt,GF0 <~o4wRw'2*[љ%e%x+XÃ8H w9_0v`AрҌO<ȭVkFGk&g&G]6nQ>84ؠl9 5-Ug`@ Ctku9YYoV]Ç'&%&$%ܾs#pn!lgbh  ڬ:-^&kS@V@q Lz@‶~a9sre0Xo4:tbttvъ"fYL`+Lyu('-uxy^~A>8pK6˘gњͦ&^944l^Kn;>b=FQq<S3̳bb1m=-m-/]TJ:-,F0 A|CH_8_ZVo(zl= @L"ų~m3d xnK7;M:} ,/?QN(2n!lg0BTMfZFZ-'/9ec]S=b(caݻNBڇPq[1ȡC HXjAT"t 8**O;w p9haGΊQZ& u@H:Kp$S%¹]ft5XP.U<\v54,ɓ㮅S'Q zw^}da9ZT\~10^0lFG0PyYJgE46'c YgfkATt"2icmNKO3Ә(\t|C]#kf>Bbaq=6/9&4jΠE I^sB 9ԡ;0R c^JS~!+>mQ`>lRCz2 ĨyO{97!Z^rVudl-YdineLh962qk׮޸q/pw[7ߧ֩[4-h۵ց]R' AF[/c?En_ӓ*+%k(RSSb%Xh9exr0Q%l"m ތ6,1P \.S(>MXO}>іK{-6 aQiT-n˘ON%Sl56u΢;:B"V"Dq^z͝#2082y RHŋ~v^2&Acc,x~/3lݚsȹnl6*}}}xLZI!u|򥿟W >h$.ymce-猌 oeݢKLI=|¡9TגM vϺ5E+'''>]*=֞%OwǗ#FD{΃Jp(>b^R32U߶zyܣ,^V)eljvqڔhF#NtE;190;Nj5CCuei4ZtttAAboym6D"AO٠h#鑑̘вDvbRQDTLXDdXD[2>___ˀ[UUbvF߸qݻmV7WVJ 2~YVeuwاJj@9Sj1?a+n%5&wȄ0XqmE555Q'6a@#&<P{re#A .S0A)c* wSHaZRTۘc~ ?Acƍc掚x#4A~8vB2LkpWxt 1 E5)b%rV4 cX}Lp>)UvhKKKH$t: !zP T5;;O%Y OqclあfLL7fv;x2p8\hî'NOҊUYcJ.m(t&:b1Ľ{0.7 #8nGbæ}D>&$Iohc(-Yեe% E`Bd %Eá7R/D&g|BȂ ؊QYYSX<_)ԇ/@ 51 0gXx$)۷V0IZ-3~b 'xhwnAHXD31 yJ*`C.DnѢLMME3E cR!-Ceb:1;@@aƍu.-ދVߩolk].Jol|tjjS2}-]5d&{]@vPo-h4Nxr6 IDATD#0"crn%Z2"}XMohcP=|/ыע;wPz,Jy~Z@ C-L6r<_0::7sb^E +Și!xQS%Jh|qN/q !!!h@f$Z>H>X8/**|w9Ѣ !!F³ "Eqeԙ .~EG&,ދg1vnD+ g 3zmUc2K ={ÆdWgH bDpPoDsyJAYaMM v^t&bZTT|{Q/{h1 ㆗7nco&L-j,Zlnݺݢu]ty@V$Z lgLDEA*kqY5K_6MKwOׂϩgBD}D[*1w¶58! Ο:vؑG8|ءG8|`ߡ}{"^hOYhLl.':.>2&6":&"&&6!AV+zGXvc5T$| _RNNw^ڰh}bvddljnnmks5;;c[&sw/\|5</*6uPk:~7"u֛he\^&͖F?4zg7|c6h. ן 5X₫F-k7Jݯ]fH(~k#{{=wfNϙiw;N` LH 2Hd!I(! B @dLp_MFXz<^v٫T>˕/ڀ7>1, f:z.;{Vh}SSj6`t8eVg4hOMb6^mԭO&dC;"#ήť3 ,vzFa~~Iakkkd9͉{ңGRRRNumTL\aQMIICYYcaa]YycM 'y\f~@$7oݬ,?‚v~T$QF!2樻Q؍U`AVﳧaZJU\\a~|Zrrp=9Eg&>>+hi7O&%nX+sISnǤ{|`O5< W^xNzڂl6WTTHmkPVCEfggkkkMb<oee%--ܹsXF»k-C2==X6z{c?vAv Eii)NS{qz/!>&.::6zDߤk~} I-3ttS>f-*22;?19ݣ@z-SRS]ÐϥaZeAYR AւVjjR9څ/B؉mlvjD`32Y\\@s#z##Cx1,@6",>>SS.^g7M&icݼX??Jm;zk_Uܷ`4mݤ޽C'YNpnffh4'^O>( ?sww4NS022fN^UUI( %'hQ43IQZ 2 \ħɜ,5YW_ QoTe0rʒҒNa,n9#AjY,`h2Ibo  ;eehd Z>{hƝȭi@٪Jl]THOpݻwsrr8KVA La|ArOOL&mhGs 2^ g \j1.b1$ кSR &MM򵵷"ܤgxGXZ$qBž^ h ٳUT]H^,fWANCZ?!hGIKJJx37oAW__WTNOO4w:V1RRc $ `-7v,hURRLVI9šb:uj\>) Śyw\`K$kVjGGzXCٲյ"iL-o'P͆>%_bHvae Ҟ>} vPԏY@AfX@c555z>G;H*l7 4"(F6$HhbZ)~?-mn^NoojW|2Z[ũ>!̐  @;dŽ޾ށA%",6U=s2 D*VwtM U(b`=[+ zֈGzsDs4@;??WрPCUE,ց4|6|<R*>Ta`" F7|*DbR fԏC Z  @lee\&$}j |Gc @dEnO\‚tY,# >A6r?V*etHkGiB!OgC ZP5ĈDZBɞ,qރ@F] @@ )hi=Ҡ==r f%%9} '5sgW k>h4_ \IyIyIrI)\Vzr+QԶT75KS^I}gQ#Rt) YY xWՂ&ĂZqG+S)UG[8Kۥ}iFHk5Gm!X.#`E!Qt 3##%cccpFM,QQQ>),,%))BF hQ/AD$8AHDި~5ؤ f; s{3a++1?huWK+[}~ef}k=5Mf"j>|8>5tͨ*t=19= ֤E`x4&c>Xݳn4q{ܶ143?ĶIFͣXǬu>qֳ+>77i->{.f**@)0+a "/P"b"MKHV* HAnƸ/p,keeaJ5gL&PBs$r48? {Ifg^ZSRs#Nd(D2hiHPWڥ/ܲ@2ɨƨ@DGռ; X |!)h3ʕri࠷yQ uc.bؓ+ `* 0'?Hr>,--!##-p  Z6FY"s鍙(H u.B &Dl6F^w{۵9N6 {u㦦&YկA Z*_{X]׳/}w=w#?~d_-<,mB"%EZͯn@"j=bÂH j 1 VCvHĂFӳHa!) -adsG-02+b[͙`HʔlJYVi|rH0m& G-rʆ+F?hkbN[Es.'\*I3 [ZF aCkgqPeAMdoJ'EfaR8-&{ i> Z !q]Ҳ#]T =53+cOMMkHK$@{z$ @|ϟ'_ Uג]C w?&Sq5H.3,Qz0X بB @V6VzD + 3S: ՈM>4o$00vN:q8hEm4hEfr--_Р=hhAIK|r|clJU_V[w+++jѿs&uxW_w Q9"h+A+ ?C%@_cvڅ".hmj'ȣӪ[OhDiО9h++v~9#ȹR IDAT$eV 0ZXUx -S.Zqll< A{mIu W8Gh)N]> qi) ڳڱɱP''4VQ|_~;uZnfMV6fVkԙboD?IQG>{ŦCi=J洆s ;=dGV}vYY[9h]SQX- 7c%޿|%&j\J.?!^Ezdx5qps:jqbr\y KKe\~|*+. lλفtV}xЮm<\..R#UB{2EE?"h20 FGGMFXbQvvVu d6vDHHLs8Hf[Hrw]LLrEʪJxbYZV|ȌֳaZ0hooc z@Bkkk~~~]]]dTr2 d q}} vjʅb1c֧M&n#Z wY{AR7Rܸt#>r_o><ݻwSSScx|r}}Z|<4I ZBRS)vvvSWq@ ;Rd1 VZZQV!w.q8UFhNMNN;Xq+W. `wKCi hݻGWUUz-M=-b11@PTcv 0β٬s~JdR8k!yoiiS ;r=h沈\/3I eq[[[把 TڥRtPww/J={h4LOOtъf Bx>ڊ8=oh}Poprꚮݹ5nb2PV(*lm5gԧ&\bZI kva.:DQfN[w\cmbGՍ7,"QRc=!0^'&QڬLrbeUA V;wۃu'C ZQP3#j===¹ِwj8 :eo8redW}^۴@TѼ~ E777\.Ef]YYy\.c O?M`Z'-hWw.,hoŦ|AJVZ Ķu0[rAٺ4VQ|TBDA?h_"DEEMa)ظiIΊޠKLLvuYYou d6޽X**uzXkjdwpEUCC}Eeyc=!3ډ ?֎ mn݄dvw+ Hܹ z0-.R"pHM&inRR>&kww?~}?-˕UŽU*HR|/D"R[EEEXDw96??,|ԎTsssw[ZZ>/OZ:&Q{M@{52.Ff&WpR*8 qEٷ2xy&*``ކl1sU_ܚjdxɎWa1w3F;'%5kVu( Y8b]H؈yL&AAV8гnjeeF2Ii};6qEggA;L tj_")~pظģVA+ѯl s(AK.Tzbvcl6ѿIyϟ~o~s/ED˕LX,RDl6)F# . b( Br{v;/"- gt..0zhkxע\qAKdY]]`9?3=*!_ ]9,fEy)gAs1] xje,:P^zT*i I6-n`rxY^]> yFcdNWyw~#^$ԡZ>ȣG2A/ Z3~!/MРrdnnnOop zjdPLS"4h&ٓ9س,4A q@@*"nL: Z^1LoOB|Pm/)ay|OgDّ4hy漼3;g0r{ .Ғvx<=H$2 '|C/ #о{NT욚׋@=7Xqu}6xM@Upsʙܼ211188Hmnmm m 4hψϞ=.2Ng0rrrrF>3?AZn~ z;/l텅G˨ZXXlQ}}}(!ud%XDq:v`-cccWX؀63::hgZΘh].@D"mll$Bĸ;A3b&f maP444`0[%gC ZrL")e{L.yj[GߍC'˗/F6SQY^Pfd:@x"= (@gg'fL& smZPVRc!%PX^z`6 =SAj]]]^\xQinnFP())CCZNLr9Sd8q&/1uq,8o1dSp8@VMLL c8rɄ4nM /Rdbbl3;btVO2220 Dڄ~D&wӧOe2YAA]D8q|H0hß h7BmVC^h 2?̻",**B Oс2H+`XqqqlT F/_ Zcg>n;hq*bB(CfD@[__ۋE'uZ hbUZgTTelFĐ ćڍ`/OZNT̈́HAQa0 ffpUpg꙲D~N68DŽ]VÂ^<϶ qsuuG2>dTd 6˿8jjjS 0H,#٥v;4‚hD N葑<Isii)~߾};55oP0BTN ՗vpdP+Tih3 gWf}2onh-9 +:8LLL2>+Ʉ +@bh%+..v}S h1%944$@+JAJęW^UUUl|C)fC@PAA#;?{ NqȊ01ŸqٖcH RW8@{1sT#- 611P(/&222 `0h&.`g60@r` lóg@⺺: !dc\.{q/>8|F^a\@raYVLt6''\:M#0 ztGPŠń s/2"0-NHG8-Q5Øb֎HR[[KP=L䬁68'/: FBcxm_˗8{vBTߥcr>h\\ʈ`?hQVt I&I!ZnTTLlUX─B9h,QhwAZ]P76>F}Ljdwcpww7 j1İ*Ta!^P>Aאl ABဖ0-*X,&k"J`&$$\i*s2$DB-""1h@~Ʉ ?3+mCckE%K>A43336O@ Ԅh?N~4 ;::p}. }1)v6~X .PZV{epWb13??GM? To"e'>{=i9KF} jPwڳyX0m$:^q͛7ٖ〶fhx)B<2 }}}$eQZmAS GFFF`*m}@ u"QI 926$g좂驙Y{jjF^DFZB%#a+,#zY ڑ5&dm_АV)k)y\EeX[O J%9.M2L)))]]]pp\]o߾c&''!BIp!rd^XXzUK -!G0~OW.D*7Z|h9SC#4TQc'ƀK1yxw 4߯|@!rІ:BG$sJ$<@KG8`,5Bκoޞ/_d2j.Gֹ֮y1hKW4hhmNk?Cvd0h_y3Z?>|ieȠO$?ҙԑ-}+?_'KuTԃ_[NT=2<8NѨ'&?GkEk8jxvjʥ,"e\XS؞Up26@b1oܸR--7oAsLL4I@f%ʪ޾ަ&۷F։>bOB,X`!G'aZQPH7sssv[?NQ3??ET7?jwFg ᛌ@CޝD lkkjxyG〖xVv%nzRR@nXDf jh8;H=CQwDB44[vC6d@d6J$⪪ʟYr9֝U_F֊nȈ:<4@p}ĎА n~3)o\\\68%;;+##B׬Goed3DˢKww[PRV㝗=~B?MXy듅]Yܕed}@ RFGG4e|b lD6$!!al܉,Uzl F.S|eh{-XcP|tTr$zF!%vg/uHi b?;8Cgg= ~ppnj%D#oS33Nט_E\z ˵RwށcO}A^ /_^i8I9hsmvBޡv565y%RITTP@)7w ۷y @ܼ4ImOo/\ÂpNLLvu hE.H@`;9dnRMq@nj tD;5БE鿵@{?-L&5d׮]CTWWt&y7OH5(loowttTTT8NQ©/h5ZqWL>1 ,uC$:>d1Yd2Kع$ +[ \toTܹ86-  %\.? ?NIâco/H$4@س IDAT;6 +++KJJz{{)..F!dffjBU778o@Ơ `YMM}* q&okkSTl6gq@Qڕ! DVVq*54%v{V^'J6"0VkYv }=6Fd=%9VRa[A$ \!SwX|>]]Bݠis:4/eG"tSHU7?ycO46 @sssccZׯӠ ŕ*n)M-M[} u8HhLKK[[[#/E- ΝLܐ:K@h +X,BrIbbf}}=Vh0?336+'Un5 00mzb!#ӗ֎VB@[RV;];"MOO@;33R"g}YVV'O9ͷVkWW׵kװ4AbB;XB.O<븽íOnPZC4h?W|>u lZ,vyx|pG:.-+蝮vZhBv766o޼)..h[[[ O`\.W$T;wh4jIk 3@NgvssJSz={JKӵsqE2Ip @]ZZ@ J$/^JBI۷)`W.gn~VZO"~G'{fԁA{"~OF[r<~g@{:ddd D KpkDDN#%ݍdU7Á2^pkmmZh9PZQ,uI* jW֖Ttі|k#a}}jXFw)/xˏ=Э鬬D3u,2WݾN~Gsss9#zEyw~#^gC+-|DyZ>Ih77^ZWTd-V64ֿx0LfA^8Y066?}LG[vss/x܅[KW#;bA{49u}? h=9@;QwtvO D.&W|m0z{'띢NphSRREDt܍IgA˫8)W{> ghvrǡAE9%Bܬw 78aܥ/j5,`جҊ҅Al`:[Kx|V#/PRQoee3ʢh]owwbq8'i9F}Rd555^I 9 H$}6UpIɪ~4v}s9 ,qítOF!uqeQ" +Y}jl5GQB Hzk<%--@x~V#''/'7/;a3篬?x< r,.--߸q!cƍ1 hǢnxl$## M3O,ƦFj1Y].OLJ-p.)-E9Ěسz\3'Ql P$ ,ts? ae0]nzEepl 'O eȑ:h ,}2)'ЗR<7?ւv"ZL0h1 ek|b`67G3rs|v#&' L:Z}> ŕE{|{ʬO|zM?vee%77E:ΘMV&!`h1&&&JKKM̴|LR^zUUUE.cȀ8  KJ("%hwYIfT.fONT.9VWn޺9-s%3+߸y>HmmNmuoo $ZG /^x9@{=0kp38ޏvdtU}ʾ`KhQ5i:0=wF8|F^h Q,T*)Kjj\.AoܸD"Y޽C|G;<<0Ni0f)qŋ>---nM1X07%B v&+PE$\AYaQ!M}Y+I@,x ~`jZU丰7$9Dʔgq9 7_n^O>~MnLyLVqKL> Z͌ hay[[@KQK*JhwF}QQZMNN2L仔epp0999==]  0޽{|>uu+Z=dUhe? #2 kYY7o`(UTT8TJ`g(*"Ϟ=p8ZΨq]df0r9f>+_,[ֈyO9hPTê|f>bɥ϶lh$663PҀGgY֝}gs Cv}~qS޻ 'hYL ]j-PUrpCZhO}Ȃ|<¿jOgsTI-&\}ʾ!(E΀I@T.Uk`3,s sONkY{vH^U#cc?FCVT󙚙%ZORetzvzfn攫kev'g(|/~o'ȣӪ[OhDi~:EsOMOϟn~NyGOh–i{zVZONϸWWW66I:?̫3>zxoQ7jAvaq.,/&g(>ܜĄrMv(H mIiIOo7ʪJ(Lsxxh2Io@k0H!Ɲet<++j`S* ٭,bm£]5|5@k?cZ3( +eqq'?Hiρ}3'z]]J5Lc׷=c ~Bcҩ55*АFmuz8Fdb75[t0 @%8-x_ئ3};&=j)bT+˘E> ] CCv[=-?Tf\Z iMZӢQRk֙u* >@|m}KGΓU{rHYmliJBIgJz ZI{-%V~B$Vʋx-*,-ɻ:IiI |vi!U@kkB0)5Iw2ںPx[cݠkRYo`XV :%AVreE]SiieH&vKˋۻ؄X^ rnKd %%;c$Y Iᣯ 1hA=޼}xbcs鳧Tӣ8A;=? ~TJg6Lz͌Vg2Q ɕreh6IΧ`Gw`RGt9|iYwAT qh{zNFgv:&qq$`*iF) 0{Lu:`7Ћ #%sb'íX *:3֖B Yll\쉾4뷯7b۷P嫗[[gۏ_~EqP~fÀ(UZnDufH;Wf: H&Tqj-1-@)$:8(XEA5ڑi{q;qC OO%apB^s];053Btm̆*申 dJW (ph& +zv֦''ϞF^֣-bAMLZ|x֐V B5ã#: -˔#J(<Ty7 =r}@h>hر`0qӘ4wɋN;@J2<.AQaB4 Qr_>^]tf,b1b>UAI|!np~VZx~}`qn?^^_?ЂBkhc3-ho%ރ]xޠ};%oRt+JJK;'&'w-=ݤ0:Ex/N{ǏzzcX$>8@k%h3 k*Ђ=;u0&Vy?io3?=]U;[S;?{g{q91g9"K"01}.!|1k9YHdO>UZmW׫݀DyMQYUDg- ‚FRe"2ª*]NW~Vhj v#[CaKŽG q L w_BɩIwk=*!jWFӴ몗-qx ƩS99e Zmwޠn@ry/u7՛G^mڮi?|uN:1D+ĸViΩWo^uvYo~5c{vGkKfagaZ&j0<6lhw۹i Mӎ֝[/^h ht9YX@{*k K S 5cW VVW. Z$/bcʇCBC0!* 1V,MCgOК~ť[c",rGjجiKgVΡ.is2ZEeEg펽;6mDӴ کgSQQwVVhO>tM[:t߼4 IDATVb0nK={gG~PM9bAq`Ebpt Sd(GH5WZ+mәhhy3> h}uc?rqFoA;z&,"lT:@aV]o ?Yc& Zꖝ=i} eߑ14M;l(hb 2h^yv֩a9֘Z8vM2ݢl:FG^̾XcXhh8mMIӴMs~v-V_6[c[0l}V{ы/_NYBFjyi^_yy`x1,hmx^ck5]@7_x`]4b}MFr:]ȶAkj3xidb@KGKP,,M4m>hqa0v]gXCezs4M f-,)K4½.@+yվ^i-M7?~oojzia&hiz-_բQգg/)kcc>*^W&hiz-e7AKkj@)m7;{t:v'ځZi^Wm@kU(iiz]U ?nѶ4Mޠwh[9y4rQħŇDž?~@4mwŅUZumWOY^96 ?4M?qD+Ǐ'EQG7v4h?`VY䵱vAKQLZcw|sP?NLM|)Xyzt|(J>9Ar q?E7_ϼ1/yԳfW"oҌMjV<'&5rVay{=S(h5GsNk{kKk˓OD]uzz{pvᄑE! zTT<2>" >}8hlhǦg{ mӡ![(g](LL㡾Gҡ_oyҌ ^R7wډ{UgW'f |op]ڤXMut-Q^0^8DGE=gAKQ|r4h{{{b?uuup cC K#}|<|yNI@+n ž<'0u=r왛n'rk~~>{88|0:  *Kc P }ׯ nܼqYUS%"93B](>/%;wR)1) 8,˵p{m۶a9(ԕOG׮WcFsJ>GACtz7nSK4k/\C`xvB@A( m;)vCdmmȽ w2'¡BQ8d͖ͭ%F _NOLM!2ob/ސ"5LU";ÞM?w$2*2/?``GE|{=*#"#O<arԴԸ84S+\l90T^()۸P[nmjnx"mI$ Z;~ : xGcbAhSb KZyTu33 !{S>MNM.|lp-өp\8n㈑(J&-h}z?ߗ:qW/`+ b޲2˒zU=ROų'ؗEd O:ϋ_ ߸hLgG]{yy!CIk[CQ":;w黤/g_J  /޽SPjl47/Y%;&SsRTUyaFAFCKCLLOVU[%%٩vjժkKVJʖԐU%J0*Eb.04AXGZ,]A7-EQ2i2$a`HGkSnSϦ01񰦱nb&UNۥ-(Բ-]!lPIVaV[׊X_QҦm]B?X8ҘHsGp(:NLHO09#!4Sߧ]['e%_ML4?eZcc@"PP7ƶF!U-;lec`d@(8IFEr:AT^؋g.0& u2]V[~tS Z䓣A+MNIN\eR ǧ#cSF-RrRƌ <2}]p\TV~E/&jNmeEE̼%䦖Th4!*zĦJ%b[nj}l{viEɤehc10v^pN<hqSj[32ppd06-VYcC?.=Ǡ)KPpEGZi5e#9nψGeeҲD]⸹YB}$iyiRY,r\pN` ׋.KÌ?( }0*% NHr*UL (**2:KrtJ40ULW04_բRȺpl鼭qVU( pژU5Do298oGgZ$R9l aL0$E6BN^YqXBAKQ|r4h>HcRcjյ!rJ-29R2@0Mۦk_|QT^$,ɑIAc CjVW( JCN-[Y}8ȚY9Deםtm⸤ĔGCKD t$EJ%3@XqJ%  y ø-EQ2i2ڐ$pxb8`C' 1g;9##Q Zd3ښƚ k4r|/?AKQZІ2nZ䓣:.(ijk㲚2ӷoohفU 'uiھ~+P:;=MӴw_RZ@h)A9h Zj剠(J>ER%Zj(J>1((ERAKQ"h.(ČZdAKQ-EQ򊠥ֻZ3Z"h)Q-EE+Z"h)Oh)(JFER%Zj(J>1((ERAKQ"h.(ČZdAKQ-EQ򊠥ֻZ3Z"h)Q-EE+Z"h)Oh)(JFER%Zj(J>1((ERAKQ"h.(ČZdAKQ-EQq-ɭ,)/Qiz帬 ݱosi{-ʂbAn[iizݸ^լ*TچֆԜT^oNK)IJO$*vٯ*.^ajYR >$׺ jA֢^nѴtudD%GŤĦƾ"6NG/XČDjeٯΩ-0dbXU}^vvw !^w+MxrGHMEjmmcmAIAIyI{gB%U܎5%e%؊kT5 WJs )*+*-W0xO /]t; K#Z(S^h2} '}%󳽼OYдu :x`mD\'O8vX|j<شeC?|8lRPwSnϋ4;GOE(@Z:n߹}Vt.n8u1 Lo|Eؠ㢱ZWJs;gJz鳧/]tՊ *[i#=I~ 9x#A˽.u:ܻt9jR$5#셳AAxMMCﻺBTlsȆyݴySdl$LgoޮkquGÆ,%{\Ry\ZQzk7Gxr9w*]] O;ѦkgѪ J%4mh}y6?hOPNe>; Fx57o,vғgYY љ)ǀwxl8(ȉ#)jmL|̽{Cx_~eY|Kl|.!-CnHzp;]m 5wు)UUp+x/Б/h{t .S5ix&%&bLؙW{:u|99x n݆ĔDm~[ uZ6 E77i  YpJ+K  1"eQ\b(q1p^=U%M ^c9AK/@{cPv$dщmf;Bm^I}{^9Jap4 <=;/M%tAp7wCw;Y`xRyI4Üt=٦m1[~,K0y[*/)<&/o/@H ?`L9%XGã]\P=~œMUwݍA-[9.7|ofP[ȘQ +:҄Qix (}'N|rfB? AK/Ng/}jJj>;pv}A0ꡳ38d^.6nx!\8o vt7D*p^pޝM7UWEOݪ޵gJM{G)MxY %15Ѽ8hR}:XA[H#b"^8=AK/[=>ew\tZ6*>{Vax]8һwRPsNEpk`p<~= %^:Gv9RNZX:ue|4w>.r e|4wۛO8DaXTX@`/ֱyrq{g; g?U*0w㦍jt\4?-+OJLrvX@%UuU:--gΝIMOꘓ2%-o  Kmcm\b\rZ2ƃ^g@,00XY|]9^Z;кNg?W7>;hSSN]̅3W?U.>z[)iXLeX^ 0>~ɣ1I1vl Ey3Uڈ;i}SW_YWJs;Uz"v6£-KlߢiZ%Ł[ӡ5:'}~71ƖFdxnap9gϟ ժj y6;9?ABBRV*8hxFE!WF Rh߁a5 5x+*WVpNYD(^Vn32IDAT8W7[..;))hw-Xtw6'g${pϼZNqg=P9]yx܆DŽRVV^vŴxeIfnHlj mv+B PEBďRޣhhDΊ ogd"TЃ$P_mZNZ`p BR^^]{hlDyK@YܚX.*-feKyarC"g|^l;e#/~P_۹Yc™G H9.4m/ nv'0 l^WWW*uP4F@b1hHC*s umn6~?ӟHÌ%w۩}k?S歛)O➨"~|~uëAo~?HSG 'N<'/]c>z?!Iaw쳁vW^Vhu_=3'OҋVP\Iw[o[%J  bB'2a~P24YQSXSC}Mߏ_ʈ2l֙uw^^+%-[_ (F^E onzS4ʾ'N;x, U/d(F(WBXAX jAQC]޹]h;=A?۶o#2a&E’Bnz{?xC9~ﳘ=@ς0vtO~֦Q**+7~EFE*#*g?=͛09 @bZ.nǟ'@CIiΗa,sX/vc{,s=OMM 3rv Լ{nRi2œVV?CXl%%%3ZCsP^GӹuVQ={ P ܹSTT|LZ}}N0m2Ȑ^XP}C@GFFBƽFI}'aVڨnU}Cc֬_.;w#F:q%ؤr=e0 Arss|P"0 zhUB#؀ L`233.'NHmSN&mY FK8piiiA1r%_y8_]F[jj.h59=X*y<F_gO!H2 N7Mpa1Q0^[BS's*&p1%2K.ձ1/E1܁Q A_:Fkfk J+fħO)=Rrlis9% _/"J \MpOը]X&T2jig||'ڊ!A04uAC "a-q4ל8SՕRlO*,M(&WzV{.68ԧW틼s 4œYl2r"P1TI !}#[#VhB!bgddd 'e" RD1"k[F:cK,*V`3|%0‹ŤԜ*ė*Z%*pf'͛א_*M`TPqؑHp1sG]Z]1eĝO('U (FigJLݓݎR?^-ȾTB-/; Μ?qWx忼k/ Ͻܳ/<ԳO傲GV&6dQzpyRH{Ӛnxn7Z+(Y`=pK_ ڋϿ< =3O?S! =b2rO34e6MmrOơ [bF>\լ>_O7 ˈ?G'%b#wo>$Z|a" :@)\$ZxlaZaNj[ʔcNLgio:/9 6zѝPnn-RT5:y,6KDDgsg$J;# E? HA-5p8233Dlv¡J`Q:@֏,%::Z\zpZYݶs9eY%qkR3iN 3ISߤ9zݓZHwt{͎FdϒI_YY)-s~GG-a544F2*̙3[iwMNkk++,,YAlRnܥ͖1kf웲14q "i4tuy]&ȹ.Fog]uBսY[RRjŁAm aTa\VV&YW_}U]yQ*<8q6;L{Dwt}i lM6j _i;rzCc+":t—/_{vm`d#_+/uG?ech=43<&:Xtd6,cgkM`7;EEEeʎ!BW=,AC8SNIa9 f50¢ DݱU#"at/HҸ#j ?;4R-@Z h_@ܭ Vx5F㊜G͍a{048ɴgh;fʕދm.XK+H:L&%ZU'_,%0b2I71Uh9444#q$rŢ"0k gǶ^nN$F%~Pvky}oSǍ6AO،oltӺmVS۫rL_S{w8i5L8/OK|@7MMMD3c$`Rܺuj˖-IfE51nb$nʓ֪(=by\b/XVF>gk#v.$!_}ؚVj4 SipG-ׯufC__iTTmWaGJJ * Je@!ƒ`-u$lܸaDۥP/@F EFX6`AoZ ca<& 5#rHZxg8`Ă51:ƑV(4Wn\yg龡1P3v]SuCgyo^_o__ӗS tC ZNSL\ꈐ ]RE EiOZÞt93;4 4 ZA#g̜sq $ $z9zz\60r}nǘS]m)!q'/{Gf&g.OLOa46iԹAk[^FyDǬK9/P ˌ!v{AקuCNߠg`;0 Cڦf* !A-mby:Ű=NWFsVOsA/i2]}~O#ꙷLcMmbe u[p{ђENM:)g噠]RuQW Q+e(JB #~iadqZk4NSOVw$Bnj-/VXcK*Dv!L9}4+jV[---oLYI7[UUJ ,/]t)Ь0Tb;wbp9K׌F#Ƽ؄|o~@yq_1 A:\8 viZ?A&=°Q<>!D<e M UyCiZfbz NkmPMҊ/#Z?zܜq]|...XLUVVJSf?&$$DCCC9vQQQtfYZnt L*axLLLD7Q0pdrhZ0ca9!Kih/SjZ ߠMo2ft!|dff&%%aLY400^w|2͛QsB]\={o.Cp:PB>$10'gOb8p`aN FAa\266wa,< #E)1y[jzjemR1Y-fEg81WSYu'(9|SO!=qoS`0rssU*ս;'9x`:9b/ hRRRąDœ'C%@^ʴ £x08LG7ee`ʪkNIIKJ9~QG_ 9aU0:tdyax qOhS60%+;S=`qN wV;~:h%v޽0]QJov0ca=p=n(ff[ej͙ܜ)&nFvKdd$ӔȚ84lcoӀh7&&&(n ̙3[lx"z<9P"@ +w4K%a#ϧ[cQ`絵,):r=+b$a#CŹ#/T&KIO P۽Dul"^>+:+l!3aL# [ fat0&%{zzo.< #w̷gtoخ\(jSDGZ2͵2U| f<AUPpuuuX/BaZ{᭴FU*+_5޾q[=5rwt&$ܰg*}7ъ?tۃVpW1a{#BEsF,쉍F0auYMvƠNM~6`4UQi9ҎH<ѭ0ܶ0}5~_k#P YҩT] GDxCC {{ǎ6l]ΔV44w+4 AiY$=L8 >P`hDt:1ļZ}= `Z`[V\WZYz>Ν;WUUmIr J *k+ڛ:JRk҂ 4"G|h>2 sZa8eDlR)~n+tL( =$Mu"|Ç,7-ZK$Q8/q!J UgPKIk#@]HJfNfLlLXxXDdDjz*U447w(;Zƨ?(\%0 X NMMeWO,|Y FGGւr(ʈ511Q\7+**"GR_m۶1*++ ShoM,YV:q(<< n"?zZɄhV[R_b( C!n? E&sΨP[0B\kѾ$ &jY(RVlBlؘ11s}bNG]^S0r{܄pm.S=Q{{;&5LwAk8x:PeիWNؕbZR +#reY0j"p=>Ϣg`0f9au#/PRZZ$1ĝׯ D-BGµw-b;&0Ax5XKH7HҮגRP_#1f:C%^Ah-aĂDr W1{ eќ%nߖ`Ex`||kךO<ɒpYq9IIIEEEUk4 窉o|g2---aaatAwo]ZJ}}}Ν;zhTTxQ4TVΟ?OyyyE䈗dddI-.n@ڵkP.\d/v6٨ |5b*v3z^g֭_\U1aW8l{j(FSLRSS | |$.hm޼$cZ0K!!!C_kkk,hcYF%q']QQ - #od2xgb!%T,Øn7q(uϞ=Xee>O}|Ag_ƃLH˅}n"]8ہOݛ?`ǩ 5Br9|4f%)#N`FNƶw뽢"^1655%$$*F(D.((`b3 Off&?~\ N7Ey%N,AL FA. CGKi h2$2685ǒ%r6`H|n6'?\|hvbS#DS qbRR`f>ċ+-/] .%$YJ t[f dѡ?K=dWUU%2i"TT,zvP_G7C$뎄եpGJJy<^rq^j|~r[` @w{aٜ__\U,Rⴘ&A.˺0#YVAddY1eDHU#YVAddYYYVh09w! `oz8uev# oStiLv *3꫊ˋťE֨"c5iCKh!~n1A]PFKmܽY@Of7 ,3N$8~("2"2*2b8|p\lЬ]`6mԡahmђ4ol|Cz)tPeUe^wa6=qû$?pmc{Z%on?qHcD 7x*6 ́쪨hjo:z0WChBօ/b4RUgΞ9u2qvm[efv56;΀iCC7Z`~8j"¾sU]Fk.&̾=s?oݾ(Lh*%-C/ ;4E5} 1jl}w8)qp(ݼګhgFt:bE@Oa2dVnhh35`f?\ύBcQ0%DJQhOF_gϝe{ۻ.] oQY[/xHAq1b:H1{wJ*JBBES~r 1ZFC޶wed`x8))MKo5Z'`T[q~Qwo޺ٷ"%"60BG`0_XzVj~:93ɲ?hfRR ]h"37y4#`թD)F]a$84d<秥H.l4"C /@REs Z8k*ZV ̍',[))JB0G4K#=_Mcͱc{a7M#"e$Vo&Ueoͨ0EX#[ kEI /3$*MTI1wͿ򻹣ͱAup lPT+^+-`"* 6H5MIzv]c6[{)YPM D1@G0dbHԢ; ?aU=sCDc#wwB*v9: Y=Xz|T,ka$˗!#tTF,_'{W H!a{eyDAɲ "c$*Zw?YCz[#cdwTzUKWssGSsGڑvejX[Q)Ņ,k#GSYZ6(tf~άT6W4c1+^גzu&7_iLvSMc1<XS՚TX&~ҩzz{|x>gkFo`^90FL顁5'~WuCeNU'}%mͥ?XcmƵllf?756%8}/>wUCEFɉO?ڍ;m kB)euÏ?x->xa,FCQʤw:Nמ\ܖ\J.%v&{+nv)IkQFq`&f?H.5KW+ָ/ϔ[lklmw>G֬5*qL֒vm9U_ TDiM5TZ]x.laEE;"VmCu֪\Vא>чܼ}óTׁL]H6^6w8yt]JZm֋."UUvwrUQQ1>1ptuw-ڠp_M 9-iSN4519MSc{OY{ Q<|,#7=-#EkrT3ΠZbY;hlbG@7vc{b3",C<^`lp.R+ͷޡdrrrdddAaA~A碢,V @pnOٽgӧG߸~&S۔auׯR[m׮}pM HZ O7i'ۓLG;dE\h8[S;\fJg$>*VZYWŸV>2:bQvV\CC߰q?jdrڳ7o/*5VW,`tI>:rJEeEfV&۾_bRbȦ&O?oVGWǎ;RϦ?%:.::&ƭcGٺu+7˙ٙ۱cޠ$jzMb44 ڗ..]Sh>Sj+T7*`?q,M4AɁCk<kј( hnmT`Is-Ĩ@k|SW߸u wn=ٚPl.h=Uf9]fy%7o2GMmbk47o|yȳ= 켽OOeUN[ O=TiY)EE iMbT^[:8[.pf]h*ԍ(w%W9/4 {5^R:ߦw]>˻;5uHun(mQ"RNF=TTFe׾(F##ܺy$3Wsѹ#٪CS,pv:%Q믿r0d=y39=s}k.2GF18/66mD7)eV߳g ,Ҩ0ZD I_G~gjP+c#rG %΄r{j=Q4ML=G12&|vu[ ګ2u pCG"q-^ۢ cIF&g;ծqOv2g+Mg\vLuy.X4`eϦqQ0 r@mlقbb-6 ŜnN;&` "X\ HZFz콆eիo+#rNJZ.6$ԷuT6֫/ɏ8Yct5Ό NUؑlSёx٭Y ,SJ28>7wcef.LbnYņƤbݕks%O&eϥc<&&f#Faڼe+ xz=9>/KpҌ*#3cɇAE7?PUk!ţ]{ |Ueq9M6]GܭsWR ݱ睃ӳ(mGƄeeT掸QE5{̋b4828{mv$]g::lgL#"K/㙰_ʂV(t*Nl 7ONi ZVm!!!N:xoA鉚pڹ |> 1]4XKE8H$Fe%znrEgVښI S kZ:Z&CTPM]_Z_Tu1RZjF򹜔KeԴkZShmYT[iQLO^ox䕣һ2y gH~Y3mNGۚjҭnlilhi Ʀ\n3.*҆!nuX~$frF&F z\~ESAjYOeJehnUնWT6T5׶5vUkbvݾP9 $YE1%zl֫q&k3ϩvPjNJ("BBP!Aڗ'^^JB+CmiW[ƖncԪ2䯬e $Y\E1›_awx~?2yK ~2=;Ԯ= FVAem[suƪw=kx5' Bqp`dqXj;4-&ZNkS4׶+޹5FM`6iѭ&_K1UMSUUCړƊ@mJRUt%DE].E_iZi ~o{#LEpD,kBddY1eDHU#YVAth%ud i0juuuyyyIII۷oIN hԍQ=0IJ1zbioo///LHHF(H,ׯ` FyDN hԍQ=0IJ1qdfST4rZ En $۷0S!ĸ&KF(H,wbi1k8H:H(utT` l>#2bh 0]rZ En $ѧ~J5>NiqZN hԍQ=0IJ1Vd IHNd IHNd IHNd IHNd IHNd kw߶ IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/missing-song-elements.png0000644042355400116100000003726312640736115025775 0ustar00ensoniceng00000000000000PNG  IHDR^" IDATxxUe3ϽuwΌ8*ѱQ])]B 5$BHキO |vs&$H>+[{﷾|%@ !   p4|嗟}٧~z'N?~رc;Ba !5Ԇм@73#=zmmm---.@ y0DΐjCphmi@T0Vkk+C[,@ y0DΐjCphmi@Q@ll6fdd ^ !2tPCnK L&SnnnbbbDDf@ y0DΐjCphmi@W(?Cu֮]D B@^( 3w[;"aPWKLLٔx{{Cd 6ݖ!HP("Hy_YL8uRCmͻ- %GII  B11::P;@d 6" bb}D LALLD LALL4uUU\;lvZuhYm6;qڭ.y\؅f}WR3S?ˏ&Gph]w5pʲV.[=>hqv(+|VY9Qߘ=%#eꌩ'O1b]T`^Z忊)\:i{ZVڴЯ۷r5q<+_U_UPRzۭ'~WXaf }ݾ~VUs> :o g7<*=T=?0wnVř;3`D(79@qPISsz?ϸR}c@8܎vw힎k7[=Ck(. H$'L1?ݤĽ!ϦM.޺mH.^-qᒅnyO!7EeEwQRQ~nkWai!:7ily'&O3O<ƤW( B'ᮻMϽZ =oNEMNΞ;[Kyƕj-P@Q2A#@ΞyбZK-zJ8X;. [)N@C]7i )oPZh@_Rg87CokDaOM9z4oLsϿ7p?YIVoNOf Jv ;pɚqƞ8ppf'QPGL2Cj,Y_a3s2wҔꝝ2PrfkT9dI[a,8m}z[4dgSͲGFGt;Cq^(IպNdwJr!oySswθR<E!@uCWC ᠁:Vk}qj 4ʼn]Kkg[o!)a<9{&T -^8s}*%kvƕ{5Tg(]95nݵկuЅ￟s#)ܦ! V*X2O2R]:~w ,W{bB͢Æ 1칳Sm\"9TVa V+j+A?~]gPߋ1K+KP5\fg\[c@)qL[cPyzꕫV?ԓ#C w;²BJ[nkB1r:WubF{PHU_u=MAԟl4|GNA:6162:2&!FKQ_fFDaiYiٍD LALLD LALLD L|Ao4SR%'lyEy9 Sγ.5cg͟^]iXW8'q648\^]I"Uw9=c+ k3\keKj-.lH 6#Wg^[;zڝ߹T+n[3Gn@u1/3zhE26&:uRáܾJ v>fWmWkSO5{Xp[&`uY#ߘWI$%͙7gm^x!L2uܢ\$`EK4eҘqcvTD3g U;R|r<#7rW~y( Ol[Bgx=:l薰- +_^P ƙ;.|ӭ;m|@(/O@<' `LBY uY؎o{dFY3q3g'ūd%YQ[Al츤8{}UuVF ˖/W~I> &Cј9f8n =o6cө^=b;{7us/^x 6p<),-T (ό%S[ i?<Ћ҇t{x[w7oܮ3` gwA.JϞK:9Q1Q"&h0rF'a*MٷyB40bز2 cn ޴+v>#WedC%>KȐCM{1aayvlzPjQ D l [WU_ŏU$]Xq]bJ"#a,[B!w˼?󪹪K/j| 9orM<(b3=h` i ʤ,?o$ 3H&g{hIzHo4Y*ՁVhDMJjJSLֲM^a^6 F!r^mt6:L@ h#qAM:-Q:Ă-Zz7h?ӱ0<* (#&PTg2uʼ^pCQWQ rq vAI?R2ř N3 Uۉgȶ2UIgF @4K|yk^ Ir #C<!~=4tO[TBHs8FGC{Ek"vيe$9rnR{ *W<G߆s [:3NrZ6o x^zi`.iw;d*2T y'L62Ƌy_~^a?i<~r?aM&;eiK=JYH\l5UF< 8١)}MJ3HIOܻ*7.(! zW= fn޲݂r̙. NΏLDԧ}xQjOi p^C=4`f4tOT4in8֘kʋ^"*I>!4..gO& _9?[e{J8@c>_F襁 J ׆ӝ6d|/xEϊWBAD&aw348,^aIM2^ 62!B_((鿖2ΨTUn) \V"|b!Oq( OJW} * }wOب'L@PLOi(DjJ}NIQհa sg(Zki;z3IdH}11i84P3kymUTByJ?{70[7(G ԷEQT @yYsfNv "F|^nZwz̛C]F.@YKqgD}& ,#!V-0`/%yªA?gFa&?Cum?w^Gdf z!msYxlc*iIH}]&/jQ׈zӑ(&ƒn]x11l2K! [iP1MQGP64R9iNyI6ߩVURKru,y9Eeeg1~p_zϔ0 _"rGC"lŌh_?bj^-ճT ۅ֝qX}k,3c'qUA/۾~Rs s^%&O!>)ӋyNQ`P~d* Ď[x=Wa%4#n+ &f`(֬]3v'[FλKDڍE,ΡsMALLD LALL4XVX4| ;bv$'&fmKO ~_|O /SSC!#''É'θO>SĔ.?,T 8HIi8EgΜ9n8.BBBW_|aX-[E_:ӕIH4|ݎ(k{?222`jTLLLSS`2:+ ^t9y$ܷoZ駟TVVڵ+%%>0lTWW}G---dmR^zQ$y 8p}DܥAN344TBRZ__g 0611qѢEqF uT6= GTPP@L P0xUUb?YYYd.K𤸸ٱcǑ#Gp~Ȁ4[}" gvI.""֭ÇG)é2@SRe32 ̚5) .%m.jH'2N8J, pfi`[nܣ?vl䰰sN^0k___^1w\J zyyy!Tw6 ,PodB|Mh/:P5p%NC,G}" g6pv;Ei@@+Wf՘ a{W?T#%z[{m6mJ0WZI8@cBY4h g3KáC8PTWWsOJJ111eee˖-:k׮_m% ~4q{mm->{JCm<4'''>i&8dbvDDA!`, o6Ss>γ9s;CEEe|AA|~W,7 hˮI~Dkx &~Ç#^| " q44ii @AA 0HH@`" " DD44ii @AA 0HH@`" " DD44ii @AA 0HH@`" " DD44ii @AA 0@osnfE ե&" EKIAU#EA 8}lV V 7T Pi0ezտg?3Ǯ{Ϳ]" 9DoF{>/X?`@ް!NYA 8WeP_ {u\x@a" Bop$A?6mkR[$ &iM+~awNj/UWp8G4ο*" Ghi۶ݭ{vng"= ~VY& |{i޹dxVkBKKywn X}% h26h7dhٽ{7ցּ<5X~+= zVQ* |KihvV=CmꚚƽMsG+4}W2W]A 6`*/6֋.\yeKbݻ||Νk+)tg m=9/KA 6ॡQ5l 7S].AAAo_oڴ ie/lCm.[tZDƅ. _=׿גڶ-۷_r%oBCCw`oI;797SA 8k\,_\7P&Mڊ.ݻe]ŁA`lwܱPӅxEEE_G9d{?zwY% .Pipe˗V>Ϳe…molӧO8q".mlo,U5m7W4* ܁kmܲdvM6lt:5]xGY|Y_n i Q ©w\v?oZ|o[^<pE^wٿkW_KmaGʺʪ*1l "6ₓ؂Gvw;TV@._~~~BٽyȐw./7Tlؕ\9eebbbU88NX7p@-۽M:p8VZ|r.t=RS_Ug4;olrT*0qm55;J.78Jxo[F߂6mX{vH^]U=?i̙{V>mݎp8N!pCvhSvs;XK˻o^k+/ ?TY>b"&&:/9ZF nIDATz=g?,7v%ʬإb\|qN.˫r2{dzip49*j+2SynWM7nnukmv^u_?ǕW:q?~e??/~%?ߡ T ɷVXT չ ~ݛvv]uץ]{mפ^sMW^}UUWʔ++R"S.sʟre))OJF K/R.4[V.19{ 5uUWlhf3ʫ)8}/ t Ccjsi=ݤgz{}YNw۳ՉVEME^Avjtdⶐ!Ň'FlK,JJ6򵡯 }^ ~q=gga>+|B_?__z3G^ƴ2;/]YiYiglƏl 2bԈ],i]\o((9jS]b1~Wkᒅɉ%;~ӑ>LKp6s 9|r> ) ;FTLtu$[q5&!fYі-/G#HJ?snj^s@ Rݸv{CXn-ʋ\.fG.x4Li,X`p  ώff"U0JH!2I;cw2]zv:?.bK܄g '8BG`Ö, aR#,Y ݷn}Dx7.+/!*,  2G gQgK,YM1xk0S݋ʊ6m 8eQA̜=gf(ëOZUDFGwܡF˃BꪸSkݺm+y }AQ&( J."ʘ0ADoQƬ7r#JWcaL?4.ruj֥yΜsBna.m6XGD_kGqf^3YI<\ċgM! 1& л}u#GI)/Ri<&&M70#sY;GλIt2Ǐ`gaW!*UKRM1𖽚̀llJِaCЎS'C bS"QD͘XXZY5襁-8mYOd*{c>N/5{\Pȳ%˖F{E-N"CB(~FVh‹/ڙqo]ViǺhFP^E^sc葨*zG 40{v~vEmݿf(&"m;"肊=)ATMjߜ&u152nMX21AU j7a& .]ED6t!\$H'b텲?q>ADzPؚ̏;R#R7am I er6+fbђE `an 3΃xvW#s(@)T-uҵW. M<U]Z=>H1g[6LFz| ;`lSOAQ1uT,LhLIph캆ARP#cƍ=d?2t\,݂бϫ SJ[x98j?qz&4PF/6cǏmW&'@qSԃ20n֟Y77og7fd2;*xC#"}a>y:i1r ?=a;urv*4hlU8T#$8JlV,A!Sqcٷ]/iQBTQ8_-Ξ; ac\L͆x1/eR,Ɵy}%Q#هz:L&AIOф߬,\=F?2ϴ#=w\UWt8\,MTJ!}F{GTu<-B'SO)Yx 67zQ!}: fٟ8nppLJ/֤I3a„j\ܡR{l,ٌ oZ"=gj w4xEIqEmЀ;eMFD9s q Ќa(jiƼ7ǓsG;DNDҔUc[SGrde]a]!SUc -Xr/ It4Ћưg#%gϞK8n+2GEEn#܁ުWn0`58=цٹF GC_BAAN¢_v;˗/G_(1`!FV҃y Y CF;"HEÿ9H!p4D'ES QlJ' bqP(ExC>1.Pzk.K@dz-uU^^@ }(##Csc /R3,FyBtaVNV\ɡ A pPp`FKē"/E' p4o `;OiVF(钞Rn ƍSNtlHͥFidzWqq1ыjqF`,KSܹsi3 >8cX)hw ?2>#08| DqVZŁPU%sCiHLOTC%h\y7u nj2Q{\/J oCt^u1,ݽpsm Hé  yիWw ii*; w"  t|!. N>Cqֈیnja;Z @p Vp  {gW8t!*P 2l3]M4K|t"˗/g\@\܋xy@͚5q~1H*x^ZZJTqz1 w]H4g(N F # *,4rz!Pݞ«"@9rX r̼ v;pIBqgsDN ?C\0V]TX׌3b}||+&3EF*+WD2P^*.ē}}}N"ЌځD" $Bpn!p4g(:g(TB!s)?%!4" N>Cq:i`,5Z,=y3z{ MܠI$< fT đD )i8E3|BЌ.W"oPw}d{G#>,66lP.mpU AAiP;8bzޡQoXt}@Hé  3S[[{t" " >#9.44ii @AA 0HH@`" " DD44ii @AA 0HH@`" " DD44ii @AA 0HH@`" " DD44ii @AA 0HH@`" " DD44ii @iN>xᣇ:r(.5Nk7SSrl 6113H4H4H4Hع4gs49z)o " &vά^_P+,=7TdqZ<" &vndg VWWe-/ɕ)3՘[7?{=֐Rkq[Hعʒon7G?-'m9" bbJ*;aϞCgg6hʭ]pk悐̅!eVY;$ &֣Dnہ6ްYfWY`rڄAvi" bb=fHCqE#oh9w;"K65YeE. /j!7JicKH_*0dCVaZ>'7+ͥ鱪A~WQE^Nq]PHXY4 ~ fv`x}54daYksB fzo+_R^^Iݶu3fM[9`W|D`͞`q: sCr[9" bb=iJ4utK͵ 6*_pɶE* vd*ibOYu-K{yMoIe^rfעyhDIe ]wdwjvHXOPdsrvLˢjצ4mnYܚXޚ]ּ}ooI0U2`[v[UGGKei1I/͢vHMԚ;* &փ. Xb 񹳂}>q +\IΠ gd~CrYCA Xlkxլ[xG'F$Ǽ>n ~n~g׬[" bb=hHCay|gk}WZ_fܔ`[]6Xdkh}W#%Ա)ZE-}W/sVն˽SSw }upniFYmߒ8[u]t@eNHXϙJt{KmRSܞ `EL+#s&gUYjhYXhWT*kI8692`*S]alJY%e,YPZu}IJi)C r)-MUݲ*)&/v`ʛK kjKͥvRkD0Io̞ɯ͸ԝKu.S`[h-\" bb=hҐl55n52"{{ršĜ¤ʬjG)m v%LiuaQ;cR"iSZVi+.M{Y " bb=eHC~i%zVN| $%%7>%7.-?낊J[mߜ?cּn6Lg` {lə" bb=fHC^I^-B>;Y" &փVZY[Ɂd-EfmA" bb=c괜BKS5ך*rrR)7ڋ+R2{eƣ rGm9" bbP:[b#CQ茴Px0V[[b Cd 6ݖ/n 90бc@ y0DΐjCphmi@`@`@`@`@`@`@`@`@`@`@`P^TZ IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/main-window.png0000644042355400116100000011005512640736115023766 0ustar00ensoniceng00000000000000PNG  IHDRx& IDATx\Yhn;wl-StvtFŎAcEХK=zHWiR M2{GQ40<+)7 QJTD%%r@%*QJT(RJTDJTD%%/ѣGSSSݛC%*QJTҷ8"8%p h. !x֭W^tܹsTD%*}P # PA Dfm?MwwwSJT-N@!,@$@ \ - P H"*QJT (E(K@sBP \把 >G%*QJTҷ8"8%p h.Aiƀ6SSSýD%*QJT'@G .vrrҥKn4>D%*QJd9ݹ\.8%p h.ΝR)d|H%*QJTr G .Ν;!X^>#}mD%*Qے6M'q-8%p h}_)RJT`ۖ-[\nL Xv.ĥcǎ ~'~~~fTlȑ#dGUSSsvv_,500L'ZАbř^₧($m~^ Ùm,S kAv*3-SG*QJ_doo/3}4[ЂBd&Z={6oތKѨf͚O?>Fՙ[ްaW^v:EFF{Ԕd\–=<m6<{-BBrLYSJT||b-x3ssXp H)wYp111#* CD~3 o4}r)))|Ts'W,򤤤JL.]훻YYWWW͡C2u"Ŝ6rt#aQ333OlXB77\XI{88qs-8a1##;p8a $XVq?3q1R9h0c'JT%}> ~NPSHprrr\\\Ax~[ iiiv~~>{\7xINPaƍFFF@|~ b۷oV.yBqdȈ)ߺu+bM4LS>NNN<`Xhh(^ȣvV bFi<Qaa!;v ӧy ;;;GGGjv>Z%h N43bzZ^X[XXUUUؗ0CC#D%*)5)iKzZeV6M~W&ޟ_r}2{\hO851N:GI]<3{!tÌgJ=~'Ohha+FN kGGƈE ~a F q8eR)8qj=6a6Ay {w#+**`dRRXVĵ(!71*4f`|D%"g !ƃ[$I_Eԫ#y׾}Z6Lvv?cEВooN3 N,Hh___2& g*莱[YY!(chGhė͛7A?'%1ZNHH8pS^^Nmxxؐ#GE dw%G2~X hАob[h8lSJTS-<$<Ŋ'0%rFF)DS]*c@Q9;;=#>3|6l߾gvy֭ñ?522JIIo6=Tj@tD9MMMdiB&''ch%0B( vb1SNa 1.`<Í;vϘ^cXBoM ݻ-vۉ'AS1"]tGN|>D%e'~Gu'"`4550n PB~`?%mtHtrАvc;HhtݻGOHL [&H"##1 ctƍ...̧9C V.Ҟ={***,,,ȱWWWq}t!+44#D~F #whF&'`0؈-8͐N בJTHВx">> ]]]3N[] N$&&¿_](Adfg-=.@ c_Y#`C|ammmbA`G.):GˈH;12/pa-׺sO BC@_qBB/jpBxJH~ 0THR_aǜ3up$ tMC o/V=]SC%*QK$8I3n;IzUVm߾رc^~3}2Z*QJTZ k KkKJ(QD&R:h|L@%J(}BJL@%J(}k )QD%#y(ͭla#oo`g¶Ezqlg]@C;s!lk3w=IgIXkh|a' X9]У>2.Sk9+v7qsaCz!lY-y`#+Þ7waCz.>sضκ{:}q_rsasκl@#lY/ 8y|l?#^;;b†,t}O8N98Ɇ vlS=OK[v PaK6ebldeIMyF*#|Т'g$$X/l8in%YrK(QDinH 4-4 ;+b|O׮.Yf?d1~boi|1õ+~'?Z,LƛV5VLsX kWj-݌^7,oY_3ذ,X_jʷY kW.n/׬dvʿXYb|n֬Xb|bdqʏYOp4WлkW|݌?Y)}d|a:Pc ,:Zb.Fw3>Xb3Xd|a6RX^s&}v] &]Bble2>ݰrXUsYB[aX NKؠd+Y, ڿص{ cW,5scû+Y1XǕkb; ֻo3| _36l%-W +Y?g~X~`cV~`.cc7~hNhq|VE"Rytϴt~R*8!,':7Xn!WP:@Zt :4hILYMhΤ& mm:m}I}g?jV}I>hQIh`jho2iojҾ&DgLBNLBobWL/5i7~Fi֠IgiF{I{[U?2iB&[j0 V}&_!&ULGL{ho>fzWMIioA^*ڧLgm>Ѡm`4jںmMkIh&GjmLv&u: &I[m+IB[>L۴\GST1hOۆG4iޢ1Q}ڦwhj1DcKS%M忧1K[cڶ_ҘiG4h̟6IS&M4јߧ1G[;4&i1B""J-zW U2)i=/O'%͡lA| 1S9 %͐3Lsv^ID91)2$q3x< 28k}Qyfx^jn*J )R*rm 򉢲cr/TzaRJfbnAֳ"WTz9”6'd)i i JʄneT\w<)bV%[&IŤoxb^JVJnqL?)}SSY /L“(_)ΊhrS*)%J -H{R릦&tIxˉGwwo|l L[PԷз636p=ȶȩ$]DⰌ$ L ]xGdq8^#-6ǨWcGz@11q+.JZr p+>-۴yS _P*k^v~Ң[ j̀Ve*3UyZ-'R hUf@Z*O@2ZЪ̀V hTVKe*3Uj< hUf@2Z'RyZ-Ъ̀Ve*O@$R hUf@CVKe*3U ڭZ*O@2ZЪ̀VfZTf@2ZЪz_֟Tf@2ZЪ Z7Uf@2ZЪw6/yĭA+ P|Ro߾}ʕ˗/_NW^vڍ#7%<ޙkʪr^`B~xTܒ*!#gx'_rȩi.vG?6,2QD>7y}>Zv KZ٢bV/iZhWW]СGR]?wS]m:CM{:пI:zlC{o줿CS5՟С75oSgȯW6uСwC6j֡&gTCU{B?SWN:?h]5oSϨ^mC;IymoT?ԡҡE:ՏtлUFX!MGMU]FWM{T?աCWx}}=QWt']ym{juti?ZE}^mm:VnID^ZMCҡo֤YS׫nFߥC߭CWSWݩEEfäkj}[::V݉Z]UO:5ߧ{[Ug]C߫n}ΟTt~[o蚿/:Su:M1];ߠC|]&n~?ckAJ-qgPhHׯ߼qiG[>wqET΋L(W4fAJH:nZ#u4:jr9"22>!<">jѽSh"bCc%Ds`FmKQ2ްS'!&.z\S=َ~\3 ]szCL\Ah$⩏L0S0ț:sB9&zSח 2!i 0 7ur 6z8{r|]nO3Nѐnfddq1 t2q4 v28ڱ,9' 7s}+CY[/ژckhmhlmʱ25cXDq]Kښ'ɛ8텒d_PƍHo]`x7Z( ɗ伨iH'&!!!::ŹL" |O/UX\Ģ{$U%Rݻw'NDBJW=QQX5>1qmmiKPwM{"#CrcRb "CbwODe/hn޺1:~/._p)I ug_>^圌-#@Y3d,yINAE%>5l/'e%gdb D ?w^DdJ 9,8{=zɱq{3 K %lSRHSsSCݿ;0؟WKN'e&KIʴGqD"LsG3@Kn%NN;vhnذ~`hP{Oz{X{j+׬Ys~Hо + +^[ R>hgbb 8$4h޽{+IYO(;:6Dk IDAT6K-M)i0-Y2L͂}}}mlEbaEETZ^^vys$,>bѽSJQ|r̹Gk͑ 8U[~w g榋*X6}y{IuIvQvX 7<~;wnE^^h’7T$-rru(щcm؈,^RlcӃC0il ݾ3-a,^̤l!CpOTSjl) D$h{{eu2MM*k*++bRbж,[_a +^$h)ЦtТ'Y <dPimSD2vdA0yѹr{曩=RYi{{{K Bf_y☸([#!gE{8Rv8st&0%-P\HvuOgjioOjzԽ{> 3F)I&2:L]PFX.qu&p8aK\Jx^|A<a{9o޾~XZFgh \UI +64L-Pl3 |X|aKV@ƦĪQ?tsHTZ!VԟPG?hZAHs BJ2_dD*@8xѹrK$ !.5Ѫ tήN鶳546jdh^--Ą`jrXC ;;'&qu,ܵ2ӋVZ-ό| *:')qVUI<тmwǡɻjo޺! 22$UEۼ% B8ND\;6ZU]Z,(>LܛH&2:"#7/ST (hjk:4qc &bE0"ҥK7_.^%@楺s1&;+N@T(ǤMޝxbLB*,/aާ%m&TWPT# YS  G_y/ǔ{'AGؤXb l b2Nh0^,(MlsE.K'utno?݆жrkkGK[g[>?iLZd177ݷosVVƑ#ۿ߁?*_TJѼT_9}KƮ.¶ӧۑ xWa<ځ08T5T͒(D_p9TT#H]C]lBl./<#m[g`|))'~wI^"aS(,ĩxKcziho>?<8i|bXTdPJ_sU:h.)QUs62;/F>OM.[BI+^~^ MپE"Ł,L217 r "ZZ>?pzM-LSS>f4qIy $ {\s#c@#1=Qy'n=3\DLKWKEL}3yƼr/B͵<ojjJ{޽w/=~PTX,-zKX&k/3tТfRtahۘ0w }2)_^Lp?Ȅ'&lvIR2?\nBdʺ{#_\RB/`nptBOOf^&94Ļ"QDؤXTcgs -8؄EU5T!GL oTH RR} +],(BDB퍘8NR>?//>%T+$ PHy=D0iiqqj8bt9`L8kKT&z LMn 8 <|3ܢ\LLDx$@q/S6``H cOLK:'BCBUƱ{t4ՠBpX0J0"l dξ>⿊vIy*IGo*`'+`pV?AJAѼM.zO-7 x{D9wDŽ'%3:bB~ԃUHium5[[_ ?u)+/+2!2:93sgH%ߏ'JFgb5s8ohuVc~αi^A^'3ScdfQbfm9͑$"-AwJ)\It|tXTXy] چq)-' >@!ᨣQ ngs fekD s F`T @5QQ,_A9`ȈeH;1o'̉¬R9q3]{G{(,.TJ(*GGtwܭ5_)t)6S'!K[3+س7B[' p?['(S+cIJ=?*) l$9U)dnrO5O14&Spd\ gy|rJ [x xGoMɅ}ݣ==7oT$k#TՆ\rJ-,hy qlVIN(ֳ2@&'*1hpdnfI 69EE 2&Fz@,bكG{>A145M%dn #x$@Vx;1xGGAL Q:_p#.Ȇǜg/Pw{pXpiUi4RϢj[jM,L0 ";08V$.BX~V6V:{j:! (&8 $%?c !!FFVvVN؜X;A.T#KP! g)UkK,ZΡ <% ;MML1oXRűglja f0 zd; fz{N@gޡ^CSMVɏrq /vn$^]f+l]9 CPyN@aѕWn޹un[bOJN=nW:hq4aT86$^4N DFP^hdfMsF)zoں1&%—q*l~iZ0Jn¼e!HJKCN|XAc "@p]`IhD(\'ԨsH0h' <;[FDp(%#ee½<>\0jVVh@> .bMT]GqȘ% SfI$j25CaMX-15,))/p9(ĸ>[J^fdZD0rz ǍN% <9#ӂcGaa5F,6m٫8%۰lg fL03 j!GD׷hVO|F K8pvsr`EI 58:O`6ا{TS9yU[񒲒 #/[vDV^ՄPF R:hqVVI\$Q C܌2L" s R ,LWPyf dih%/||#(iٳw\XCkhmJLū5񔼄`-4 '<#3O,4E5SOڀҲU(!ބBA!&,.SN|;FpA0:>ss9d 2Bp(y#d"&V@H3**{L+*!a!5x*;qKuYLTym987{pܠ EBu p\ޑK# ZP %%0QsWA.!aMf*β؊%x9;ξ--QY*#i(}EVEOxʖHK^e%S]sݡ#0k/4p:\vcFm`/ xJ %}SDP5|a%e~Q\EG[.JmkTniR8V(.o,|$Ankh9} 1YZg ,@v- ~ձf-DIQ$nZD_ӪhCTE@Vnɢ){F(}E<.%E!b-Q~j(}DVEO֙FABm}ٿF%J="qtK%J(}BJ-0%J(Q4n(QDҷOÄW;ˮ.)QDEɜA[X@7_m]mՍ˾x(QD"{7W_Γ1mm7Omu-uP㟡zW’-Usmc{c@ϲBJ'V\.k 55n]fWn\!~sٍy:{l]k+_v{^.] ~k治BJ헏}_J|C}IVp 8_~k_|vorSƼ]}3nZvWH%(#3L/F!j󃉛TV퇂?/y*M#DՍ5 p셳g?CG.#}MǍȯxzųsݗ\tq+#}n usS}Èk IDATg =GC#Øeyzj@w`bū^<ܹxx7uk)RzDE:>X5zۣZGUVk/wlAW@l/,s.眷5bX- b*^vG.^~ڑA%5@pǪ5#jg}>ּx=ࣛN5Vv&L'dwGw<!CDs.5u$vnz9#^*kzE ) ^o-ha^S=?{m8wX'˫oKe?/HKnݹX")ܾse%@PKFΟݻc( b>,悄l`x@1Jti:olA~z4-5 eM Qk C/~1zWH_lSSS3xҸĄ踸vH&!zFlK0%|2@3C>0W6S"{}NG]v١#ӣ⥹{_Bz*ZJؙڋAFwr6g`pnGfVMCe޿ X޺Mhbr7nݸ7un\C}?oai1043qwbTcS؝;Dkȣq7)yh|t|t{=@ @K:)iܹWd:72|37n^ɚ RM}MlBbUsME8<i>qkh'xGh _ޕ${О̭SӽʭNyy9:99؛1 jzޮ9JkO虮|!GҤiŖ$>\[3bӼ]tn?¯+k*g7Ї1.P;84ZZO8ann/HcZ8ʆ'KZV24<[*vuuJjk%/._ gy1w%#F:{:++J+Jۛ %ƙDD"SZ^ ځpxZ\_X *IGh7u!Ԑ{49h6]U[n2Os>6 fڎWɢ]~tNx4 )`0 %xKw7TTvpaPnIZ&<`342TP3gY½z?:? fVV1qNy=fu[6iXz x6^<`{g; S0X)`3Cg:Nw< y߁} 2D#X5n>Ĩ!#%lÖS-htiT:Kꋫ_# m=gnb/Zʎh\qL[;fv?}';ˁNJMbc'#a#WcZ; #up;ymj]SVUք\eRW_@K$4uﴇ@X<>9~~^>)o]ޓ3SHIM={ z{/~q1.>.,<螾 ĻkAqA-}n\hX(.]@sϵwKJ%\ƽh!2 9?".9K?$3Zsr Je(;'b>|QQMk[k/؞3=^>^.n.6v6&pUvvڻ=MLM /G& (W׏v߇ĔDo_ǒ }3s2O:D!&5fmlY;qOz3ldZ=xVx4faaX*.I0#)% X*FLwTC@>jcǨg`@NNFFh/c\D lEFFGG]q@aRѦ랦0su蘮s`AHqD MBrBgw):dIfv1c[XX =!) ."@0eie ?չQV)wɮZM~_ ;wN}q VhoVƀڑ Êß7*6 #p)(*(,.a ݈{`Ù}hjh5q-ۀS8&Gizn%f^{=R D2mXHhUEۦQf 9B .PQ,* a ,{=; 1410|^>8 |8]!m2 #`7*& %[xbW_Z9eM3>b/Yn^}#zmwf{z,$S ݻ#10šFb %VZA cӒpbk v*ˍh)Z "o7$ΓΉu KLK5zK\[pd2pt咳7AG_:]%Cg!D3t&%-~ ɷnÍfe ls8AڲAH$vtW%2HR,E8OK5(wr)\x-[df2KwuczJd%t䙳gp$O' +k+MMLҒ]oho  tVtV=QW4)n&jO{Px8V#`R@p/"&:z$.1+lWn` i'B g]sHPgo|a|@/ƅCq ZCXgM^B^V;ԋ:Ɩ> 5Yێ~ta;Ƹ݃79+4pA[rz2qSBV/_#_1m޽g7:vDK8'+cY{Yh bnųzNuv "d,WæRjvm^/˻JIa]IwA(0@Z{8aFjnaS[ Cp@ y 7-V;G ܂yr#qi@Ku֒v+=gJyDm\#dRQPLZ`l"u8wdY@@rDx! \Biko{I% _&~d)muyk7 L#ꯍ>pOe7?hPXz{cn`;_fbYr̽iUvqwAMDW_xiz]!%J2vk~mA~~Se=mcs#7;;s͜ΎP*-+Smo&K $hɒ7fd9:9"&htg@`mOIYA]CMjF]tlI';_/OołŒ4)WhƆ88_Ђ453u"Gu}5 nK% \mS-ځz!/܅ <>M>HQZ&Գĩ@25U/L꽼$3o^etN:o / $Hcltwғɷ#hctNswRA]$̿?yj|Ic!a{kSؿ40ܫs;wpM h FEK!jR0 _ [@ cp^XL(q`!p^x"A!㣑yQ1TeBDAc>q_,UYk~ /m+dd'8Pg|lÄ5hKfń u<"۱ڃM[iPԙg"-^m6}'''r՛Wy8kHzeo--6 rfiXʌ)Ӗѹw4z[/6rcŕ#N7_ :z|M>.+ډp[k87mFv6UD?*n!rܓ Zzg#peWu-*70ic-2{ԅG}v[ǭmm[%P;:|5Kl߷c]=]`lѾڂQ}'֝;7޸U9afƨ@_u#8dXqF^,T*HB`hs4804#}^q[yGfؼʯWF4]f-rCqF)^~?\W}ZPHu׭۰ @`6va H TX+N9uVLIXveK0.CoepD mc: 6Zۉnڴn?g|G~|Ϙ=oEޏ@4ڼm3z ѭ۷3'f9|lb,ߎ, w?n`6~smߵ{?Iް H Y^ pYqqqxۚdͮ;YSf_mId{[1-55~S W6;~GQo ܴ &[̘GʾF2h|hl%tO-8-kcV| 4I) YiմԴĤ8Lg2eMLG'uʧW,#8]CˑM#;*oI=2括߿T_ 6#ŷNFN#Z[mV3Ρ Tx+W^f+XXo^|ժeV-]bg43<|y_G!|˯_睊氁Uw1N3oʬٳiG{?ؑ6sWȂzgオF]U^m!3ڢ0x6DVpXQ]b6v/_?߼7/^ չȹ^W|Mi׿SE (T֙/'3q*M5 /}IqvaV]=TE Oa^7hn?:N_UA 攔˥<Ovvj5gΜKgCNi.xA֤.VBS4믿%G تQ1wcSS>{/- XЕ=|7Uꫯ?%ěFS U##/Mngfkk?kCCЕjhAa+MڬҲWIimxVWx@ =٪bKM%_~;wo%'&"mUE]RF*f<}8-= .)%bhhٳՙRuUКݕ ځζBjj/.y݀/ȱT=OU6TWmJGeTaݐz>&:h;yn4~QVVuú;6D IDATǥǩ*\h,h %:LžKLEh +-MILL vI~ 'Z/^>M<\vȱC1Q /yz|B #Rbo?V6B AED]Ӫ鵟HQY,xӅ:z .Cfi(xAތ6bu:o`/%&~^wOO]:&Tx@da *M{?ռjrvnՅP5י|eaMf½IRm6A[d* pWBm{{X7EDffczҹ"nԭdmQXOo4mP]M 6Kq56ܻs=U]Gj ", (Ѕ2hљhFwOIc@Nbg!hem2.}fNXͼqjYyI"5#Y+2j*ܓ0AN3UʫE ZV]]t:]Wgdݾ`jϛ`񂫷k5!o6tSĠ sѱTX\GtaL: ȸ+ GÇ}X 1jhS*<<2!)@ U#|s >p]ؙZg3 -{7Q5΄xPi x/zAsB}ahCɳWգǏLZ~=u v:;7Xs8kT[*5UY):Z%+Akjb:q%,* E"P\б^E1^TZToЏNDL3 M#CԙʒKMLJR2Rbbp.)eUjK]z+N;SN[E48 Z4F J+Koƨ.U=\vdeRSSDž*[_t22 lD45hKJi:+0447o 3rDngd5tVh,tle!o1*+lu$l Vжwmfb56-yk cEMEM}M[BDk VWoDw}l(eWW'jmo |S0Nie0N4%FOc_xK/w*<)gMDoRvt`60 .^dkV9' Mޭ]>7~;,?}\[_yBО(]teKzo]z1!-Aa3άݰvǞţvq ۃKS[fr7Oݺ2ݫm7h:gN܉4_TY/*-=ge^ SϚTׁAj|{9{l6?3?ٓ[vlQT:BC!.LTTRd4׬]sA8Qh'[in1oؼZ631\LXmD ˜C)R%% ݛr#ǧcAm/l=;UZWc}eláW^=(Zw-}8U˯ܸ3)9vئpo='t]:7#75X`6d܊ 8J>y C۲2ÿ/KYc$ڠz]yf}{:O3/[^I_\o uI]6mۄ  b6[qB-#ΤιGF`<:KW,MN ynGFwaF[Iat;k.e\7nܲÏ>[~zC}vߍ)]{muWMxP qlxXE4w!;z,Bx~ƅ 9~I߃T/]~YuK~`[zsw@CKЂQ5>ǟ|fђE+5:!ZWc:Ʋ5 ux.#u?1a?Vx+0Ha<@'b=ZbC G`p!p&ۧ0 'LbV]oGy𔃧t-v$,61M>Qث075[@:WT 1K-5["0MD?3/u4u.Z|[בҸ㧎#pi \w3qv|p?ы gs 0ޘW(AoϘk*RaRJ[]vu!iLV*ˍReǂ;%޷{@:g/E˽w&U&˨]v4 ygk? CyB7׏u!D7qμy&2290Dͅ x8PބֿJlD)R nqE1*}7P%c}}?+1'3+ =aN-[+l?5% m!s]ژ`YAVDd,ojÝt[]z?wc3Zr9B Yq7# rLSw`,QQL96+Y5YaHgN "a9k>_?@SsґX HGG-}ԄWb|Ǚ1 ?B0µNNC޼3_.X*]?k#Ǐ4>~8fA6FѫWjp-]RÆxT|26`?/('+?• y<4bEf|2ٓSY/w9|0 o7Ѵnu+ht6Ԏocd⥋WYwTV3˵b*EMNAΞ{0!;s +9l{`/Ae?3[ac IJKZx!24RB 13@ 14JX}-,B0ԔT_߼u]ZHY#ڱ&wC۰[B úrH̼Ly+U9h[6ov|]g2صu/Ԉ9qdu|Măx }ܫJ ὰvZx LjO;Cڃ,s捸|xKR=iɀpFnVq ݢuØ 1Q~#M[ ڞ= ;Vkj7~'dx 0#jY-,߰u]ҷo}kwT5AGût}&ewo|w?˷B")45/h""i%xA{$""Vۛ}u:""i%XAhZiVxhZtx<.""i2Tjq5555HA[YSHD&ScSb9nbScK*Jz~w \XTFD&u K n3??r_j`h+xAk,5>~3"7p:8nۚfA;84Ƞ%"q1hIdχb$2_[_[C2hH Zوx>PSWҩy[LmD$:-lD6zˋ[;[{ZJ*DǠ%ھ}<{׋e- AK"o$2-IAK"Sa{OAP Z"- Ak(3kXVd|d`$2%hmlg+^t+/Zh͛pUKU Z"D ڕkWzuy]8Κ;k3?¥ D$.-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-AKDcВD$=-k6YzْUKXpK[4o^b Š%)Aqם\mkAQqŠ%!hfco__U{ Z"D^Q  vv1hHP ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ͔uIDAT%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZǠ%1hHz ZAk(1={Mv$&-\=wʪʒ$&SPf+hEjOM`,TZ8n-FKDŸђD-&AK"c$2-IAK"c$2-IAK"c$2-IAK"c$2-IAK"c$2-IAK"c$2-IAK"c$2-IAK"JbAd$AkջꇾW\ Z"D6"h-Vg 2.\nq3hHt ZGU;v8tP]CFKD`ВvZ- AK"o$26_҈jGuPf}?؏@Ӂ ږ4?ـӛ!or)paWᓇ?ӣ)h}LǂH"" \BZB[W8.O)h?{z94v\jݪ#3R1g+hb{޺hEˈ( W,>tЃGu)@CB/^tjhy/hڲ`"" e W[b c)}h6/}Ay[<`ɂa ɂتw՟=-X[n+:wM;6]84o<b(0Ǯv]}QQIQeM%Zݾ~:2g2h'@ZFڡ[%Z5Z|w#h7n8{YsgQ 2h'͋/^T۫/\PP7 J"hv 3̜)d֜Y`N ]M._ h뷬d'DD?}G3hXAW'Ok7ܼpB"" \=㌺O(A/Gy:<]]ǂ).&"qF] 0>}8'ۺ ?z fܻsVcK#ڻn]{]y[U;q7Ġ?hcc޸1c1^&Īu7\yB{gI:rsJg3)-VQk_:MV|Mc'[kjp"GAݳJT"h̕Z-R" orzrlb,AZV3_;Kh,ѹ_&$"*WK<)8aێmyYe*r[JtBY3x>j:.1OHSzUԟ|`2@4Q Z╋x"x5x8O"a6mdcCܙsgk%d y'p:t#N셳H̯j5o_STt;[:Z}2ȱ#a0č蝨;[mA=۰MM͇MLӕWH9s(SRqqӟ:{ J~_8a/iA#A9vځ~)>9a2*]<AKŠ?hO>~)("0!YjĀ#5S8O"D8^:Lߩ9}"9-{9xAO1z Go 1OGpz]K?m0+ K7eؑ00yybjuPIIn5e2Lw.VDn=͠cЊxVwm/Ll>0mؼAc 0Ll>T9ezvԭ<&0W\p9:U>:V~pd>MvTV?K%0oYh3xǨlĹ9b_q)-/qY{ԌT:Ó2%=7"-s9.1.9=Q"bVݎk+׮L-B*A{7. *l+1^Ll>jj> #$F;wknq6D0^ XPT_3u+1YLX ^._\_O;|2-$&H= wGs[7͛mC vr #YG7ܯQqQ+9~+;uA{۠ёX?p@-,C+e#}+߫/cWsV-1;q; 7&+/KX-6!MVuIi C3'1 1Q~Z+__I/|ʣn>0x"FǏ^y _ WjuQsʥtd^B ]qh_? PEoqڈjg/㥴4QIQ&8¢܂\FUiUޏlvbڔ2f$kFvv)0c5)<VF!űOLoN-F0-pePdQ7 0aĜaԚ65.cG`5jx__7YF 65^'"/C*LϞƓݑDA+~Z\тݯ&oMmMR-fo]G? e;Aht`.[knSO3Z"MLLLLKF4Q"P1tx -I-cFbcaaaaaƅA2e҂jÇoܸq! 4.B"bለDP"..YRRsez 4.B"bለDP".ڡ^Lzc~eD!pDD"( ˗/=z^__oX;D7ɷXXXXXXqA"GD$qМp~HV ZbaaaaaQ@D,"J%BsA_c"q~XXXXXXqA"GD$qМpE>cc5&WWW2 XD8""K愃o6CDc/_bGi\D"D\"4',,,,,,,[,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX,,,,,,SX?yX]8 IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/machine-preferences.png0000644042355400116100000000763412640736115025450 0ustar00ensoniceng00000000000000PNG  IHDRQDcIDATxS[g-mM6)k;Ilc+1$:fz &!6.`Bq&rs|ga>G9 Q9şDI"E+"?!Ϟ={ǏVWWWVVI DtyL$ӘO"2.---...,,LOOE$`r` <& 䚝%jX,z"< "X(.d&WөZ"< "X(.cpM"^___ZZ#B'3?PKW1X+8cM:`WT "ZOf ~ c"Yѐ`01OQXQ($T*ew=SSS` <&bOjAzjljj[H-,ڳ@ ?PKW10XJ- [V¹ rz%N ?PKW%z}D KH!yIeu5e՗MZV׸qcg]Qj1gnhꝜDBW[bN.|`[5ᅴtiP:±[k:e4J%uS{ޝGW?x oJZy퇏{psa>mMغ-ݿyZΎlۦ>kK;h+bchtS"FLgY#"#'cqd'ܺc\BՆյI)Ic]۶Dv;O֡Çc֗3l ;}1(4 vOsAm,?w{l;^i)U"}\/n0W(+CFSx{Vйxgƭ:nlMFDM~g HYUYHc$b8>)|y~VTDDFDGv3GGWUtݺCGrTSgN76gx]e2hˡ/HzV‹զ{ó$CgbJ"٭q>}G6z{OkMOژؘ9%6SpZ71JpcU\\3.\øDdze"ȅ#4*rbdH$ZxwN33"2)5) 8 #"(vZK准^%}QO~yy쟜 oFPHscbmjHKE]kjiGGAQLg|?9Cs{3`TT؉cI:;{=?!݀rk9EӲk.w @/*/,-Z,<`(2$7SmmiԔNVVMau(Cs*+CDH'E3ijzrːױƛwnnPNMˋHPuǁp2U/> ?Пҙ[qن._wj[ٙ9Qhx(Hgl|,#d =^LU2 2%!9x[+5Bە+llXDF"I#b0y.$\ 'C䞯{/ډ%g3ÿM$"ps|) ŧD;N+Ԍ0I8{}]s7&'Edp?._^..1ҳӱ1Ȩ(d#|6։ܻo/r`ͅ#ǎ`fEdJ#B .ϞYH:E iJQ_:n$ḯ N$9xqT9&DRqMi}8o-=U ~gÈ"" ܗW_peSS)MLMɋHb%+yдk}Ǿ$" +~!UkaN!U8` }'ޯGHzP> 1!|7'?8acɩ׮9ZRHiE)m}k2Oq¹݉ׄIˑHOH`#S)*sXA'_w(t%uX7ٵQ'Sv?Fqz9!/@gE$Pi:H/HI#Yxwˉ|Ϝ;2}dcs#bK\P41`8cY& FE6P1uСr DaH~S"ҿ,k(V+:y0/۲\G܉+6 ᒺ/;"ue)ʔ.SK/;džE$JE jeIy ^8T=7l8̂9:TUiLN??%hVVҀ:SYSS_*bRHi_ /;ܱ7X<Ìj9Z'~&uL&&'p$Χ~HjO%WΤ}:$~͆>~r#uщQB`Y#r(P"tW 敵;/tW6p Vm>4<#}}z^dj3p6bRrXіUޚ+R>\z@$^hHAv>g=tћwgvUl4 ( +4mAűZV-We0,wh[L})A,Ċ9H~1iF:ܤ\.Jp=Y4RUAq 8 "d'A$atjO45%B9z M̃cƠqޢM&f' -|:;ʗ0hEt5n/^^Yvᣇ$> 9Dnz_. X\wpSsզks֎>ktt˰F۸6~%5Y?wsnO r54 pGt$EE!n]xdޤ/-wXTXR#Wɓ'9s~O rIDZǬ^/K_6vD67GDG@҂cSkOg) "]%DҊCG:{deW"\kc'>w%Dn"HŔ,b01%;n oω!L1>)ne| RQTaS2s3|so6OJJwS**k+YqHBjn E0iRã¡\#KR2oKTiȘ %S~Siz~ƭN]_pC붗 Rrt *𝚟!DnόF:t_k{K)$/ "%A$B RH^z}D+KT)xb! NߝH} R7#ryyyzzbRBGOf ~ c"WVVVNWT!“ȁ(%+E [Bz@@,A\AD---ΎL&8ƛ#B'3?PKW1?؃3UDЍԊI DtyLӧOVDk̖z"< "X(.| 3Yrѐ¸]Of ~ c"?4Xf>UDx_Of ~ Dns"EDW"E+"H Ay RB)B^!!DW"E+"|/IENDB`buzztrax-0.10.2/docs/help/bt-edit/C/figures/interaction-controller-learn.png0000644042355400116100000001450012640736115027332 0ustar00ensoniceng00000000000000PNG  IHDRkˈIDATxiPTǓTkRIeʗʇ|lI%y+QTVٚ}Yfoh}_}iA@FGDgk: 3`x haVN_)z)ݑ_*Fy 'Eu0z%M{Y1wĒ6M1B|E8}uueͭR/*-a\_T~d/<1(jIq0"A)Fz'#cM-M|ٲs.\||JX\>ppvB(.>s_cKEٹb8hPVnPfeW9{o}1+^.+.`3A5SP 33+̳ȱ#:<2Bd,}UTbXBXXQZ^A ڽ+0nTc1+{xA)ZVv3lh'фd>%`_<zj^Eᣇ pƩj 9m1q1@[,W `; )l7_(@l1`׻E D`gP9wFSc2COZ >6 nDCLl #aqCc! |0(|,C Xm]mаufqٌBNS1@?x HM%~d/TRN)tWT>ēR"Xs^~1J{]8!^R 92l%#F 8;A :)B xBGR>@c' "*@ N!BhA2C8w -jC}ёpF[S8v?b(J *dg2P QS@qtAS(ZTȗ,WDbı`W@?J!~bı^/q..jqZL 8 5N)Wo-No8 B GRq舷ňvǒ@񓞕RA9Ĕ\+k+ccrQ] b>w b,L/ 8fBıaV(*/G\(coE|]qM+ k|ؑbN545P.)qR%1@[W*$iDssqH}'B!N}93V#f\cOBǀ-jFM(cm S>U5FÈRlR{q" A(E' p_P,ZNF/.#$Q3h(:hF]q)4 Rg=zmDWQ12& Š=zGMfӂGxI,KRmuM"!Px{{X,ސy A|pfz;Ht%ROݙ(VY\Jn~FNfd3J՘G28汩uD2ϑY*@*@wt~o3z{!`[g2Ӏ,_ϹZ|X =$:6:6!Tȩ'OC-ҲR>|=w^$xASY[aqX K 9fߠMM1q1Xǃcy``\JLN=Ih8w2T~ ItVVfdָD/9pO%bBk+˩xpBnQir|aIaDtR5p zukGk T>XfD +m[񈨈vF8o;4:13:<6;гoyYѪ>=f0w/"GA9O̙um| 5v?ѾZӷwF5z͓^//./þxZ^g 뇸3ys|԰ge5 $WӪrk\nx\/(٣NvPz=ΡCㅅ;D#o0b ϔs͚t:LJLVPCE^֣+ҟ/_'5uky#9?-?putw=zt׏w#ܽL./M0A|c9#>jks.s[,KiP(Ky} t0[ J.Ur% ;Z1N9\'o^c<q@z8*ޱcl_wڹS;c|(?{fPfG ns-oDŽ ^ 2WI(NXrUQ+/JU!JSЪ,nQKqYAd̹– fkRqل nYUL#\&g9\X,GGhαFsx-vr߱cRg1{ee]fzsJj(~{Y|0ᣇ8'hy&g~a㹏N{woݾ8Ʈ-w } ш_ms*3.uZ5xtddM$%VHKϩQQQKa* o*'Wf7 қELW倛.0<>dGT;^"LLsȨH KaE|@rU]!gv8r.v+&G4oXFnT0\ 9(N#֧f6z\Y_S^]j1~tJvשQ0 .7,ofgFׇ_{__]_U >V88@A"N>{cG= (Wb sStNnN3gτw###GFG „UZ#>raV# 7/wiuҴKfb\omZ7Sf)T5p/O78T_I4w+Tp̼4aѯrƦ85 rw$zyN'B᷿Um۴W*< ^q (fRDr P /i)}hA:w]8EDD ̍ZB F\BukuV)[rZaNV-me]P0(7R2[Tm0^2JjcbҲzeF']+!ν;%m7~\o~3}yyW_5'W^VU3,6 EFWr9DMr|zv:88ՌZaU0P %<21׾Z;kT?d\۶cw#G?_1mZq"Fz㍛7f?mioAb:>1L<{ht[s%Nb{}rLL .@%r Z\CKaFohԤw(W/M4f-zEj 0[]5MjkW茆ft|_4Y" 4l;+"V/̈VW ?|{[m*LܘD\iUKHHL~''±PŖxj>IOLBDt|dzZ[A1G&5D`˥V?կ%o6sCng:s2ҖH,n F2X%k8VEJPa |c}t8XM4}ݩU 4k(in+,a A|&|RHY| ^5 Tצm"ar|ɍuΤȴBk^:C-Rrټ%el72T̓ӓ(70U#*zz;ٛD}<ڠ^76\v.IQ R1[Zi/ nl ͢Ah52˱m y*{!D.8Q N"6qE#W# p[7nFaٍEEEIII!!!{B %;wL&H`0jkk  1b~5@$@5#~޽IlX%<;b#W@@K D*p]3ߟx<ET" rbj(H` 8(@kF|~~  rҧ1 XN P_XX@Dž*B``;@уRbj(H` 8(@kFX%Pc #W@@K D*p]3O Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this link or in the file COPYING-DOCS distributed with this manual. This manual is part of a collection of GNOME manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license. Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and the members of the GNOME Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters. DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. buzztrax-0.10.2/docs/help/bt-edit/C/Makefile.am0000644042355400116100000001616412144654421021423 0ustar00ensoniceng00000000000000figdir = figures docname = buzztrax-edit lang = C omffile = buzztrax-edit-C.omf entities = legal.xml version.entities all-local: @-chmod -R u+w $(srcdir) @cp $(top_builddir)/docs/version.entities $(srcdir)/version.entities clean-local: -@rm -f version.entities # FIXME: only do this if ENABLE_SCROLLKEEPER ? include $(top_srcdir)/xmldocs.make dist-hook: app-dist-hook # make a pdf using dblatex # - it seems unneccesarily hard to get our logo onto the titlepage # - we tried all sort of customizations ( -p dblatex_pdf.xsl ) buzztrax-edit.pdf: buzztrax-edit.xml dblatex_pdf.xsl dblatex \ -o buzztrax-edit.pdf \ -I figures \ buzztrax-edit.xml buzztrax-edit.txt: buzztrax-edit.xml xmlto txt buzztrax-edit.xml buzztrax-edit2.pdf: buzztrax-edit.xml xsltproc \ --stringparam paper.type A4 \ --stringparam fop.extentions 1 \ --stringparam fop1.extentions 1 \ --stringparam admon.graphics 1 \ http://docbook.sourceforge.net/release/xsl/current/fo/fo.xsl \ buzztrax-edit.xml >buzztrax-edit.fo; \ fop -fo buzztrax-edit.fo -pdf buzztrax-edit.pdf # statistics for index building: # sed -e 's/[[:space:]]\+/\n/g' buzztrax-edit.txt | sed 's/[,.\(\)"]//g' | egrep -v '^ *$' | sort -f | uniq -ic | sort -n # sed -e 's/[[:space:]]\+/\n/g' buzztrax-edit.txt | sed 's/[,.\(\)"]//g' | egrep -v '^ *$' | egrep -v '^..?$' | sort -f | uniq -ic | sort -n # here we should # a) invoke xslproc, if available # stylesheet=/opt/gnome/share/sgml/docbook/yelp/docbook/html/docbook.xsl # xsltproc --nonet $(stylesheet) $(docname).xml # b) simple install pregenerated html (pdf) # this relies on particular names in the tests # it would be nicer to fix the names in the tests and apply some rule: # /tmp/check_buzzard_help_(*).png -> figures/\1.png # - here we would mark the images by having an additional "_help" in the name # - right now this is prgname + widget name + optinal extra name update_figures: if [ -e "/tmp/check_buzzard_main window.png" ]; then \ pngtopnm "/tmp/check_buzzard_main window.png" | ../../mk-shadow.sh | pnmtopng >figures/main-window.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_machine view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_machine view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-machine-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_pattern view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_pattern view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-pattern-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_sequence view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_sequence view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-sequence-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_song information.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_song information.png" | ../../mk-shadow.sh | pnmtopng >figures/page-info-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_wave table view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_wave table view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-wavetable-view.png; \ fi; \ \ if [ -e "/tmp/check_buzzard_pattern properties.png" ]; then \ pngtopnm "/tmp/check_buzzard_pattern properties.png" | ../../mk-shadow.sh | pnmtopng >figures/pattern-properties.png; \ fi; \ if [ -e "/tmp/check_buzzard_machine properties.png" ]; then \ pngtopnm "/tmp/check_buzzard_machine properties.png" | ../../mk-shadow.sh | pnmtopng >figures/machine-properties.png; \ fi; \ if [ -e "/tmp/check_buzzard_machine preferences.png" ]; then \ pngtopnm "/tmp/check_buzzard_machine preferences.png" | ../../mk-shadow.sh | pnmtopng >figures/machine-preferences.png; \ fi; \ if [ -e "/tmp/check_buzzard_rename machine.png" ]; then \ pngtopnm "/tmp/check_buzzard_rename machine.png" | ../../mk-shadow.sh | pnmtopng >figures/machine-rename.png; \ fi; \ if [ -e "/tmp/check_buzzard_preset name and comment.png" ]; then \ pngtopnm "/tmp/check_buzzard_preset name and comment.png" | ../../mk-shadow.sh | pnmtopng >figures/preset-properties.png; \ fi; \ if [ -e "/tmp/check_buzzard_wire analysis.png" ]; then \ pngtopnm "/tmp/check_buzzard_wire analysis.png" | ../../mk-shadow.sh | pnmtopng >figures/signal-analysis.png; \ fi; \ if [ -e "/tmp/check_buzzard_BtAboutDialog.png" ]; then \ pngtopnm "/tmp/check_buzzard_BtAboutDialog.png" | ../../mk-shadow.sh | pnmtopng >figures/about.png; \ fi; \ if [ -e "/tmp/check_buzzard_Tip of the day.png" ]; then \ pngtopnm "/tmp/check_buzzard_Tip of the day.png" | ../../mk-shadow.sh | pnmtopng >figures/tip.png; \ fi; \ if [ -e "/tmp/check_buzzard_song rendering.png" ]; then \ pngtopnm "/tmp/check_buzzard_song rendering.png" | ../../mk-shadow.sh | pnmtopng >figures/recording-settings.png; \ fi; \ if [ -e "/tmp/check_buzzard_song render progress.png" ]; then \ pngtopnm "/tmp/check_buzzard_song render progress.png" | ../../mk-shadow.sh | pnmtopng >figures/recording-progress.png; \ fi; \ if [ -e "/tmp/check_buzzard_Missing elements in song.png" ]; then \ pngtopnm "/tmp/check_buzzard_Missing elements in song.png" | ../../mk-shadow.sh | pnmtopng >figures/missing-song-elements.png; \ fi; \ if [ -e "/tmp/check_buzzard_Missing GStreamer elements.png" ]; then \ pngtopnm "/tmp/check_buzzard_Missing GStreamer elements.png" | ../../mk-shadow.sh | pnmtopng >figures/missing-gstreamer-elements.png; \ fi; \ if [ -e "/tmp/check_buzzard_Unsaved song recovery.png" ]; then \ pngtopnm "/tmp/check_buzzard_Unsaved song recovery.png" | ../../mk-shadow.sh | pnmtopng >figures/crash-recovery.png; \ fi; \ if [ -e "/tmp/check_buzzard_interaction controller learn.png" ]; then \ pngtopnm "/tmp/check_buzzard_interaction controller learn.png" | ../../mk-shadow.sh | pnmtopng >figures/interaction-controller-learn.png; \ fi; \ \ if [ -e "/tmp/check_buzzard_buzztrax settings_audio devices.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_audio devices.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-audio.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_colors.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_colors.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-colors.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_directories.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_directories.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-directories.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_interaction controller.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_interaction controller.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-ic.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_playback controller.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_playback controller.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-pc.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_shortcuts.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_shortcuts.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-shortcuts.png; \ fi; ## add shadows (now integrated above) ## for PNG in *.png; do pngtopnm "$PNG" | ../../../mk-shadow.sh | pnmtopng > "${PNG//.png}"-with-shadow.png buzztrax-0.10.2/docs/help/bt-edit/C/Makefile.in0000644042355400116100000007406312640575013021436 0ustar00ensoniceng00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 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@ # # No modifications of this Makefile should be necessary. # # To use this template: # 1) Define: figdir, docname, lang, omffile, and entities in # your Makefile.am file for each document directory, # although figdir, omffile, and entities may be empty # 2) Make sure the Makefile in (1) also includes # "include $(top_srcdir)/xmldocs.make" and # "dist-hook: app-dist-hook". # 3) Optionally define 'entities' to hold xml entities which # you would also like installed # 4) Figures must go under $(figdir)/ and be in PNG format # 5) You should only have one document per directory # 6) Note that the figure directory, $(figdir)/, should not have its # own Makefile since this Makefile installs those figures. # # example Makefile.am: # figdir = figures # docname = scrollkeeper-manual # lang = C # omffile=scrollkeeper-manual-C.omf # entities = fdl.xml # include $(top_srcdir)/xmldocs.make # dist-hook: app-dist-hook # # About this file: # This file was taken from scrollkeeper_example2, a package illustrating # how to install documentation and OMF files for use with ScrollKeeper # 0.3.x and 0.4.x. For more information, see: # http://scrollkeeper.sourceforge.net/ # Version: 0.1.2 (last updated: March 20, 2002) # # # No modifications of this Makefile should be necessary. # # This file contains the build instructions for installing OMF files. It is # generally called from the makefiles for particular formats of documentation. # # Note that you must configure your package with --localstatedir=/var/lib # so that the scrollkeeper-update command below will update the database # in the standard scrollkeeper directory. # # If it is impossible to configure with --localstatedir=/var/lib, then # modify the definition of scrollkeeper_localstate_dir so that # it points to the correct location. Note that you must still use # $(localstatedir) in this or when people build RPMs it will update # the real database on their system instead of the one under RPM_BUILD_ROOT. # # Note: This make file is not incorporated into xmldocs.make because, in # general, there will be other documents install besides XML documents # and the makefiles for these formats should also include this file. # # About this file: # This file was taken from scrollkeeper_example2, a package illustrating # how to install documentation and OMF files for use with ScrollKeeper # 0.3.x and 0.4.x. For more information, see: # http://scrollkeeper.sourceforge.net/ # Version: 0.1.2 (last updated: March 20, 2002) # VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/xmldocs.make $(top_srcdir)/omf.make \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(srcdir)/buzztrax-edit-C.omf.in @ENABLE_SCROLLKEEPER_TRUE@am__append_1 = *.out subdir = docs/help/bt-edit/C ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/orc.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac 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 = buzztrax-edit-C.omf CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ ALSA_DEPS_CFLAGS = @ALSA_DEPS_CFLAGS@ ALSA_DEPS_LIBS = @ALSA_DEPS_LIBS@ ALSA_DOC_SECTIONS = @ALSA_DOC_SECTIONS@ ALSA_DOC_TYPES = @ALSA_DOC_TYPES@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ ASPELL = @ASPELL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASE_DEPS_CFLAGS = @BASE_DEPS_CFLAGS@ BASE_DEPS_LIBS = @BASE_DEPS_LIBS@ BMLHOST_CCASFLAGS = @BMLHOST_CCASFLAGS@ BMLHOST_CFLAGS = @BMLHOST_CFLAGS@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BT_CFLAGS = @BT_CFLAGS@ BT_DISABLE_DEPRECATED = @BT_DISABLE_DEPRECATED@ BT_INCLUDEDIR = @BT_INCLUDEDIR@ BT_LDFLAGS = @BT_LDFLAGS@ BT_LIBDIR = @BT_LIBDIR@ BT_LIBS = @BT_LIBS@ BT_MAJORMINOR = @BT_MAJORMINOR@ BT_MAJOR_VERSION = @BT_MAJOR_VERSION@ BT_MICRO_VERSION = @BT_MICRO_VERSION@ BT_MINOR_VERSION = @BT_MINOR_VERSION@ BT_RELEASE_DATE = @BT_RELEASE_DATE@ BT_RELEASE_YEAR = @BT_RELEASE_YEAR@ BT_VERSION = @BT_VERSION@ BT_VERSION_INFO = @BT_VERSION_INFO@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@ FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIRDIR = @GIRDIR@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@ GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@ GREP = @GREP@ GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GSF_DEPS_CFLAGS = @GSF_DEPS_CFLAGS@ GSF_DEPS_LIBS = @GSF_DEPS_LIBS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ GST_PLUGIN_CFLAGS = @GST_PLUGIN_CFLAGS@ GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ GST_PLUGIN_LIBS = @GST_PLUGIN_LIBS@ GST_PREFIX = @GST_PREFIX@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_PREFIX = @GTK_PREFIX@ GUDEV_DEPS_CFLAGS = @GUDEV_DEPS_CFLAGS@ GUDEV_DEPS_LIBS = @GUDEV_DEPS_LIBS@ GUDEV_DOC_SECTIONS = @GUDEV_DOC_SECTIONS@ GUDEV_DOC_TYPES = @GUDEV_DOC_TYPES@ GUI_DEPS_CFLAGS = @GUI_DEPS_CFLAGS@ GUI_DEPS_LIBS = @GUI_DEPS_LIBS@ G_IR_COMPILER = @G_IR_COMPILER@ G_IR_GENERATE = @G_IR_GENERATE@ G_IR_SCANNER = @G_IR_SCANNER@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LINUX_INPUT_DOC_SECTIONS = @LINUX_INPUT_DOC_SECTIONS@ LINUX_INPUT_DOC_TYPES = @LINUX_INPUT_DOC_TYPES@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ ORC_LIBS = @ORC_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_ORIGIN = @PACKAGE_ORIGIN@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SCROLLKEEPER_BUILD_REQUIRED = @SCROLLKEEPER_BUILD_REQUIRED@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TYPELIBDIR = @TYPELIBDIR@ UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ UPDATE_ICON_CACHE = @UPDATE_ICON_CACHE@ UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ XFONT_PATH = @XFONT_PATH@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bcov_path = @bcov_path@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ # ************* Begin of section some packagers may need to modify ************** # This variable (docdir) specifies where the documents should be installed. # This default value should work for most packages. # docdir = $(datadir)/@PACKAGE@/doc/$(docname)/$(lang) docdir = $(datadir)/gnome/help/$(docname)/$(lang) dvidir = @dvidir@ exec_prefix = @exec_prefix@ gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ lcov_path = @lcov_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ scrollkeeper_config = @scrollkeeper_config@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ valgrind_path = @valgrind_path@ with_desktop_dir = @with_desktop_dir@ xvfb_path = @xvfb_path@ figdir = figures docname = buzztrax-edit lang = C omffile = buzztrax-edit-C.omf entities = legal.xml version.entities # ************** You should not have to edit below this line ******************* xml_files = $(entities) $(docname).xml EXTRA_DIST = $(xml_files) $(omffile) CLEANFILES = omf_timestamp $(am__append_1) @ENABLE_SCROLLKEEPER_TRUE@omf_dest_dir = $(datadir)/omf/$(docname) @ENABLE_SCROLLKEEPER_TRUE@scrollkeeper_localstate_dir = $(localstatedir)/scrollkeeper all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/xmldocs.make $(top_srcdir)/omf.make $(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) --foreign docs/help/bt-edit/C/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/help/bt-edit/C/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_srcdir)/xmldocs.make $(top_srcdir)/omf.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): buzztrax-edit-C.omf: $(top_builddir)/config.status $(srcdir)/buzztrax-edit-C.omf.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile all-local installdirs: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @ENABLE_SCROLLKEEPER_FALSE@uninstall-local: @ENABLE_SCROLLKEEPER_FALSE@install-data-local: @ENABLE_SCROLLKEEPER_FALSE@install-data-hook: clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-data-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool clean-local cscopelist-am ctags-am dist-hook \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook \ 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 maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-local all-local: @-chmod -R u+w $(srcdir) @cp $(top_builddir)/docs/version.entities $(srcdir)/version.entities clean-local: -@rm -f version.entities @ENABLE_SCROLLKEEPER_TRUE@omf: omf_timestamp @ENABLE_SCROLLKEEPER_TRUE@omf_timestamp: $(omffile) @ENABLE_SCROLLKEEPER_TRUE@ -for file in $(omffile); do \ @ENABLE_SCROLLKEEPER_TRUE@ scrollkeeper-preinstall $(docdir)/$(docname).xml $$file $$file.out; \ @ENABLE_SCROLLKEEPER_TRUE@ done @ENABLE_SCROLLKEEPER_TRUE@ touch omf_timestamp @ENABLE_SCROLLKEEPER_TRUE@install-data-hook-omf: @ENABLE_SCROLLKEEPER_TRUE@ $(mkinstalldirs) $(DESTDIR)$(omf_dest_dir) @ENABLE_SCROLLKEEPER_TRUE@ for file in $(omffile); do \ @ENABLE_SCROLLKEEPER_TRUE@ $(INSTALL_DATA) $$file.out $(DESTDIR)$(omf_dest_dir)/$$file; \ @ENABLE_SCROLLKEEPER_TRUE@ done @ENABLE_SCROLLKEEPER_TRUE@ -scrollkeeper-update -p $(scrollkeeper_localstate_dir) -o $(DESTDIR)$(omf_dest_dir) @ENABLE_SCROLLKEEPER_TRUE@uninstall-local-omf: @ENABLE_SCROLLKEEPER_TRUE@ -for file in $(srcdir)/*.omf; do \ @ENABLE_SCROLLKEEPER_TRUE@ basefile=`basename $$file`; \ @ENABLE_SCROLLKEEPER_TRUE@ rm -f $(DESTDIR)$(omf_dest_dir)/$$basefile; \ @ENABLE_SCROLLKEEPER_TRUE@ done @ENABLE_SCROLLKEEPER_TRUE@ -rmdir $(DESTDIR)$(omf_dest_dir) @ENABLE_SCROLLKEEPER_TRUE@ -scrollkeeper-update -p $(scrollkeeper_localstate_dir) # If the following file is in a subdir (like help/) you need to add that to the path @ENABLE_SCROLLKEEPER_TRUE@all: omf @ENABLE_SCROLLKEEPER_TRUE@$(docname).xml: $(entities) app-dist-hook: if test "$(figdir)"; then \ $(mkinstalldirs) $(distdir)/$(figdir); \ for file in $(srcdir)/$(figdir)/*.png; do \ basefile=`echo $$file | sed -e 's,^.*/,,'`; \ $(INSTALL_DATA) $$file $(distdir)/$(figdir)/$$basefile; \ done \ fi @ENABLE_SCROLLKEEPER_TRUE@install-data-local: omf @ENABLE_SCROLLKEEPER_TRUE@ $(mkinstalldirs) $(DESTDIR)$(docdir) @ENABLE_SCROLLKEEPER_TRUE@ for file in $(xml_files); do \ @ENABLE_SCROLLKEEPER_TRUE@ cp $(srcdir)/$$file $(DESTDIR)$(docdir); \ @ENABLE_SCROLLKEEPER_TRUE@ done @ENABLE_SCROLLKEEPER_TRUE@ if test "$(figdir)"; then \ @ENABLE_SCROLLKEEPER_TRUE@ $(mkinstalldirs) $(DESTDIR)$(docdir)/$(figdir); \ @ENABLE_SCROLLKEEPER_TRUE@ for file in $(srcdir)/$(figdir)/*.png; do \ @ENABLE_SCROLLKEEPER_TRUE@ basefile=`echo $$file | sed -e 's,^.*/,,'`; \ @ENABLE_SCROLLKEEPER_TRUE@ $(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/$(figdir)/$$basefile; \ @ENABLE_SCROLLKEEPER_TRUE@ done \ @ENABLE_SCROLLKEEPER_TRUE@ fi @ENABLE_SCROLLKEEPER_TRUE@install-data-hook: install-data-hook-omf @ENABLE_SCROLLKEEPER_TRUE@uninstall-local: uninstall-local-doc uninstall-local-omf @ENABLE_SCROLLKEEPER_TRUE@uninstall-local-doc: @ENABLE_SCROLLKEEPER_TRUE@ -if test "$(figdir)"; then \ @ENABLE_SCROLLKEEPER_TRUE@ for file in $(srcdir)/$(figdir)/*.png; do \ @ENABLE_SCROLLKEEPER_TRUE@ basefile=`echo $$file | sed -e 's,^.*/,,'`; \ @ENABLE_SCROLLKEEPER_TRUE@ rm -f $(DESTDIR)$(docdir)/$(figdir)/$$basefile; \ @ENABLE_SCROLLKEEPER_TRUE@ done; \ @ENABLE_SCROLLKEEPER_TRUE@ rmdir $(DESTDIR)$(docdir)/$(figdir); \ @ENABLE_SCROLLKEEPER_TRUE@ fi @ENABLE_SCROLLKEEPER_TRUE@ -for file in $(xml_files); do \ @ENABLE_SCROLLKEEPER_TRUE@ rm -f $(DESTDIR)$(docdir)/$$file; \ @ENABLE_SCROLLKEEPER_TRUE@ done @ENABLE_SCROLLKEEPER_TRUE@ -rmdir $(DESTDIR)$(docdir) # FIXME: only do this if ENABLE_SCROLLKEEPER ? dist-hook: app-dist-hook # make a pdf using dblatex # - it seems unneccesarily hard to get our logo onto the titlepage # - we tried all sort of customizations ( -p dblatex_pdf.xsl ) buzztrax-edit.pdf: buzztrax-edit.xml dblatex_pdf.xsl dblatex \ -o buzztrax-edit.pdf \ -I figures \ buzztrax-edit.xml buzztrax-edit.txt: buzztrax-edit.xml xmlto txt buzztrax-edit.xml buzztrax-edit2.pdf: buzztrax-edit.xml xsltproc \ --stringparam paper.type A4 \ --stringparam fop.extentions 1 \ --stringparam fop1.extentions 1 \ --stringparam admon.graphics 1 \ http://docbook.sourceforge.net/release/xsl/current/fo/fo.xsl \ buzztrax-edit.xml >buzztrax-edit.fo; \ fop -fo buzztrax-edit.fo -pdf buzztrax-edit.pdf # statistics for index building: # sed -e 's/[[:space:]]\+/\n/g' buzztrax-edit.txt | sed 's/[,.\(\)"]//g' | egrep -v '^ *$' | sort -f | uniq -ic | sort -n # sed -e 's/[[:space:]]\+/\n/g' buzztrax-edit.txt | sed 's/[,.\(\)"]//g' | egrep -v '^ *$' | egrep -v '^..?$' | sort -f | uniq -ic | sort -n # here we should # a) invoke xslproc, if available # stylesheet=/opt/gnome/share/sgml/docbook/yelp/docbook/html/docbook.xsl # xsltproc --nonet $(stylesheet) $(docname).xml # b) simple install pregenerated html (pdf) # this relies on particular names in the tests # it would be nicer to fix the names in the tests and apply some rule: # /tmp/check_buzzard_help_(*).png -> figures/\1.png # - here we would mark the images by having an additional "_help" in the name # - right now this is prgname + widget name + optinal extra name update_figures: if [ -e "/tmp/check_buzzard_main window.png" ]; then \ pngtopnm "/tmp/check_buzzard_main window.png" | ../../mk-shadow.sh | pnmtopng >figures/main-window.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_machine view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_machine view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-machine-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_pattern view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_pattern view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-pattern-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_sequence view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_sequence view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-sequence-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_song information.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_song information.png" | ../../mk-shadow.sh | pnmtopng >figures/page-info-view.png; \ fi; \ if [ -e "/tmp/check_buzzard_song views_wave table view.png" ]; then \ pngtopnm "/tmp/check_buzzard_song views_wave table view.png" | ../../mk-shadow.sh | pnmtopng >figures/page-wavetable-view.png; \ fi; \ \ if [ -e "/tmp/check_buzzard_pattern properties.png" ]; then \ pngtopnm "/tmp/check_buzzard_pattern properties.png" | ../../mk-shadow.sh | pnmtopng >figures/pattern-properties.png; \ fi; \ if [ -e "/tmp/check_buzzard_machine properties.png" ]; then \ pngtopnm "/tmp/check_buzzard_machine properties.png" | ../../mk-shadow.sh | pnmtopng >figures/machine-properties.png; \ fi; \ if [ -e "/tmp/check_buzzard_machine preferences.png" ]; then \ pngtopnm "/tmp/check_buzzard_machine preferences.png" | ../../mk-shadow.sh | pnmtopng >figures/machine-preferences.png; \ fi; \ if [ -e "/tmp/check_buzzard_rename machine.png" ]; then \ pngtopnm "/tmp/check_buzzard_rename machine.png" | ../../mk-shadow.sh | pnmtopng >figures/machine-rename.png; \ fi; \ if [ -e "/tmp/check_buzzard_preset name and comment.png" ]; then \ pngtopnm "/tmp/check_buzzard_preset name and comment.png" | ../../mk-shadow.sh | pnmtopng >figures/preset-properties.png; \ fi; \ if [ -e "/tmp/check_buzzard_wire analysis.png" ]; then \ pngtopnm "/tmp/check_buzzard_wire analysis.png" | ../../mk-shadow.sh | pnmtopng >figures/signal-analysis.png; \ fi; \ if [ -e "/tmp/check_buzzard_BtAboutDialog.png" ]; then \ pngtopnm "/tmp/check_buzzard_BtAboutDialog.png" | ../../mk-shadow.sh | pnmtopng >figures/about.png; \ fi; \ if [ -e "/tmp/check_buzzard_Tip of the day.png" ]; then \ pngtopnm "/tmp/check_buzzard_Tip of the day.png" | ../../mk-shadow.sh | pnmtopng >figures/tip.png; \ fi; \ if [ -e "/tmp/check_buzzard_song rendering.png" ]; then \ pngtopnm "/tmp/check_buzzard_song rendering.png" | ../../mk-shadow.sh | pnmtopng >figures/recording-settings.png; \ fi; \ if [ -e "/tmp/check_buzzard_song render progress.png" ]; then \ pngtopnm "/tmp/check_buzzard_song render progress.png" | ../../mk-shadow.sh | pnmtopng >figures/recording-progress.png; \ fi; \ if [ -e "/tmp/check_buzzard_Missing elements in song.png" ]; then \ pngtopnm "/tmp/check_buzzard_Missing elements in song.png" | ../../mk-shadow.sh | pnmtopng >figures/missing-song-elements.png; \ fi; \ if [ -e "/tmp/check_buzzard_Missing GStreamer elements.png" ]; then \ pngtopnm "/tmp/check_buzzard_Missing GStreamer elements.png" | ../../mk-shadow.sh | pnmtopng >figures/missing-gstreamer-elements.png; \ fi; \ if [ -e "/tmp/check_buzzard_Unsaved song recovery.png" ]; then \ pngtopnm "/tmp/check_buzzard_Unsaved song recovery.png" | ../../mk-shadow.sh | pnmtopng >figures/crash-recovery.png; \ fi; \ if [ -e "/tmp/check_buzzard_interaction controller learn.png" ]; then \ pngtopnm "/tmp/check_buzzard_interaction controller learn.png" | ../../mk-shadow.sh | pnmtopng >figures/interaction-controller-learn.png; \ fi; \ \ if [ -e "/tmp/check_buzzard_buzztrax settings_audio devices.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_audio devices.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-audio.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_colors.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_colors.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-colors.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_directories.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_directories.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-directories.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_interaction controller.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_interaction controller.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-ic.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_playback controller.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_playback controller.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-pc.png; \ fi; \ if [ -e "/tmp/check_buzzard_buzztrax settings_shortcuts.png" ]; then \ pngtopnm "/tmp/check_buzzard_buzztrax settings_shortcuts.png" | ../../mk-shadow.sh | pnmtopng >figures/settings-shortcuts.png; \ fi; # 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: buzztrax-0.10.2/docs/help/bt-edit/C/buzztrax-edit-C.omf0000644042355400116100000000220012640575020023046 0ustar00ensoniceng00000000000000 buzztrax-devel@lists.sourceforge.net (buzztrax developer team) Buzztrax Music Editor 2015-12-29 User manual for the buzztrax music editor user's guide buzztrax-0.10.2/docs/help/bt-edit/C/buzztrax-edit-C.omf.in0000644042355400116100000000223212144654421023462 0ustar00ensoniceng00000000000000 buzztrax-devel@lists.sourceforge.net (buzztrax developer team) Buzztrax Music Editor @BT_RELEASE_DATE@ User manual for the buzztrax music editor user's guide buzztrax-0.10.2/docs/help/bt-edit/C/buzztrax-edit.xml0000644042355400116100000021443512640575004022726 0ustar00ensoniceng00000000000000 %version-entities; ]>
&app; manual (&appversion;) &rel_year; Stefan Kost Buzztrax Developer Team &legal; Stefan Sauer Buzztrax Developer team
buzztrax-devel@lists.sourceforge.net
&app; manual (&appversion;) &rel_date; Buzztrax Developer team buzztrax-devel@lists.sourceforge.net This manual describes version &appversion; of &app;. Feedback To report a bug or make a suggestion regarding the &app; application or this manual, see the Buzztrax website at http://www.buzztrax.org.
&app; buzztrax Introduction &app; is a music composer for the GNOME desktop. It partly follows the concepts of programs like SoundTracker, FastTracker and the like, but is based on a modern media engine (gstreamer). This engine supports virtual sound generators and effects in the form of numerous plugins. During the next section we describe the concept of the &app; and also compare it to similar applications. If you are familiar with some of those, the respective sections should help to understand the way &app; works. The main chapter of the help system is separated into these sections: The chapter is introducing &app; in a tutorial style. The later chapters have reference character, describing each view and dialog. The concept behind <application>&app;</application> &app; follows the concept of tracker applications. This is quite different when compared to other music composers. The tracker concept is more focused on the event data. There is no piano roll (at least not now). Instead song fragments (patterns) are shown in a tabular way containing events over time. Both in the sequence view and in the pattern view, time flows from top to bottom, where as in classic sequencers time flows from left to right. The tabbed UI provides several linked views on a song: A machine view: virtual devices and how they are connected A pattern view: each virtual device has a list of fragments with events over time A sequence view: a timeline where each track contains patterns that should be played at a given time for the machine of the track A wavetable view: collection of sample clips to be used as sound sources for some machines (optional) A metadata view: extra information about the song Important design criteria for &app; are: fast and desktop compliant ui keyboard shortcuts for everything total recall highly interactive protect the creative process (open song format, journaling) Comparison to <application>Buzz</application> &app; is inspired of lot by Buzz. Some features are still missing and some things already work better. The UI in is not a 1-to-1 copy, for Buzz users the UI will still look familiar. Highlights in &app;: can render songs to wav/mp3,ogg-vorbis/... including song-meta-data (tags) and multi track exports uses color-codes for machine-types through its ui generates cleaner machine UIs (collapsing parts, more distinct widgets) has a scaleable machine view can use beats other that 4/4 shows volume and pan on wire does balance on stereo wires has analyzers and mixing controls in sequence view can have multiple wire-analyzers open can be remote controlled with UPnP A/V software supports HID input devices for effect control (e.g. joysticks) has unlimited undo/redo support does journaling and crash recovery ships with a plugin that enables GStreamer based media players to play buzztrax songs current shortcomings in &app;: has only marginal MIDI support has no pattern recording yet does not support machine templates adding and removing machines while playing might still hang Comparison to Tracker applications While &app; has much in common with tracker applications, there are some notable differences. trackers are sample based, buzztrax also uses software synthesizers trackers have a fixed track concept, buzztrax uses tracks per machine (source/effect/sink) trackers do not have the virtual machine routing Getting started The below tutorials will introduce &app; by going though a few examples. Each example will introduce new features. Live Effects This tutorial demonstrates how to use &app; as a toy for live audio effects. Start the graphical editor 'buzztrax-edit'. The first tab shows the machine view. Here you can create elements (sound generators and effects) and link them together. To create an element, right click on the background and select an element from the context menu. For the example choose alsasrc. Please note, that not all the elements in the list will work perfectly in a live situation right now. Also using livesrc and normal source does not work reliable right now. This will be address in a future versions of buzztrax and gstreamer. In your sound card mixer you should enable recording from the microphone or provide some music on line-in. Next add audiodelay and equalizer-10band elements. Now wire them together by pointing on the source element (alsasrc) and dragging a wire to the target (audiodelay), while holding the shift-key pressed. The wire will become green when the mouse is over a valid target. Releasing the mouse creates the link. Repeat the procedure for audiodelay &rrar; equalizer and equalizer &rrar; master. The wires have a pointer shape in the middle, showing the direction. A left click onto it allows to change the volume of the link, a shift left-click the stereo panorama or balance and a right click shows a context menu for disconnecting the elements and for showing an "analyzer dialog". Open that one for the link between equalizer and master. Finally double click the equalizer and the audiodelay to open their real-time settings windows. Now you should see something like this: (FIXME: need screen shot) Now lets give it a try. Activate the loop in the toolbar and press play. Now you can tweak the settings of the effects while making some noise. The parameter-changes will be effective right away. In the "analyzer window" you can see the frequency spectrum of the sound and the volume level. Synthesized Melody Sequence This tutorial will introduce the sequencer functionality and explain patterns. Start the graphical editor 'buzztrax-edit'. On the first tab - the machine view - add one simsyn. This is a very basic synthesizer. Also add an audiodelay and link simsyn &rrar; audiodelay &rrar; master. Now switch to the sequence view. Buzztrax has automatically added a track for the simsyn. Also the song has a default length of 64 ticks (the time axis goes from top to bottom). The track will take patterns. Patterns are the actual building blocks of the score. Patterns are a block of control events, like triggering a note or changing a machine parameter. The right side shows existing pattern for the machine the cursor is in. Simsyn has one called '00'. Press '0' four times to fill the sequence track with this pattern. Buzztrax will repeat the events there 4 times and stop. If you press play now, you won't hear anything yet, as we have not recorded any events into the pattern. Lets switch to the pattern editor. This can be done, by just pressing "Enter" in addition to using the tabs. The pattern editor shows a grid. Again the time goes from top to bottom. From left to right the editor shows parameter groups. This simple synthesizer has just one. More complex ones have a block with global parameters and one for each voice. Each column shows some info in the status bar when the cursor is in there. The first column is for entering notes. It works like it always worked in trackers - by using the computer keyboard. The two rows above the space key form one octave and the two rows above one octave above. The lower row is for while keys and the upper row for black keys, y/z &rrar; c, s &rrar; c#, x &rrar; d, d &rrar; d#, c &rrar; e, f unused, v &rrar; f and so on. Press Ctrl-2 to set cursor stepping to go down 2 rows on each edit and enter "yqy3ywyr". If you press play now, you should hear a simple melody. Sampled Sounds This tutorial explains how to work with sampled sound. The wave-table view contains a list that one can load audio clips into. Pick some samples from the file-chooser. If you don't have any sample collections, you can still find some samples for testing on your computer. Linux systems usually have some under /usr/share/sounds. Now switch to the machine view. In order to use samples we need to add a special generator that supports the wavetable functionality. Lets use "Generators/BML/Matilde-Tracker". This machine is part of the ported buzzmachine package. Link the machine to the master as usual. Now switch to the pattern editor. There you can select the "default waveform" from the combo box in the toolbar. This waveform will be used when entering new notes. You will see the waveform number in the pattern as well, where you can edit it like all the other fields. The main window After starting the &app; Music Editor, you will see the main window. If you start the application without specifying an initial file (as a parameter on the command line or by double clicking a song in Nautilus), the window will look like this.
&app; window Shows &app; main window with menu bar, tool bars, editor views and status area.
On the very top of the window is the menu bar. Below one finds the toolbar. And below again are tabs to switch between various views. Each view is for editing certain aspects of the song. On the bottom is a status bar. Many parts in the UI show tooltips with brief explanations. Hover the mouse pointer over the region and wait a moment. The UI uses context menus in several places. Press right mouse button to get the menu. The menu offer crucial functionally not available elsewhere right now. The menu bar main menu The menu bar gives you access to file operations, standard editing function, settings and help. The File menu allows to start a new song, load and save songs, as well as end the program. Songs need other resources in order to be played. These are the sound-generators and effects that are used and eventually digital audio-samples. When loading a song &app; checks if all needed resources are available and if not lists them in one dialog. &app; loads and saves songs in an own format is either a single xml file or a compressed zip file (.bzt) containing the xml file and external files (samples). &app; supports plugins to load and save files in different formats. As of now an importer for buzz-songs (.bmx and .bmw) exists. The Edit menu contains clipboard functions and invocation of . The View menu offers customization for the shown UI elements. It also contains shortcuts to the different song-views. The tool bar main toolbar changing the volume In contrast to the menu bar the tool bar only shows common operations as shortcuts. On the right end the toolbar shows a volume-meter for each audio-channel and a volume control for the whole song. The song views Each part of a song is represented by a specialized view which one can switch to with the tabs. Next we briefly introduce each tab, where in the next sub section they will be described in detail. The machine view of a song creating machines linking machines A song utilizes sound generators, effects and sinks - all called machines. A new machine can be added from the context menu that appear on a right click in the page area. Machines can be moved around by grabbing them with the mouse and dragging them around. To connect machines, move the pointer over the source, press shift+left mouse-button and drag the wire to the target machine. The wire turns green, if the connection can be made. Sources can be connected to Effects and the Master. Effects can be inked to other Effects and the Master. It is not possible to create loops in the signal flow. Fully connected machines are shown in bright color and disconnected ones in a desaturated style. Alternatively you can select "connect machines" from the right-click context menu of a machine. Again you need to move the mouse to the target machine and click it.
Machine view The songs machine view.
changing the volume changing the stereo panorama Wires have volume and panorama control support. A left-click on the pointer-shape in the middle of the wire open a volume popup. A click outside closes it again. Shift+left-click opens the panorama control. Only stereo links have a panorama control. For mono-to-stereo links it acts as a panorama for stereo-to-stereo link it acts as a stereo-balance. Machines and wires have context menus. The menu for the wire can be accessed by right clicking over the pointer shape in the middle. A double click on a machine brings up the .
The pattern view of a song Patterns are the building blocks of a song. They are short snippets of events for one machine, that can be reused in the sequence. The vertical axis shows ticks (time) and the horizontal axis has the parameters. Parameters are organized in groups. There is a group for global settings and groups for each voice if the machine is polyphonic. If the pattern is for an effect or sink (master), then the pattern has a group for each incoming wire. There one can change volume and panning/balance (if applicable).
Pattern view The songs pattern view.
In the page toolbar one can select the machine and the pattern for the machine. Pattern names in gray color indicated that the pattern is not used in the sequence (thus are save to be removed or changed). One can also select the base octave for entering notes via keyboard and the sample that should be used for wave-table based machines. Those combo boxes work when entering new notes, for existing notes one can just edit the respective columns in the pattern. A context menu in the pattern area allows to create new patterns and modify existing ones. Unused patterns can be removed immediately (without any dialogs). If the machine is polyphonic, one can add or remove voices by using the context menu. When moving the cursor around one can see the parameter name and value range in the statusbar. To enter notes, imagine your pc keyboard as a music keyboard in two rows. Bottom left y/z key becomes a 'c', s a 'c#', x a 'd' and so on. The next octave starts on the upper part of the keyboard with q being mapped to a 'c' again. Below are tables listing all keyboard shortcuts. Pattern navigation keyboard shortcutspattern view shortcuts command shortcut description move cursor arrows moves the cursor one position next group tab moves the cursor to the next group (wire, global, voices) prev group shifttab moves the cursor to the previous group (wire, global, voices) move page page up/down moves the cursor 16 rows up or down jump cursor home/end moves the cursor to first/last field in group, then first/last group, then first/last row select area shiftarrows set and enlarge/shrink the selection begin selection ctrlb sets the upper row of the selection and changes selection mode into one of column, group, full-pattern (press multiple times) relative to the cursor end selection ctrle sets the lower row of the selection and changes selection mode into one of column, group, full-pattern (press multiple times) relative to the cursor select column ctrll select the full column the cursor is in select group ctrlk select the full group the cursor is in select all ctrla select the full pattern unselect ctrlu remove the selection (leaves the data intact) stepping ctrl1...9 set how many lines the cursor goes down when editing
Pattern editing keyboard shortcutspattern view shortcuts command shortcut description enter notes s d g h j y/z x c v b n m notes from the base octave enter notes 2 3 5 6 7 q w e r t z/y u notes from one octave above the base octave enter notes 9 0 i o p notes from two octaves above the base octave note off 1 turns a playing note off clear value . (period) clears the field under the cursor live value , (comma) copy the current machine value into the field under the cursor delete column delete deletes the row at the cursor for the current column (move entries below up) insert column insert insert a blank row at the cursor for the current column (move entries below down) delete group shiftdelete deletes the row at the cursor for the current group (move entries below up) insert group shiftinsert insert a blank row at the cursor for the current group (move entries below down) delete full row ctrlshiftdelete deletes the row at the cursor for the whole pattern (move entries below up) insert full row ctrlshiftinsert insert a blank row at the cursor for the whole pattern (move entries below down) flip ctrlf turns the values in the selected range upside down interpolate ctrli enters values into the selected range that linearly blend from the start to the end value randomize ctrlr enters random values into the selected range range-randomize ctrlR enters random values into the selected range using the first and last value in the selection as a random number range
Pattern action keyboard shortcutspattern view shortcuts command shortcut description sequence editor return go to sequence editor select machine ctrlup,down (arrow) select current machine select pattern +,- (keypad) select current pattern select wave <,> select current wave switch base octave *,/ (keypad) lower/raise the base octave
A list of keyboard shortcuts can also be seen on the wiki.
The sequence view of a song A song consists of several tracks (columns), where in each track patterns are played. There can be several tracks for the same machine. The rows are time slots. The position column can show the time in different formats such as ticks and time. The label column can be use to annotate parts of the song, such as 'verse' and 'chorus' for easy navigation.
Sequence view The songs sequence view.
The sequence header for each track shows the name of the machine, mute, solo. bypass buttons (depending whether it is a generator, effect or sink) and a level-meter. The name field is editable and changing it will rename the machine. The sequence header for the label column offers shortcuts to jump to the selected label. The header for the position column contains a selector for the preferred position format. The context menu allows to add or remove tracks, move tracks left or right and open the machine properties/ preferences for the current track. For new generators a track is added automatically. One can navigate around using cursor keys. When changing tracks, the list of patterns on the right is updated to show the patterns for the current machine. Again gray pattern label color indicates that the pattern is not in use. Patterns can be entered into tracks by pressing the associated key (shown left to the pattern name in the list). A new pattern always interrupts a previous one, that is if there is a 32 tick long pattern '00' at row 0 and and a pattern '01' at row 16, then only the first 16 ticks of pattern '00' will be played. In addition patterns further to the right shadow patterns to the left (only the filled parameters are overlayed). Why is that useful? One can have multiple tracks for the same machine and then on-the-fly combine patterns. To give an example, for a synthesizer one can have patterns with the melodies and patterns with filter sweeps. Then one can use the filter sweep patterns with the melody patterns. The pattern list always contains a few special patterns. Depending on the machine type, there are break, mute, solo, bypass. Special patternsspecial patterns pattern machine type description break all stop the pattern above, can be used to reuse a long pattern and cut it off at some point and to undo the special patterns below mute all silence the output, this is similar to break, but would cut-off any sound immediately, use a break pattern to unmute bypass effects stop applying the effect, use a break pattern to enable again solo generators play only this generator, use a break pattern to enable the other generators again
The cursor can move beyond the end of the pattern. The pattern gets automatically expanded when entering a pattern beyond the current end of the song. This works the same way for the label column on the left. There descriptive labels for easier song-navigation can be entered as text upon pressing enter. To expand the sequence, scroll down with the cursor and press Ctrle to set the end-line. If the cursor is above the end-line, pressing Ctrle will set the loop-end marker. When the cursor is on the loop-end marker Ctrle will shorten the sequence. To set the loop-begin marker press Ctrlb. To set play position click with left mouse-button in the first column at the desired time location. To modify the loop start/end instead hold down the Ctrl or Ctrl+Shift key while clicking. A left mouse-button click in the sequence area will move the cursor there. A double click will switch to the pattern editor with the pattern active or the machine of the track selected. It is also possible to insert and delete full rows or just entries in a track. The shortcuts for this are Ctrli to insert a full row and Ctrld to remove a full row. To only insert or remove inside the current track hold the Shift key in addition. Sequence navigation keyboard shortcutssequence view shortcuts command shortcut description move cursor arrows moves the cursor one position move page page up/down moves the cursor a screen-page up or down jump cursor home/end moves the cursor to first/last row set loop start ctrlb sets the begin of the loop region set loop/song end ctrle sets the end of the loop region or end of song (press again) select area shiftarrows set and enlarge/shrink the selection
Sequence editing keyboard shortcutssequence view shortcuts command shortcut description clear value . (period) clears the pattern under the cursor delete track delete deletes the row at the cursor for the current track (move entries below up) insert track insert insert a black row at the cursor for the current track (move entries below down) delete full row shiftdelete deletes the row at the cursor for the whole sequence (move entries below up) insert full row shiftinsert insert a black row at the cursor for the whole sequence (move entries below down)
Sequence action keyboard shortcutssequence view shortcuts command shortcut description pattern editor return go to sequence editor
A full list of keyboard shortcuts can also be seen on the wiki.
The wavetable view of a song The wavetable hold sampled audio snippet that can be used e.g. from special sound generators (tracker sources). Those can be short instrument samples, but also full length songs.
Wave-table view The songs wave-table view.
The left column is the wavetable. Samples are loaded by double clicking them in the right side file-browser. The play-toggle button on the toolbar above the file-browser allows to pre-listen file as the selection changes. Waves in the table can also be played, renamed and removed. Each wavetable entry can have multiple wave levels, which are shown below the wavetable for the selected wave. Some of the details are editable. Right to the wave level list is a waveform preview widget. It shows loop markers and a playback position indicator. Samples can be found on the internet, brought from companies offering sample collections (as CD/DVD sets) or recorded yourself.
The information view of a song This page allows you to change song parameters, such as speed and timing resolutions and to enter information about the song. The meta data will be used for the tags when creating a final mix-down. The tags show up in your desktop media player or portable media player. While the fields are not mandatory, it is a good idea to fill them.
Info view The songs info view.
The "beats per minute", "beats" and "ticks per beat" parameters control the timing and measure of the song. "Beats per minute" is the classic "bpm" speed of the song. "beats" determines the beats per measure and "ticks per beat" the granularity. If you like to use quarter notes, "ticks per beats" need to be 4. Thus a straight four to the floor has beats=4 and ticks-per-beat=4. A waltz would use beats=3 and ticks-per-beat=4.
The status bar The status bar that is located at the bottom of the window. On the left side it shows the status of longer operations like saving and loading with a text message. It also shows some extra detail in some song views. On the right side, it displays the length of the song, the loop range, the playback position and the current CPU usage.
Dialog windows main menu There are various dialogs that are invoked from the main-menu or from context menus. The settings window This window contains all settings for the &app; application. All settings are grouped into categories that can be chosen from the list on the left side.
Settings dialog Settings dialog.
Audio device settings Select the audiosink to use. It will be changed immediately, except when a song is playing (will be switched after stopping).
Audio device settings Audio device settings.
All offered audio sinks should be fine for song-playback. One area where they differ is latency. Low latency is important when playing machines live - that is playing notes in the pattern editor or changing parameters in the machine window. The lower the latency, the more immediate the changes are. Jack is known for being able to achieve a low latency, but also a well configured alsa or pulseaudio can achieve a reasonable latency. For some sinks one can chose the audio device that should be used. For all sinks the sampling rate and audio channels can be configured. This should be set matching the audio sink. If jack is configured to play at 44100 Hz choosing a lower rate might play at lower CPU consumption, but ideally the setting are the same. The last setting is the target latency. Buzztrax will configure the audio rendering to get close to it. A lower latency is good for live modifications on machines, but also causes a higher CPU load.
Interaction controller settings Machines can be operated using hardware controllers. Buzztrax can use several types of controls, such as USB HID devices (mice, joystick) and alsa midi devices. Right now this settings-page only shows the detected devices. If you don't see anything, your application-package might have been build without gudev support. This will be indicated by a warning message in the settings page as well.
Interaction controller settings Interaction controller settings.
For some device types such as midi-devices, the available controls can not be auto-detected. Although one can teach these in a simple procedure. Every time such a device is selected, the lean mode will be activated. In this mode one can press the hardware buttons or move sliders and knobs. When this happens, controls not yet in the list will be automatically added, otherwise they will be selected. The selected control can be renamed.
Playback controller settings Buzztrax implements a few protocols to synchronize playback with external applications or devices. This window lists the controls and allows to configure each of them. For each protocol buzztrax can be time master and/or slave (if supported by the protocol or protocol implementation). In master mode, buzztrax would also start the playback of the external side, when the playback inside buzztrax starts. In slave mode, buzztrax would listen to a command from the external side to also start playback when the external side starts. Each of the protocols might show some extra settings below the list when selected. UPnP A/V remote control via Coherence. (FIXME: explain)
Playback controller settings Playback controller settings.
Color settings (FIXME: no theme settings yet)
Colors settings Colors settings.
Shortcut settings (FIXME: no shortcut settings yet)
Shortcut settings Shortcut settings.
Directory settings Configure default directories used for various file types.
Directory settings Directory settings.
Machine properties dialog Context menus on machine, pattern and sequence page allow to open this property view for the current machine. The main area of the dialog is covered by the parameters of the machine. These parameter control the generated audio or the effects. If parameters are controlled by patterns, the ui will reflect the changes as the music plays. Parameters are grouped. There is one group for global parameters and one for each voice (for polyphonic machines). Effects and the master also have a group for each input, allowing to change volume and panorama. These are the same parameters that can be changed on the wire in the machine view. Each group has a context menu, e.g. to copy the settings for the group. Each parameter has a context menu. The menu allows to bind the parameter to a hardware controller and unbind it. If a parameter is bound, the changes on the hardware controller will effect the parameter. &app; supports hid (e.g joysticks, wiimotes, harddisk accelerometers) and midi devices. For some device types the sub-menu with the controls will start with an entry "Learn ...". This will lead to the controller settings, where new controllers can be taught. At the top of the dialog is a small toolbar. One button allows to show or hide the right side preset pane. Most machines support presets. Presets are a collection of parameter sets. Other buttons on the toolbar show information about the machine, the help, reset or randomize parameters. The preset pane in turn has a toolbar. One can add, remove and edit preset entries. Rarely machines have built-in presets that are not editable. In such a case the toolbar is disabled.
Machine properties dialog Machine properties dialog.
Several such dialogs can be opened and the status is saved with the song.
Machine preferences dialog Machine preferences are settings that are configured for the whole song. These settings cannot be changed over time. Context menus on machine, pattern and sequence page allow to open this dialog. Warning Right now this might also contain some low-level settings, where changing them could break playback.
Machine preferences dialog Machine preferences dialog.
Machine rename dialog Allows renaming a machine. The dialog ensures that the new name is unique in the song.
Machine rename dialog Machine rename dialog.
Preset properties dialog Allows renaming a preset and adding comments for them. The dialog ensures that the new name is unique among the presets of a machine.
Preset properties dialog Preset properties dialog.
Signal analysis dialog The context menu on wires and the master machine allow to attach live signal analyzers to the song. This dialog shows the volume meters and a spectrogram for the wire or the master. There are a few settings to change the visualization of the spectrogram. Several such dialogs can be opened and the status is saved with the song.
Signal analysis dialog Signal analysis dialog.
Pattern properties dialog Allows renaming a pattern as well as changing its length or the number of voices (for polyphonic machines). The dialog ensures that the new name is unique among the patterns of a machine.
Pattern properties dialog Pattern properties dialog.
Song recording dialog &app; can render a song as a mix-down or a series of files per generator. The mix-down is ideal to share or publish the song. In both cases the recordings can be encoded and muxed in several formats.
Song recording settings dialog Song recording settings dialog.
Song recording progress dialog Song recording progress dialog.
About dialog This dialog shows a short info about the application, the license it is released under and gives credits to the contributors.
About dialog About dialog.
Tip-of-the-day dialog If the tip-of-the-day feature is enabled in the help menu this dialog is shown each time after starting the application. It will highlight special features that one might otherwise miss.
Tip-of-the-day dialog Tip-of-the-day dialog.
Missing song elements dialog Songs have external dependencies, such as the machines (generators and effects) and sampled wave forms. In some song formats (e.g. .bzt) the wave forms are part of the song file, in others (e.g. .xml) only the path to the waveform file is stored. If loading a file detects that some dependencies are missing, &app; will gather them and present them in one dialog. To solve the problem one needs to install the missing machines or put the external wave forms back to the original place. It would be desirable to have some repair feature in &app; to support fixing the song.
Missing song elements dialog Missing song elements dialog.
Crash recovery dialog When editing a song &app; is writing a detailed change log to disk. In the case of a application, system or computer failure it is possible to replay the changes on top of the last saved copy to get back to the state before failure. When starting &app; it will check for such logs and if some are found present this dialog. Now one can choose to restore the changes or delete them. The dialog is also available from the file menu.
Crash recovery dialog Crash recovery dialog.
Reference This chapter contains a few useful lists for reference. Keyboard shortcuts A complete list of keyboard shortcuts is listed on the buzztrax wiki. Each of has a table describing the local keyboard shortcuts. Index
buzztrax-0.10.2/docs/help/bt-edit/Makefile.am0000644042355400116100000000111712144654421021231 0ustar00ensoniceng00000000000000SUBDIRS = C DOC_MODULE = buzztrax-edit EXTRA_DIST = C/aspell.pws if WITH_ASPELL check-local: @echo "Spellchecking C/$(DOC_MODULE).xml..." @if test 0 -ne `cat $(srcdir)/C/$(DOC_MODULE).xml | aspell list --lang=en_US -p $(PWD)/$(srcdir)/C/aspell.pws --mode=sgml | wc -l`; then \ echo; \ echo "C/$(DOC_MODULE).xml doesn't pass spellchecking, please fix with" >&2; \ echo " aspell check --lang=en_US -p ./C/aspell.pws --mode=sgml C/$(DOC_MODULE).xml" >&2; \ echo; \ false; \ else \ echo " done"; \ fi else check-local: @echo "Aspell is needed for 'make check'" endif buzztrax-0.10.2/docs/help/bt-edit/Makefile.in0000644042355400116100000005607012640575013021252 0ustar00ensoniceng00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 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@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = docs/help/bt-edit DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/orc.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac 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 = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-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 \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ ALSA_DEPS_CFLAGS = @ALSA_DEPS_CFLAGS@ ALSA_DEPS_LIBS = @ALSA_DEPS_LIBS@ ALSA_DOC_SECTIONS = @ALSA_DOC_SECTIONS@ ALSA_DOC_TYPES = @ALSA_DOC_TYPES@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ ASPELL = @ASPELL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASE_DEPS_CFLAGS = @BASE_DEPS_CFLAGS@ BASE_DEPS_LIBS = @BASE_DEPS_LIBS@ BMLHOST_CCASFLAGS = @BMLHOST_CCASFLAGS@ BMLHOST_CFLAGS = @BMLHOST_CFLAGS@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BT_CFLAGS = @BT_CFLAGS@ BT_DISABLE_DEPRECATED = @BT_DISABLE_DEPRECATED@ BT_INCLUDEDIR = @BT_INCLUDEDIR@ BT_LDFLAGS = @BT_LDFLAGS@ BT_LIBDIR = @BT_LIBDIR@ BT_LIBS = @BT_LIBS@ BT_MAJORMINOR = @BT_MAJORMINOR@ BT_MAJOR_VERSION = @BT_MAJOR_VERSION@ BT_MICRO_VERSION = @BT_MICRO_VERSION@ BT_MINOR_VERSION = @BT_MINOR_VERSION@ BT_RELEASE_DATE = @BT_RELEASE_DATE@ BT_RELEASE_YEAR = @BT_RELEASE_YEAR@ BT_VERSION = @BT_VERSION@ BT_VERSION_INFO = @BT_VERSION_INFO@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@ FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIRDIR = @GIRDIR@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@ GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@ GREP = @GREP@ GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GSF_DEPS_CFLAGS = @GSF_DEPS_CFLAGS@ GSF_DEPS_LIBS = @GSF_DEPS_LIBS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ GST_PLUGIN_CFLAGS = @GST_PLUGIN_CFLAGS@ GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ GST_PLUGIN_LIBS = @GST_PLUGIN_LIBS@ GST_PREFIX = @GST_PREFIX@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_PREFIX = @GTK_PREFIX@ GUDEV_DEPS_CFLAGS = @GUDEV_DEPS_CFLAGS@ GUDEV_DEPS_LIBS = @GUDEV_DEPS_LIBS@ GUDEV_DOC_SECTIONS = @GUDEV_DOC_SECTIONS@ GUDEV_DOC_TYPES = @GUDEV_DOC_TYPES@ GUI_DEPS_CFLAGS = @GUI_DEPS_CFLAGS@ GUI_DEPS_LIBS = @GUI_DEPS_LIBS@ G_IR_COMPILER = @G_IR_COMPILER@ G_IR_GENERATE = @G_IR_GENERATE@ G_IR_SCANNER = @G_IR_SCANNER@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LINUX_INPUT_DOC_SECTIONS = @LINUX_INPUT_DOC_SECTIONS@ LINUX_INPUT_DOC_TYPES = @LINUX_INPUT_DOC_TYPES@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ ORC_LIBS = @ORC_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_ORIGIN = @PACKAGE_ORIGIN@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SCROLLKEEPER_BUILD_REQUIRED = @SCROLLKEEPER_BUILD_REQUIRED@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TYPELIBDIR = @TYPELIBDIR@ UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ UPDATE_ICON_CACHE = @UPDATE_ICON_CACHE@ UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ XFONT_PATH = @XFONT_PATH@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bcov_path = @bcov_path@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ lcov_path = @lcov_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ scrollkeeper_config = @scrollkeeper_config@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ valgrind_path = @valgrind_path@ with_desktop_dir = @with_desktop_dir@ xvfb_path = @xvfb_path@ SUBDIRS = C DOC_MODULE = buzztrax-edit EXTRA_DIST = C/aspell.pws all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(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) --foreign docs/help/bt-edit/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/help/bt-edit/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: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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; \ ($(am__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" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ 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 || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-local check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) check-am install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am check-local clean clean-generic clean-libtool \ cscopelist-am ctags ctags-am distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am 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 installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am @WITH_ASPELL_TRUE@check-local: @WITH_ASPELL_TRUE@ @echo "Spellchecking C/$(DOC_MODULE).xml..." @WITH_ASPELL_TRUE@ @if test 0 -ne `cat $(srcdir)/C/$(DOC_MODULE).xml | aspell list --lang=en_US -p $(PWD)/$(srcdir)/C/aspell.pws --mode=sgml | wc -l`; then \ @WITH_ASPELL_TRUE@ echo; \ @WITH_ASPELL_TRUE@ echo "C/$(DOC_MODULE).xml doesn't pass spellchecking, please fix with" >&2; \ @WITH_ASPELL_TRUE@ echo " aspell check --lang=en_US -p ./C/aspell.pws --mode=sgml C/$(DOC_MODULE).xml" >&2; \ @WITH_ASPELL_TRUE@ echo; \ @WITH_ASPELL_TRUE@ false; \ @WITH_ASPELL_TRUE@ else \ @WITH_ASPELL_TRUE@ echo " done"; \ @WITH_ASPELL_TRUE@ fi @WITH_ASPELL_FALSE@check-local: @WITH_ASPELL_FALSE@ @echo "Aspell is needed for 'make check'" # 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: buzztrax-0.10.2/docs/buzztrax.xsd0000644042355400116100000003321612144654421017333 0ustar00ensoniceng00000000000000 Song metadata, like title and genre. Pattern data for all voices of a machine. Value of a dynamic parameter of a machine. Value of a static parameter of a machine. State data. State key-value list. Value of a dynamic parameter for one voice of a machine. Control change fragment for one machine. List of control change fragments for one machine. Media generator/effect/sink. List of machines. Control change fragment for one wire and pattern. List of control change fragments for one wire. Connection of two machines. List of connections. Virtual gear setup (machines and wires). Time slot. Annotation for a tick. List of annotations. Time location for a pattern in a track. Slot for pattern related to one machine. List of tracks. Song structure build of a timeline and tracks. Wave in a wavetable. List of waves. Toplevel elements for a buzztrax song. buzztrax-0.10.2/docs/version.entities.in0000644042355400116100000000036412144654421020560 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/docs/reference/0000755042355400116100000000000012640736116016656 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-edit/0000755042355400116100000000000012640736116020206 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-edit/buzztrax-edit-overrides.txt0000644042355400116100000000000012144654421025546 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-edit/buzztrax-edit-docs.xml0000644042355400116100000001520312640575004024470 0ustar00ensoniceng00000000000000 %version-entities; ]> Buzztrax Bt-Edit Reference Manual for Buzztrax &BT_VERSION;. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-edit/. Introduction Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch. The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures. Overview User Application API Reference The classes described in this chapter are all part of end user application code. Please make sure you have read section conventions before reading further. Main Class Reference Tool Class Reference GStreamer Element Reference Widget Class Reference User Application Command Line Reference Appendix Object Hierarchy API Index Index of deprecated API Index of new API in 0.6 buzztrax-0.10.2/docs/reference/bt-edit/buzztrax-edit.types0000644042355400116100000000344412640736116024115 0ustar00ensoniceng00000000000000#include "core/core.h" #include "bt-edit.h" #include "btmemoryaudiosrc.h" #include "gtkscrolledsyncwindow.h" #include "gtkvumeter.h" bt_about_dialog_get_type bt_change_log_get_type bt_change_logger_get_type bt_crash_recover_dialog_get_type bt_edit_application_get_type bt_interaction_controller_menu_get_type bt_machine_canvas_item_get_type bt_machine_list_model_get_type bt_machine_menu_get_type bt_machine_preferences_dialog_get_type bt_machine_preset_properties_dialog_get_type bt_machine_properties_dialog_get_type bt_machine_rename_dialog_get_type bt_main_menu_get_type bt_main_pages_get_type bt_main_page_machines_get_type bt_main_page_patterns_get_type bt_main_page_sequence_get_type bt_main_page_info_get_type bt_main_page_waves_get_type bt_main_statusbar_get_type bt_main_toolbar_get_type bt_main_window_get_type bt_memory_audio_src_get_type bt_missing_framework_elements_dialog_get_type bt_missing_song_elements_dialog_get_type bt_object_list_model_get_type bt_pattern_list_model_get_type bt_pattern_properties_dialog_get_type bt_playback_controller_ic_get_type bt_playback_controller_socket_get_type bt_preset_list_model_get_type bt_render_dialog_get_type bt_sequence_grid_model_get_type bt_sequence_view_get_type bt_settings_dialog_get_type bt_settings_page_audiodevices_get_type bt_settings_page_directories_get_type bt_settings_page_interaction_controller_get_type bt_settings_page_playback_controller_get_type bt_settings_page_shortcuts_get_type bt_settings_page_ui_get_type bt_signal_analysis_dialog_get_type bt_tip_dialog_get_type bt_ui_resources_get_type bt_wave_list_model_get_type bt_wavelevel_list_model_get_type bt_wire_canvas_item_get_type bt_panorama_popup_get_type bt_pattern_editor_get_type bt_volume_popup_get_type bt_waveform_viewer_get_type gtk_scrolled_sync_window_get_type gtk_vumeter_get_type buzztrax-0.10.2/docs/reference/bt-edit/html/0000755042355400116100000000000012640736116021152 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainPageSequence.html0000644042355400116100000003427612640736116025514 0ustar00ensoniceng00000000000000 BtMainPageSequence: Buzztrax Bt-Edit Reference Manual

BtMainPageSequence

BtMainPageSequence — the editor main sequence page

Properties

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBox
                    ╰── BtMainPageSequence

Implemented Interfaces

BtMainPageSequence implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Provides an editor for BtSequence instances.

Functions

bt_main_page_sequence_new ()

BtMainPageSequence *
bt_main_page_sequence_new (const BtMainPages *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance


bt_main_page_sequence_delete_selection ()

void
bt_main_page_sequence_delete_selection
                               (const BtMainPageSequence *self);

Delete (clear) the selected area.

Parameters

self

the sequence subpage

 

bt_main_page_sequence_copy_selection ()

void
bt_main_page_sequence_copy_selection (const BtMainPageSequence *self);

Copy selected area.

not yet working

Parameters

self

the sequence subpage

 

bt_main_page_sequence_cut_selection ()

void
bt_main_page_sequence_cut_selection (const BtMainPageSequence *self);

Cut selected area.

not yet working

Parameters

self

the sequence subpage

 

bt_main_page_sequence_paste_selection ()

void
bt_main_page_sequence_paste_selection (const BtMainPageSequence *self);

Paste at the top of the selected area.

not yet working

Parameters

self

the sequence subpage

 

Types and Values

struct BtMainPageSequence

struct BtMainPageSequence;

the sequence page for the editor application

Property Details

The “cursor-row” property

  “cursor-row”               glong

position of the cursor in the sequence view in bars.

Flags: Read

Allowed values: >= 0

Default value: 0


The “follow-playback” property

  “follow-playback”          gboolean

scroll the sequence in sync with the playback.

Flags: Read / Write

Default value: TRUE

buzztrax-0.10.2/docs/reference/bt-edit/html/BtWaveformViewer.html0000644042355400116100000002536712640736116025313 0ustar00ensoniceng00000000000000 BtWaveformViewer: Buzztrax Bt-Edit Reference Manual

BtWaveformViewer

BtWaveformViewer — the waveform viewer widget

Properties

gint64 loop-end Read / Write
gint64 loop-start Read / Write
gint64 playback-cursor Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── BtWaveformViewer

Implemented Interfaces

BtWaveformViewer implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Provides an viewer for audio waveforms. It can handle multi-channel waveforms, show loop-markers and a playback cursor.

Functions

bt_waveform_viewer_new ()

GtkWidget *
bt_waveform_viewer_new (void);

Create a new waveform viewer widget. Use bt_waveform_viewer_set_wave() to pass wave data.

Returns

the widget


bt_waveform_viewer_set_wave ()

void
bt_waveform_viewer_set_wave (BtWaveformViewer *self,
                             gint16 *data,
                             gint channels,
                             gint length);

Set wave data to show in the widget.

Parameters

self

the widget

 

data

memory block of samples (interleaved for channels>1)

 

channels

number channels

 

length

number samples per channel

 

Types and Values

struct BtWaveformViewer

struct BtWaveformViewer;

waveform view widget

Property Details

The “loop-end” property

  “loop-end”                 gint64

First sample after the loop or -1 if there is no loop.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “loop-start” property

  “loop-start”               gint64

First sample of the loop or -1 if there is no loop.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “playback-cursor” property

  “playback-cursor”          gint64

Current playback position within a waveform or -1 if sample is not played.

Flags: Write

Allowed values: >= -1

Default value: -1

buzztrax-0.10.2/docs/reference/bt-edit/html/ch02.html0000644042355400116100000000414512640736116022600 0ustar00ensoniceng00000000000000 Tool Class Reference: Buzztrax Bt-Edit Reference Manual

Tool Class Reference

BtPlaybackControllerIc — interaction controller based playback controller
BtPlaybackControllerSocket — sockets based playback controller
buzztrax-0.10.2/docs/reference/bt-edit/html/BtVolumePopup.html0000644042355400116100000002136612640736116024631 0ustar00ensoniceng00000000000000 BtVolumePopup: Buzztrax Bt-Edit Reference Manual

BtVolumePopup

BtVolumePopup — volume popup widget

Types and Values

struct BtVolumePopup

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── BtVolumePopup

Implemented Interfaces

BtVolumePopup implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Shows a popup window containing a vertical slider

Functions

bt_volume_popup_new ()

GtkWidget *
bt_volume_popup_new (GtkAdjustment *adj);

Create a new instance

Parameters

adj

the adjustment for the popup

 

Returns

the new instance or NULL in case of an error


bt_volume_popup_show ()

void
bt_volume_popup_show (BtVolumePopup *self);

Show and activate the widget

Parameters

self

the popup widget

 

bt_volume_popup_hide ()

void
bt_volume_popup_hide (BtVolumePopup *self);

Hide and deactivate the widget

Parameters

self

the popup widget

 

Types and Values

struct BtVolumePopup

struct BtVolumePopup;

a volume popup widget

buzztrax-0.10.2/docs/reference/bt-edit/html/BtInteractionControllerMenu.html0000644042355400116100000003520712640736116027505 0ustar00ensoniceng00000000000000 BtInteractionControllerMenu: Buzztrax Bt-Edit Reference Manual

BtInteractionControllerMenu

BtInteractionControllerMenu — class for the interaction controller assignment popup menu

Properties

BtMachine * machine Write / Construct Only
BtIcControl * selected-control Read / Write
GstObject * selected-object Read / Write
BtParameterGroup * selected-parameter-group Read / Write
gchar * selected-property-name Read / Write
BtInteractionControllerMenuType type Read / Write / Construct Only

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkMenuShell
                    ╰── GtkMenu
                        ╰── BtInteractionControllerMenu

Implemented Interfaces

BtInteractionControllerMenu implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Build a menu with available interaction controllers of a type to be used for a specified machine.

The menu will show whether a control is bound or not and if it is bound the label will include the currently bound target.

Functions

bt_interaction_controller_menu_new ()

BtInteractionControllerMenu *
bt_interaction_controller_menu_new (BtInteractionControllerMenuType type,
                                    BtMachine *machine);

Create a new instance.

Parameters

type

for which kind of controllers make a menu

 

machine

to which machine we want to bind controllers

 

Returns

the new instance

Types and Values

struct BtInteractionControllerMenu

struct BtInteractionControllerMenu;

the machine selection sub-menu for the canvas page context menu


enum BtInteractionControllerMenuType

BtInteractionControllerMenu can generate a menu showing different controller types.

Members

BT_INTERACTION_CONTROLLER_RANGE_MENU

range controllers

 

BT_INTERACTION_CONTROLLER_TRIGGER_MENU

trigger controllers

 

Property Details

The “machine” property

  “machine”                  BtMachine *

Set machine object, the menu handles.

Flags: Write / Construct Only


The “selected-control” property

  “selected-control”         BtIcControl *

control after menu selection.

Flags: Read / Write


The “selected-object” property

  “selected-object”          GstObject *

object the menu is invoked on.

Flags: Read / Write


The “selected-parameter-group” property

  “selected-parameter-group” BtParameterGroup *

object-parameter-group the menu is invoked on.

Flags: Read / Write


The “selected-property-name” property

  “selected-property-name”   gchar *

object-property-name the menu is invoked on.

Flags: Read / Write

Default value: NULL


The “type” property

  “type”                     BtInteractionControllerMenuType

control types to list in the menu.

Flags: Read / Write / Construct Only

Default value: BT_INTERACTION_CONTROLLER_RANGE_MENU

buzztrax-0.10.2/docs/reference/bt-edit/html/buzztrax-edit-btedit.html0000644042355400116100000005567612640736116026150 0ustar00ensoniceng00000000000000 btedit: Buzztrax Bt-Edit Reference Manual

btedit

btedit — buzztrax graphical editor application

Includes

#include "bt-edit.h"

Description

Implements the body of the buzztrax GUI editor.

You can try to run the uninstalled program via

1
libtool --mode=execute buzztrax-edit

to enable debug output add:

1
2
--gst-debug="*:2,bt-*:3" for not-so-much-logdata or
--gst-debug="*:2,bt-*:4" for a-lot-logdata

Example songs can be found in ./test/songs/.

Functions

gdk_pixbuf_new_from_theme ()

GdkPixbuf *
gdk_pixbuf_new_from_theme (const gchar *name,
                           gint size);

Creates a new pixbuf image from the icon name and size .

Parameters

name

the icon name

 

size

the pixel size

 

Returns

a new pixbuf, g_object_unref() when done.


gtk_toolbar_get_style_from_string ()

GtkToolbarStyle
gtk_toolbar_get_style_from_string (const gchar *style_name);

toolbar gconf to style conversion

Parameters

style_name

the style name returned from gconf settings

 

Returns

the style id


gtk_target_table_make ()

GtkTargetEntry *
gtk_target_table_make (GdkAtom format_atom,
                       gint *n_targets);

Generate the target table for pasting to clipboard. Use gtk_target_table_free (targets, n_targets);

Parameters

format_atom

format atom for the target list

 

n_targets

out variable for the size of the table

 

Returns

the table and the size in the out variable n_targets


gtk_show_uri_simple ()

void
gtk_show_uri_simple (GtkWidget *widget,
                     const gchar *uri);

Show the given uri . Uses same screen as widget (default if widget is NULL).

Parameters

widget

widget that triggered the action

 

uri

the uri

 

bt_toolbar_style_changed ()

gboolean
bt_toolbar_style_changed (GBinding *binding,
                          const GValue *from_value,
                          GValue *to_value,
                          gpointer user_data);

Transform function to be used with g_object_bind_property_full()

Parameters

binding

the binding

 

from_value

the source value

 

to_value

the target value

 

user_data

unused

 

Returns

TRUE for successful sync of the properties


bt_label_value_changed ()

gboolean
bt_label_value_changed (GBinding *binding,
                        const GValue *from_value,
                        GValue *to_value,
                        gpointer user_data);

Transform function to be used with g_object_bind_property_full()

Parameters

binding

the binding

 

from_value

the source value

 

to_value

the target value

 

user_data

the label formatstring

 

Returns

TRUE for successful sync of the properties


gtk_tool_button_new_from_icon_name ()

GtkToolItem *
gtk_tool_button_new_from_icon_name (const gchar *icon_name,
                                    const gchar *label);

Creates a new GtkToolButton containing icon_name as contents and label as label.

Parameters

icon_name

the name of the themed icon.

[allow-none]

label

a string that will be used as label, or NULL.

[allow-none]

Returns

the new GtkToolItem


gtk_toggle_tool_button_new_from_icon_name ()

GtkToolItem *
gtk_toggle_tool_button_new_from_icon_name
                               (const gchar *icon_name,
                                const gchar *label);

Creates a new GtkToggleToolButton containing icon_name as contents and label as label.

Parameters

icon_name

the name of the themed icon.

[allow-none]

label

a string that will be used as label, or NULL.

[allow-none]

Returns

the new GtkToolItem

Types and Values

buzztrax-0.10.2/docs/reference/bt-edit/html/BtPanoramaPopup.html0000644042355400116100000002156412640736116025120 0ustar00ensoniceng00000000000000 BtPanoramaPopup: Buzztrax Bt-Edit Reference Manual

BtPanoramaPopup

BtPanoramaPopup — panorama popup widget

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── BtPanoramaPopup

Implemented Interfaces

BtPanoramaPopup implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Shows a popup window containing a horizontal slider

Functions

bt_panorama_popup_new ()

GtkWidget *
bt_panorama_popup_new (GtkAdjustment *adj);

Create a new instance

Parameters

adj

the adjustment for the popup

 

Returns

the new instance or NULL in case of an error


bt_panorama_popup_show ()

void
bt_panorama_popup_show (BtPanoramaPopup *self);

Show and activate the widget

Parameters

self

the popup widget

 

bt_panorama_popup_hide ()

void
bt_panorama_popup_hide (BtPanoramaPopup *self);

Hide and deactivate the widget

Parameters

self

the popup widget

 

Types and Values

struct BtPanoramaPopup

struct BtPanoramaPopup;

a volume popup widget

buzztrax-0.10.2/docs/reference/bt-edit/html/BtObjectListModel.html0000644042355400116100000003134612640736116025360 0ustar00ensoniceng00000000000000 BtObjectListModel: Buzztrax Bt-Edit Reference Manual

BtObjectListModel

BtObjectListModel — data model class for some widgets

Types and Values

Object Hierarchy

    GObject
    ╰── BtObjectListModel

Implemented Interfaces

BtObjectListModel implements GtkTreeModel.

Includes

#include "bt-edit.h"

Description

Allows to bind gobject properties to model columns. Does not copy the data and thus keeps the widget always up-to-date.

Functions

bt_object_list_model_insert ()

void
bt_object_list_model_insert (BtObjectListModel *model,
                             GObject *object,
                             gint position);

Insert a new row to the model . The object has to have the same type as given to bt_object_list_model_new().

Parameters

model

the model

 

object

the object to insert

 

position

the position of the new row

 

bt_object_list_model_append ()

void
bt_object_list_model_append (BtObjectListModel *model,
                             GObject *object);

Append a new row to the model . The object has to have the same type as given to bt_object_list_model_new().

Parameters

model

the model

 

object

the object to append

 

bt_object_list_model_get_object ()

GObject *
bt_object_list_model_get_object (BtObjectListModel *model,
                                 GtkTreeIter *iter);

The the GObject for the iter.

Parameters

model

the model

 

iter

the iter

 

bt_object_list_model_new ()

BtObjectListModel *
bt_object_list_model_new (gint n_columns,
                          GType object_type,
                          ...);

Creates a list model mapping object properties to model columns.

Parameters

n_columns

number of columns

 

object_type

the GType of the objects in the model

 

...

property names for the columns

 

Returns

the model.

Types and Values

struct BtObjectListModel

struct BtObjectListModel;

Data model for GtkTreeView or GtkComboBox.

buzztrax-0.10.2/docs/reference/bt-edit/html/home.png0000644042355400116100000000040012640736116022602 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME &IDAT8ҽ Aߞf`n v`6`/`Yܡ`f&k$,} 0b+ԸaQW~b O e{y N[L}.piBzmm o.I]7^[;%:VIENDB`buzztrax-0.10.2/docs/reference/bt-edit/html/BtSignalAnalysisDialog.html0000644042355400116100000002120212640736116026364 0ustar00ensoniceng00000000000000 BtSignalAnalysisDialog: Buzztrax Bt-Edit Reference Manual

BtSignalAnalysisDialog

BtSignalAnalysisDialog — audio analysis window

Properties

GstBin * element Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── BtSignalAnalysisDialog

Implemented Interfaces

BtSignalAnalysisDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

The dialog shows a spectrum analyzer and level-meters for left/right channel. The spectrum analyzer support mono and stereo display. It has a few settings for logarithmic/linear mapping and precission.

Right now the analyser-section can be attached to a BtWire and the BtSinkBin.

The dialog is not modal.

Functions

bt_signal_analysis_dialog_new ()

BtSignalAnalysisDialog *
bt_signal_analysis_dialog_new (const GstBin *element);

Create a new instance

Parameters

element

the wire/machine object to create the dialog for

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtSignalAnalysisDialog

struct BtSignalAnalysisDialog;

the root window for the editor application

Property Details

The “element” property

  “element”                  GstBin *

Set wire/machine object, the dialog handles.

Flags: Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMachinePropertiesDialog.html0000644042355400116100000002131312640736116027067 0ustar00ensoniceng00000000000000 BtMachinePropertiesDialog: Buzztrax Bt-Edit Reference Manual

BtMachinePropertiesDialog

BtMachinePropertiesDialog — machine realtime parameters

Properties

BtMachine * machine Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── BtMachinePropertiesDialog

Implemented Interfaces

BtMachinePropertiesDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

A dialog to configure dynamic settings of a BtMachine. The dialog also allows to editing and manage presets for machines that support them.

The song remembers the open/close state of the window and its preset pane. It also remembers the last loaded preset if any.

Functions

bt_machine_properties_dialog_new ()

BtMachinePropertiesDialog *
bt_machine_properties_dialog_new (const BtMachine *machine);

Create a new instance

Parameters

machine

the machine to create the dialog for

 

Returns

the new instance

Types and Values

struct BtMachinePropertiesDialog

struct BtMachinePropertiesDialog;

the root window for the editor application

Property Details

The “machine” property

  “machine”                  BtMachine *

Set machine object, the dialog handles.

Flags: Write / Construct Only

See Also

BtMachine

buzztrax-0.10.2/docs/reference/bt-edit/html/left-insensitive.png0000644042355400116100000000061312640736116025150 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEƫqIDAT8͒NQ@pds`*4@W@ A!Ԇ@6^ 5hxIH R`sQp̙339B|sKEQTK@۝΁i^~Wʆ`0TJ6TcYn6A ƀ~߱>}ǭs; lYkwr 5U= /" "uU=ɲlArDzp5I4^E+P3Ɯq_p ̥iUYp=#IENDB`buzztrax-0.10.2/docs/reference/bt-edit/html/BtSettingsPageInteractionController.html0000644042355400116100000002262712640736116031200 0ustar00ensoniceng00000000000000 BtSettingsPageInteractionController: Buzztrax Bt-Edit Reference Manual

BtSettingsPageInteractionController

BtSettingsPageInteractionController — interaction controller configuration settings page

Properties

BtIcControl * control Read
BtIcDevice * device Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkGrid
                    ╰── BtSettingsPageInteractionController

Implemented Interfaces

BtSettingsPageInteractionController implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Lists available interaction controller devices and allows to select controllers that should be used.

Functions

bt_settings_page_interaction_controller_new ()

BtSettingsPageInteractionController *
bt_settings_page_interaction_controller_new
                               (GtkWidget *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtSettingsPageInteractionController

struct BtSettingsPageInteractionController;

the root window for the editor application

Property Details

The “control” property

  “control”                  BtIcControl *

selected control.

Flags: Read


The “device” property

  “device”                   BtIcDevice *

device object.

Flags: Read / Write

buzztrax-0.10.2/docs/reference/bt-edit/html/BtPresetListModel.html0000644042355400116100000003301712640736116025411 0ustar00ensoniceng00000000000000 BtPresetListModel: Buzztrax Bt-Edit Reference Manual

BtPresetListModel

BtPresetListModel — data model class for widgets showing presets of a machine

Types and Values

Object Hierarchy

    GObject
    ╰── BtPresetListModel

Implemented Interfaces

BtPresetListModel implements GtkTreeModel.

Includes

#include "bt-edit.h"

Description

A generic model representing the presets of a machine, suitable for combo-boxes and treeview widgets.

One needs to manually tell the model of new, removed and changed presets.

Functions

bt_preset_list_model_new ()

BtPresetListModel *
bt_preset_list_model_new (GstElement *machine);

Creates a list model of presets for the machine . The model is automatically updated when presets are added, removed or renamed.

Parameters

machine

the gstreamer element of the machine

 

Returns

the preset model.


bt_preset_list_model_add ()

void
bt_preset_list_model_add (BtPresetListModel *model,
                          gchar *preset);

Notifies the model that a new preset was added.

Parameters

model

the model

 

preset

the new preset

 

bt_preset_list_model_remove ()

void
bt_preset_list_model_remove (BtPresetListModel *model,
                             gchar *preset);

Notifies the model that a preset was removed.

Parameters

model

the model

 

preset

the removed preset

 

bt_preset_list_model_rename ()

void
bt_preset_list_model_rename (BtPresetListModel *model,
                             gchar *o_preset,
                             gchar *n_preset);

Notifies the model that a preset was renamed.

Parameters

model

the model

 

o_preset

the previous preset name

 

n_preset

the new preset name

 

bt_preset_list_model_find_iter ()

gboolean
bt_preset_list_model_find_iter (BtPresetListModel *model,
                                gchar *preset,
                                GtkTreeIter *iter);

Find the preset and return the iter to the row.

Parameters

model

the model

 

preset

the selected preset

 

iter

the tree iter for the selection

 

Returns

TRUE of the preset has been found and iter is set.

Types and Values

struct BtPresetListModel

struct BtPresetListModel;

Data model for GtkTreeView or GtkComboBox.

buzztrax-0.10.2/docs/reference/bt-edit/html/right.png0000644042355400116100000000040512640736116022774 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME!GIDAT8үa?MIdEr,-hAIl ry}sX6 !9#D r$-Br$G"$;WZ&!cq \`軀O=QoufIENDB`buzztrax-0.10.2/docs/reference/bt-edit/html/left.png0000644042355400116100000000040612640736116022612 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME,`m;IDAT8үa?DAPY\$[p+IIMlf('}Mpy{_ޥ}^q xZ <=Yj) <04\~+Pl#",Qϑp Iǐlsw>[/]_i03IENDB`buzztrax-0.10.2/docs/reference/bt-edit/html/ch03.html0000644042355400116100000000362012640736116022576 0ustar00ensoniceng00000000000000 GStreamer Element Reference: Buzztrax Bt-Edit Reference Manual

GStreamer Element Reference

BtMemoryAudioSrc — play samples from memory
buzztrax-0.10.2/docs/reference/bt-edit/html/BtEditApplication.html0000644042355400116100000007741612640736116025416 0ustar00ensoniceng00000000000000 BtEditApplication: Buzztrax Bt-Edit Reference Manual

BtEditApplication

BtEditApplication — class for a gtk based buzztrax editor application

Properties

BtIcRegistry * ic-registry Read
BtMainWindow * main-window Read
BtSong * song Read / Write
gboolean unsaved Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── BtApplication
        ╰── BtEditApplication

Includes

#include "bt-edit.h"

Description

Opens the BtMainWindow and provide application level function like load, save, run and exit.

It also provides functions to invoke some dialogs like about and tips.

The application instance will have exactly one active “song” at a time. I tracks undo/redo-able changes to the song via BtChangeLog and simple flagged changes via the “unsaved” property.

Functions

bt_edit_application_new ()

BtEditApplication *
bt_edit_application_new (void);

Create a new instance on first call and return a reference later on.

Returns

the new singleton instance


bt_edit_application_new_song ()

gboolean
bt_edit_application_new_song (const BtEditApplication *self);

Creates a new blank song instance. If there is a previous song instance it will be freed.

Parameters

self

the application instance to create a new song in

 

Returns

TRUE for success


bt_edit_application_load_song ()

gboolean
bt_edit_application_load_song (const BtEditApplication *self,
                               const char *file_name,
                               GError **err);

Loads a new song. If there is a previous song instance it will be freed.

Parameters

self

the application instance to load a new song in

 

file_name

the song filename to load

 

err

where to store the error message in case of an error, or NULL

 

Returns

true for success


bt_edit_application_save_song ()

gboolean
bt_edit_application_save_song (const BtEditApplication *self,
                               const char *file_name,
                               GError **err);

Saves a song.

Parameters

self

the application instance to save a song from

 

file_name

the song filename to save

 

err

where to store the error message in case of an error, or NULL

 

Returns

true for success


bt_edit_application_run ()

gboolean
bt_edit_application_run (const BtEditApplication *self);

Start the gtk based editor application

Parameters

self

the application instance to run

 

Returns

TRUE for success


bt_edit_application_load_and_run ()

gboolean
bt_edit_application_load_and_run (const BtEditApplication *self,
                                  const gchar *input_file_name);

load the file of the supplied name and start the gtk based editor application

Parameters

self

the application instance to run

 

input_file_name

the file to load initially

 

Returns

true for success


bt_edit_application_quit ()

gboolean
bt_edit_application_quit (const BtEditApplication *self);

End the application. Eventually asks the user for confirmation.

Parameters

self

the application instance to quit

 

Returns

TRUE it ending the application was confirmed


bt_edit_application_show_about ()

void
bt_edit_application_show_about (const BtEditApplication *self);

Shows the applications about window

Parameters

self

the application instance

 

bt_edit_application_show_tip ()

void
bt_edit_application_show_tip (const BtEditApplication *self);

Shows the tip of the day window

Parameters

self

the application instance

 

Since: 0.6


bt_edit_application_crash_log_recover ()

void
bt_edit_application_crash_log_recover (const BtEditApplication *self);

Shows the crash-log recover window if we have pending crash logs.

Parameters

self

the application instance

 

Since: 0.6


bt_edit_application_attach_child_window ()

void
bt_edit_application_attach_child_window
                               (const BtEditApplication *self,
                                GtkWindow *window);

The parent and transient relation ship to the applications main-window.

Parameters

self

the application instance

 

window

a child window (e.g. dialog)

 

Since: 0.6


bt_edit_application_ui_lock ()

void
bt_edit_application_ui_lock (const BtEditApplication *self);

Sets the main window insensitive and show a wait cursor.

Parameters

self

the application instance

 

bt_edit_application_ui_unlock ()

void
bt_edit_application_ui_unlock (const BtEditApplication *self);

Sets the main window sensitive again and unset the wait cursor.

Parameters

self

the application instance

 

bt_edit_application_is_song_unsaved ()

gboolean
bt_edit_application_is_song_unsaved (const BtEditApplication *self);

Check if the song has unsaved changes.

Parameters

self

the application instance

 

Returns

TRUE if there are pending changes


bt_edit_application_set_song_unsaved ()

void
bt_edit_application_set_song_unsaved (const BtEditApplication *self);

Flag unsaved changes in the applications song.

Parameters

self

the application instance

 

Types and Values

struct BtEditApplication

struct BtEditApplication;

BtApplication subclass for the gtk editor application

Property Details

The “ic-registry” property

  “ic-registry”              BtIcRegistry *

the interaction controller registry of this application.

Flags: Read


The “main-window” property

  “main-window”              BtMainWindow *

the main window of this application.

Flags: Read


The “song” property

  “song”                     BtSong *

the current song object.

Flags: Read / Write


The “unsaved” property

  “unsaved”                  gboolean

tell whether the current state of the song has been saved.

Flags: Read / Write

Default value: TRUE

See Also

BtMainWindow

buzztrax-0.10.2/docs/reference/bt-edit/html/BtWavelevelListModel.html0000644042355400116100000002024012640736116026073 0ustar00ensoniceng00000000000000 BtWavelevelListModel: Buzztrax Bt-Edit Reference Manual

BtWavelevelListModel

BtWavelevelListModel — data model class for widgets showing wavelevel of a wave

Types and Values

Object Hierarchy

    GObject
    ╰── BtWavelevelListModel

Implemented Interfaces

BtWavelevelListModel implements GtkTreeModel.

Includes

#include "bt-edit.h"

Description

A generic model representing the wavelevels of a wave, suitable for combo-boxes and treeview widgets.

Functions

bt_wavelevel_list_model_get_object ()

BtWavelevel *
bt_wavelevel_list_model_get_object (BtWavelevelListModel *model,
                                    GtkTreeIter *iter);

Lookup a wavelevel.

Parameters

model

the model

 

iter

the iter

 

Returns

the BtWavelevel for the iter.


bt_wavelevel_list_model_new ()

BtWavelevelListModel *
bt_wavelevel_list_model_new (BtWave *wave);

Creates a list model of wave-levels for the wave . The model is automatically updated when wave-levels are changed.

Parameters

wave

the wave

 

Returns

the wave-level model.

Types and Values

struct BtWavelevelListModel

struct BtWavelevelListModel;

Data model for GtkTreeView or GtkComboBox.

buzztrax-0.10.2/docs/reference/bt-edit/html/BtSettingsPagePlaybackController.html0000644042355400116100000001671412640736116030447 0ustar00ensoniceng00000000000000 BtSettingsPagePlaybackController: Buzztrax Bt-Edit Reference Manual

BtSettingsPagePlaybackController

BtSettingsPagePlaybackController — playback controller configuration settings page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkGrid
                    ╰── BtSettingsPagePlaybackController

Implemented Interfaces

BtSettingsPagePlaybackController implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Lists available playback controllers and allows to configure them. Each controller type can support a master and a slave mode. Master mode means that changes in the playback state in buzztrax, will relect on the playback state of clients to that protocol. Slave mode will cause buzztrax to sync to the external playback state.

Functions

bt_settings_page_playback_controller_new ()

BtSettingsPagePlaybackController *
bt_settings_page_playback_controller_new
                               (GtkWidget *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtSettingsPagePlaybackController

struct BtSettingsPagePlaybackController;

the root window for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/style.css0000644042355400116100000002115412640736116023027 0ustar00ensoniceng00000000000000body { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.informaltable table { border-collapse: separate; border-spacing: 1em 0.3em; border: none; } div.informaltable table td, div.informaltable table th { vertical-align: top; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } /* code listings */ .listing_code .programlisting .normal, .listing_code .programlisting .normal a, .listing_code .programlisting .number, .listing_code .programlisting .cbracket, .listing_code .programlisting .symbol { color: #555753; } .listing_code .programlisting .comment, .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ .listing_code .programlisting .function, .listing_code .programlisting .function a, .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ .listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ .listing_code .programlisting .keyword, .listing_code .programlisting .usertype, .listing_code .programlisting .type, .listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainWindow.html0000644042355400116100000005671112640736116024414 0ustar00ensoniceng00000000000000 BtMainWindow: Buzztrax Bt-Edit Reference Manual

BtMainWindow

BtMainWindow — root buzztrax editor window

Properties

Types and Values

struct BtMainWindow

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── BtMainWindow

Implemented Interfaces

BtMainWindow implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

The main window class is a container for the BtMainMenu, the BtMainToolbar, the BtMainStatusbar and the BtMainPages tabbed notebook.

Functions

bt_main_window_new ()

BtMainWindow *
bt_main_window_new (void);

Create a new instance

Returns

the new instance


bt_main_window_check_unsaved_song ()

gboolean
bt_main_window_check_unsaved_song (const BtMainWindow *self,
                                   const gchar *title,
                                   const gchar *headline);

Checks if the current song is modified and asks for confirmation to continue (and loose the changes). It only considers the undo/redo stack and not minor changes such as switching tabs or selecting something.

Parameters

self

the main window instance

 

title

the title of the message

 

headline

the bold headline of the message

 

Returns

TRUE if the user has confirmed to continue


bt_main_window_check_quit ()

gboolean
bt_main_window_check_quit (const BtMainWindow *self);

Displays a dialog box, that asks the user to confirm exiting the application.

Parameters

self

the main window instance

 

Returns

TRUE if the user has confirmed to exit


bt_main_window_new_song ()

void
bt_main_window_new_song (const BtMainWindow *self);

Prepares a new song. Triggers cleaning up the old song and refreshes the ui.

Parameters

self

the main window instance

 

bt_main_window_open_song ()

void
bt_main_window_open_song (const BtMainWindow *self);

Opens a dialog box, where the user can choose a song to load. If the dialog is not canceld, the old song will be freed, the new song will be loaded and the ui will be refreshed upon success.

Parameters

self

the main window instance

 

bt_main_window_save_song ()

void
bt_main_window_save_song (const BtMainWindow *self);

Save the song to disk. If it is a new song it will ask for a file_name and location.

Parameters

self

the main window instance

 

bt_main_window_save_song_as ()

void
bt_main_window_save_song_as (const BtMainWindow *self);

Opens a dialog box, where the user can choose a file_name and location to save the song under.

Parameters

self

the main window instance

 

bt_dialog_message ()

void
bt_dialog_message (const BtMainWindow *self,
                   const gchar *title,
                   const gchar *headline,
                   const gchar *message);

Displays a modal message dialog, that needs to be confirmed with "Okay".

Parameters

self

the applications main window

 

title

the title of the message

 

headline

the bold headline of the message

 

message

the message itself

 

bt_dialog_question ()

gboolean
bt_dialog_question (const BtMainWindow *self,
                    const gchar *title,
                    const gchar *headline,
                    const gchar *message);

Displays a modal question dialog, that needs to be confirmed with "Okay" or aborted with "Cancel".

Parameters

self

the applications main window

 

title

the title of the message

 

headline

the bold headline of the message

 

message

the message itself

 

Returns

TRUE for Okay, FALSE otherwise

Types and Values

struct BtMainWindow

struct BtMainWindow;

the root window for the editor application

Property Details

The “dialog” property

  “dialog”                   GtkDialog *

Get the active dialog.

Flags: Read


The “pages” property

  “pages”                    BtMainPages *

Get the pages widget.

Flags: Read


The “statusbar” property

  “statusbar”                BtMainStatusbar *

Get the status bar.

Flags: Read


The “toolbar” property

  “toolbar”                  BtMainToolbar *

Get the toolbar.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainPageMachines.html0000644042355400116100000007053412640736116025470 0ustar00ensoniceng00000000000000 BtMainPageMachines: Buzztrax Bt-Edit Reference Manual

BtMainPageMachines

BtMainPageMachines — the editor main machines page

Properties

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBox
                    ╰── BtMainPageMachines

Implemented Interfaces

BtMainPageMachines implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Displays the machine setup and wires on a canvas. The area is an infinite canvas that can be moved and zoomed freely.

Functions

bt_main_page_machines_new ()

BtMainPageMachines *
bt_main_page_machines_new (const BtMainPages *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance


bt_main_page_machines_wire_volume_popup ()

gboolean
bt_main_page_machines_wire_volume_popup
                               (const BtMainPageMachines *self,
                                BtWire *wire,
                                gint xpos,
                                gint ypos);

Activates the volume-popup for the given wire.

Parameters

self

the machines page

 

wire

the wire to popup the volume control for

 

xpos

the x-position for the popup

 

ypos

the y-position for the popup

 

Returns

TRUE for succes.


bt_main_page_machines_wire_panorama_popup ()

gboolean
bt_main_page_machines_wire_panorama_popup
                               (const BtMainPageMachines *self,
                                BtWire *wire,
                                gint xpos,
                                gint ypos);

Activates the panorama-popup for the given wire.

Parameters

self

the machines page

 

wire

the wire to popup the panorama control for

 

xpos

the x-position for the popup

 

ypos

the y-position for the popup

 

Returns

TRUE for succes.


bt_main_page_machines_add_source_machine ()

gboolean
bt_main_page_machines_add_source_machine
                               (const BtMainPageMachines *self,
                                const gchar *id,
                                const gchar *plugin_name);

Add a new machine to the machine-page.

Parameters

self

the machines page

 

id

the id for the new machine

 

plugin_name

the plugin-name for the new machine

 

bt_main_page_machines_add_processor_machine ()

gboolean
bt_main_page_machines_add_processor_machine
                               (const BtMainPageMachines *self,
                                const gchar *id,
                                const gchar *plugin_name);

Add a new machine to the machine-page.

Parameters

self

the machines page

 

id

the id for the new machine

 

plugin_name

the plugin-name for the new machine

 

bt_main_page_machines_delete_machine ()

void
bt_main_page_machines_delete_machine (const BtMainPageMachines *self,
                                      BtMachine *machine);

Remove a machine from the machine-page.

Parameters

self

the machines page

 

machine

the machine to remove

 

bt_main_page_machines_delete_wire ()

void
bt_main_page_machines_delete_wire (const BtMainPageMachines *self,
                                   BtWire *wire);

Remove a wire from the machine-page (unlink the machines).

Parameters

self

the machines page

 

wire

the wire to remove

 

bt_main_page_machines_rename_machine ()

void
bt_main_page_machines_rename_machine (const BtMainPageMachines *self,
                                      BtMachine *machine);

Run the machine BtMachineRenameDialog.

Parameters

self

the machines page

 

machine

the machine to rename

 

bt_main_page_machines_canvas_coords_to_relative ()

void
bt_main_page_machines_canvas_coords_to_relative
                               (const BtMainPageMachines *self,
                                const gdouble xc,
                                const gdouble yc,
                                gdouble *xr,
                                gdouble *yr);

Convert the given canvas pixel coordinates into relative coordinates (with a range of -1.0 .. 1.0).

Parameters

self

the machines page

 

xc

the x pixel position

 

yc

the y pixel position

 

xr

pointer to store the relative x position into

 

yr

pointer to store the relative y position into

 

bt_main_page_machines_relative_coords_to_canvas ()

void
bt_main_page_machines_relative_coords_to_canvas
                               (const BtMainPageMachines *self,
                                const gdouble xr,
                                const gdouble yr,
                                gdouble *xc,
                                gdouble *yc);

Convert the given relative coordinates (with a range of from -1.0 .. 1.0) into canvas pixel coordinates.

Parameters

self

the machines page

 

xr

the relative x position

 

yr

the relative y position

 

xc

pointer to store the canvas x position into

 

yc

pointer to store the canvas y position into

 

Types and Values

struct BtMainPageMachines

struct BtMainPageMachines;

the machines page for the editor application

Property Details

The “canvas” property

  “canvas”                   ClutterActor *

Get the machine canvas.

Flags: Read

See Also

BtSetup

buzztrax-0.10.2/docs/reference/bt-edit/html/GtkVUMeter.html0000644042355400116100000003007212640736116024037 0ustar00ensoniceng00000000000000 GtkVUMeter: Buzztrax Bt-Edit Reference Manual

GtkVUMeter

GtkVUMeter — vu meter widget

Types and Values

struct GtkVUMeter

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkVUMeter

Implemented Interfaces

GtkVUMeter implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Shows a vertical or horizontal gauge with a colorized bar to signal volume level.

Functions

gtk_vumeter_new ()

GtkWidget *
gtk_vumeter_new (GtkOrientation orientation);

Creates a new VUMeter widget.

Parameters

orientation

vertical/horizontal

 

Returns

the new GtkWidget


gtk_vumeter_set_min_max ()

void
gtk_vumeter_set_min_max (GtkVUMeter *self,
                         gint min,
                         gint max);

Sets the minimum and maximum of the VU Meters scale. The positions are irrelevant as the widget will rearrange them. It will also increment max by one if min == max. And finally it will clamp the current level into the min,max range.

Parameters

self

the vumeter widget to change the level bounds

 

min

the new minimum level shown (level that is 0%)

 

max

the new maximum level shown (level that is 100%)

 

gtk_vumeter_set_levels ()

void
gtk_vumeter_set_levels (GtkVUMeter *self,
                        gint rms,
                        gint peak);

Sets new level values for the level display. The peak level is the current max level. The rmx level is the decaying level part. They are clamped to the min max range.

Parameters

self

the vumeter widget to change the current level

 

rms

the new rms level shown

 

peak

the new peak level shown

 

gtk_vumeter_set_scale ()

void
gtk_vumeter_set_scale (GtkVUMeter *self,
                       gint scale);

Sets the scale of the VU Meter. It is either log or linear and defaults to linear. No matter which scale you set the input should always be linear, GtkVUMeter does the log calculation. 0db is red. -6db is yellow. -18db is green. Whatever min turns into is dark green.

Parameters

self

the vumeter widget to change the scaling type

 

scale

the scale type, either GTK_VUMETER_SCALE_LINEAR or GTK_VUMETER_SCALE_LOG

 

Types and Values

struct GtkVUMeter

struct GtkVUMeter;

a volume meter widget

buzztrax-0.10.2/docs/reference/bt-edit/html/BtTipDialog.html0000644042355400116100000001364512640736116024213 0ustar00ensoniceng00000000000000 BtTipDialog: Buzztrax Bt-Edit Reference Manual

BtTipDialog

BtTipDialog — class for the editor tip-of-the-day dialog

Functions

Types and Values

struct BtTipDialog

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtTipDialog

Implemented Interfaces

BtTipDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Show a tip, that has not yet been shown to the user.

Functions

bt_tip_dialog_new ()

BtTipDialog *
bt_tip_dialog_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtTipDialog

struct BtTipDialog;

the about dialog for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMachinePreferencesDialog.html0000644042355400116100000002101312640736116027171 0ustar00ensoniceng00000000000000 BtMachinePreferencesDialog: Buzztrax Bt-Edit Reference Manual

BtMachinePreferencesDialog

BtMachinePreferencesDialog — machine non-realtime parameters

Properties

BtMachine * machine Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── BtMachinePreferencesDialog

Implemented Interfaces

BtMachinePreferencesDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

A dialog to configure static settings of a BtMachine.

Functions

bt_machine_preferences_dialog_new ()

BtMachinePreferencesDialog *
bt_machine_preferences_dialog_new (const BtMachine *machine);

Create a new instance

Parameters

machine

the machine to create the dialog for

 

Returns

the new instance

Types and Values

struct BtMachinePreferencesDialog

struct BtMachinePreferencesDialog;

the root window for the editor application

Property Details

The “machine” property

  “machine”                  BtMachine *

Set machine object, the dialog handles.

Flags: Write / Construct Only

See Also

BtMachine

buzztrax-0.10.2/docs/reference/bt-edit/html/BtWireCanvasItem.html0000644042355400116100000003450612640736116025217 0ustar00ensoniceng00000000000000 BtWireCanvasItem: Buzztrax Bt-Edit Reference Manual

BtWireCanvasItem

BtWireCanvasItem — class for the editor wire views wire canvas item

Properties

BtSignalAnalysisDialog * analysis-dialog Read
BtMachineCanvasItem * dst Read / Write / Construct Only
BtMainPageMachines * machines-page Read / Write / Construct Only
BtMachineCanvasItem * src Read / Write / Construct Only
BtWire * wire Read / Write / Construct Only
gdouble zoom Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── ClutterActor
            ╰── BtWireCanvasItem

Implemented Interfaces

BtWireCanvasItem implements ClutterContainer, ClutterScriptable, ClutterAnimatable and AtkImplementorIface.

Includes

#include "bt-edit.h"

Description

Provides volume control on the wires, as well as a menu to disconnect wires and to launch the analyzer screen.

Functions

bt_wire_canvas_item_new ()

BtWireCanvasItem *
bt_wire_canvas_item_new (const BtMainPageMachines *main_page_machines,
                         BtWire *wire,
                         BtMachineCanvasItem *src_machine_item,
                         BtMachineCanvasItem *dst_machine_item);

Create a new instance

Parameters

main_page_machines

the machine page the new item belongs to

 

wire

the wire for which a canvas item should be created

 

src_machine_item

the machine item at start

 

dst_machine_item

the machine item at end

 

Returns

the new instance or NULL in c#if 0 ase of an error


bt_wire_show_analyzer_dialog ()

void
bt_wire_show_analyzer_dialog (BtWire *wire);

Shows the wire analyzer dialog.

Parameters

wire

wire to show the dialog for

 

Since: 0.6

Types and Values

struct BtWireCanvasItem

struct BtWireCanvasItem;

the root window for the editor application

Property Details

The “analysis-dialog” property

  “analysis-dialog”          BtSignalAnalysisDialog *

Get the the analysis dialog if shown.

Flags: Read


The “dst” property

  “dst”                      BtMachineCanvasItem *

Set wire dst machine canvas item.

Flags: Read / Write / Construct Only


The “machines-page” property

  “machines-page”            BtMainPageMachines *

Set application object, the window belongs to.

Flags: Read / Write / Construct Only


The “src” property

  “src”                      BtMachineCanvasItem *

Set wire src machine canvas item.

Flags: Read / Write / Construct Only


The “wire” property

  “wire”                     BtWire *

Set wire object, the item belongs to.

Flags: Read / Write / Construct Only


The “zoom” property

  “zoom”                     gdouble

Set zoom ratio for the wire item.

Flags: Read / Write

Allowed values: [0,100]

Default value: 1

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainPagePatterns.html0000644042355400116100000003631112640736116025534 0ustar00ensoniceng00000000000000 BtMainPagePatterns: Buzztrax Bt-Edit Reference Manual

BtMainPagePatterns

BtMainPagePatterns — the editor main pattern page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBox
                    ╰── BtMainPagePatterns

Implemented Interfaces

BtMainPagePatterns implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Provides an editor for BtPattern instances.

Functions

bt_main_page_patterns_new ()

BtMainPagePatterns *
bt_main_page_patterns_new (const BtMainPages *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance


bt_main_page_patterns_show_pattern ()

void
bt_main_page_patterns_show_pattern (const BtMainPagePatterns *self,
                                    BtPattern *pattern);

Show the given pattern . Will update machine and pattern menu.

Parameters

self

the pattern subpage

 

pattern

the pattern to show

 

bt_main_page_patterns_show_machine ()

void
bt_main_page_patterns_show_machine (const BtMainPagePatterns *self,
                                    BtMachine *machine);

Show the given machine . Will update machine menu.

Parameters

self

the pattern subpage

 

machine

the machine to show

 

bt_main_page_patterns_delete_selection ()

void
bt_main_page_patterns_delete_selection
                               (const BtMainPagePatterns *self);

Delete (clear) the selected area.

Parameters

self

the pattern subpage

 

bt_main_page_patterns_cut_selection ()

void
bt_main_page_patterns_cut_selection (const BtMainPagePatterns *self);

Cut selected area.

Parameters

self

the pattern subpage

 

bt_main_page_patterns_copy_selection ()

void
bt_main_page_patterns_copy_selection (const BtMainPagePatterns *self);

Copy selected area.

Parameters

self

the sequence subpage

 

bt_main_page_patterns_paste_selection ()

void
bt_main_page_patterns_paste_selection (const BtMainPagePatterns *self);

Paste at the top of the selected area.

Parameters

self

the pattern subpage

 

Types and Values

struct BtMainPagePatterns

struct BtMainPagePatterns;

the pattern page for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMachinePresetPropertiesDialog.html0000644042355400116100000003055412640736116030261 0ustar00ensoniceng00000000000000 BtMachinePresetPropertiesDialog: Buzztrax Bt-Edit Reference Manual

BtMachinePresetPropertiesDialog

BtMachinePresetPropertiesDialog — machine preset settings

Properties

gpointer comment Read / Write / Construct Only
GstElement * machine Read / Write / Construct Only
gpointer name Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtMachinePresetPropertiesDialog

Implemented Interfaces

BtMachinePresetPropertiesDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

A dialog to (re)configure machine presets.

Functions

bt_machine_preset_properties_dialog_new ()

BtMachinePresetPropertiesDialog *
bt_machine_preset_properties_dialog_new
                               (GstElement *machine,
                                gchar **name,
                                gchar **comment);

Create a new instance

Parameters

machine

the machine for which to create the dialog for

 

name

the preset name

 

comment

the comment name

 

Returns

the new instance


bt_machine_preset_properties_dialog_apply ()

void
bt_machine_preset_properties_dialog_apply
                               (const BtMachinePresetPropertiesDialog *self);

Makes the dialog settings effective.

Parameters

self

the dialog which settings to apply

 

Types and Values

struct BtMachinePresetPropertiesDialog

struct BtMachinePresetPropertiesDialog;

the root window for the editor application

Property Details

The “comment” property

  “comment”                  gpointer

address of preset comment.

Flags: Read / Write / Construct Only


The “machine” property

  “machine”                  GstElement *

Set machine object, the dialog handles.

Flags: Read / Write / Construct Only


The “name” property

  “name”                     gpointer

address of preset name.

Flags: Read / Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-edit/html/BtPlaybackControllerIc.html0000644042355400116100000001202312640736116026372 0ustar00ensoniceng00000000000000 BtPlaybackControllerIc: Buzztrax Bt-Edit Reference Manual

BtPlaybackControllerIc

BtPlaybackControllerIc — interaction controller based playback controller

Types and Values

Object Hierarchy

    GObject
    ╰── BtPlaybackControllerIc

Includes

#include "bt-edit.h"

Description

Uses ic-devices and listens to configurable playback controls.

Functions

bt_playback_controller_ic_new ()

BtPlaybackControllerIc *
bt_playback_controller_ic_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtPlaybackControllerIc

struct BtPlaybackControllerIc;

Opaque playback controller handle.

buzztrax-0.10.2/docs/reference/bt-edit/html/index.html0000644042355400116100000003074312640736116023156 0ustar00ensoniceng00000000000000 Buzztrax Bt-Edit Reference Manual: Buzztrax Bt-Edit Reference Manual

for Buzztrax 0.10.2. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-edit/.


Introduction
I. Overview
II. User Application API Reference
Main Class Reference
btedit — buzztrax graphical editor application
BtAboutDialog — class for the editor about dialog
BtChangeLog — class for the editor action journaling
BtChangeLogger — interface for the editor action journaling
BtCrashRecoverDialog — class for the song recovery dialog
BtEditApplication — class for a gtk based buzztrax editor application
BtInteractionControllerMenu — class for the interaction controller assignment popup menu
BtMachineActions — shared machine released ui actions
BtMachineCanvasItem — class for the editor machine views machine canvas item
BtMachineListModel — data model class for widgets showing machines of a song
BtMachineMenu — class for the machine selection popup menu
BtMachinePreferencesDialog — machine non-realtime parameters
BtMachinePresetPropertiesDialog — machine preset settings
BtMachinePropertiesDialog — machine realtime parameters
BtMachineRenameDialog — machine settings
BtMainMenu — class for the editor main menu
BtMainPageInfo — the editor main info page
BtMainPageMachines — the editor main machines page
BtMainPagePatterns — the editor main pattern page
BtMainPageSequence — the editor main sequence page
BtMainPageWaves — the editor wavetable page
BtMainPages — class for the editor main pages
BtMainStatusbar — class for the editor main statusbar
BtMainToolbar — class for the editor main toolbar
BtMainWindow — root buzztrax editor window
BtMissingFrameworkElementsDialog — missing core and application elements
BtMissingSongElementsDialog — missing song machine and wave elements
BtObjectListModel — data model class for some widgets
BtPanoramaPopup — panorama popup widget
BtPatternListModel — data model class for widgets showing pattern of a song
BtPatternPropertiesDialog — pattern settings
BtPresetListModel — data model class for widgets showing presets of a machine
BtRenderDialog — class for the editor render dialog
BtSequenceGridModel — data model class for widgets showing the pattern sequence of a song
BtSequenceView — the editor main sequence table view
BtSettingsDialog — class for the editor settings dialog
BtSettingsPageAudiodevices — audio device configuration settings page
BtSettingsPageInteractionController — interaction controller configuration settings page
BtSettingsPagePlaybackController — playback controller configuration settings page
BtSettingsPageDirectories — default directory configuration settings page
BtSettingsPageShortcuts — keyboard shortcut settings page
BtSettingsPageUI — theme and color settings page
BtSignalAnalysisDialog — audio analysis window
BtTipDialog — class for the editor tip-of-the-day dialog
BtUIResources — common shared ui resources like icons and colors
BtVolumePopup — volume popup widget
BtWireCanvasItem — class for the editor wire views wire canvas item
BtWaveListModel — data model class for widgets showing waves of a wavetable
BtWavelevelListModel — data model class for widgets showing wavelevel of a wave
Tool Class Reference
BtPlaybackControllerIc — interaction controller based playback controller
BtPlaybackControllerSocket — sockets based playback controller
GStreamer Element Reference
BtMemoryAudioSrc — play samples from memory
Widget Class Reference
BtPatternEditor — the pattern editor widget
BtWaveformViewer — the waveform viewer widget
GtkScrolledSyncWindow — Adds scrolling to its child widget
GtkVUMeter — vu meter widget
III. User Application Command Line Reference
buzztrax-edit — work with buzztrax songs
IV. Appendix
Object Hierarchy
API Index
Index of deprecated API
Index of new API in 0.6
Annotation Glossary
buzztrax-0.10.2/docs/reference/bt-edit/html/BtSettingsPageDirectories.html0000644042355400116100000001560512640736116027127 0ustar00ensoniceng00000000000000 BtSettingsPageDirectories: Buzztrax Bt-Edit Reference Manual

BtSettingsPageDirectories

BtSettingsPageDirectories — default directory configuration settings page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkGrid
                    ╰── BtSettingsPageDirectories

Implemented Interfaces

BtSettingsPageDirectories implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Select default directories for songs, samples, recordings, etc.

Functions

bt_settings_page_directories_new ()

BtSettingsPageDirectories *
bt_settings_page_directories_new (GtkWidget *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtSettingsPageDirectories

struct BtSettingsPageDirectories;

the root window for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainToolbar.html0000644042355400116100000001365012640736116024542 0ustar00ensoniceng00000000000000 BtMainToolbar: Buzztrax Bt-Edit Reference Manual

BtMainToolbar

BtMainToolbar — class for the editor main toolbar

Types and Values

struct BtMainToolbar

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkToolbar
                    ╰── BtMainToolbar

Implemented Interfaces

BtMainToolbar implements AtkImplementorIface, GtkBuildable, GtkToolShell and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Contains typical applications buttons for file i/o and playback, plus volume meters and volume control.

Functions

bt_main_toolbar_new ()

BtMainToolbar *
bt_main_toolbar_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtMainToolbar

struct BtMainToolbar;

the main toolbar for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/buzztrax-edit-BtMachineActions.html0000644042355400116100000001106112640736116030024 0ustar00ensoniceng00000000000000 BtMachineActions: Buzztrax Bt-Edit Reference Manual

BtMachineActions

BtMachineActions — shared machine released ui actions

Functions

Includes

#include "bt-edit.h"

Description

Shared UI actions for machines that can be invoked from several UI classes.

Functions

bt_machine_action_about ()

void
bt_machine_action_about (BtMachine *machine,
                         BtMainWindow *main_window);

Shows the about dialog for the given machine .

Parameters

machine

the machine

 

main_window

the main window to use as parent

 

Types and Values

buzztrax-0.10.2/docs/reference/bt-edit/html/BtWaveListModel.html0000644042355400116100000001772612640736116025062 0ustar00ensoniceng00000000000000 BtWaveListModel: Buzztrax Bt-Edit Reference Manual

BtWaveListModel

BtWaveListModel — data model class for widgets showing waves of a wavetable

Types and Values

Object Hierarchy

    GObject
    ╰── BtWaveListModel

Implemented Interfaces

BtWaveListModel implements GtkTreeModel.

Includes

#include "bt-edit.h"

Description

A generic model representing the waves of a wavetable, suitable for combo-boxes and treeview widgets.

Functions

bt_wave_list_model_get_object ()

BtWave *
bt_wave_list_model_get_object (BtWaveListModel *model,
                               GtkTreeIter *iter);

Lookup a wave.

Parameters

model

the model

 

iter

the iter

 

Returns

the BtWave for the iter. Unref when done.


bt_wave_list_model_new ()

BtWaveListModel *
bt_wave_list_model_new (BtWavetable *wavetable);

Creates a list model of waves for the wavetable . The model is automatically updated when waves are added, removed or changed.

Parameters

wavetable

the wavetable

 

Returns

the wave-list model.

Types and Values

struct BtWaveListModel

struct BtWaveListModel;

Data model for GtkTreeView or GtkComboBox.

buzztrax-0.10.2/docs/reference/bt-edit/html/BtCrashRecoverDialog.html0000644042355400116100000001601712640736116026041 0ustar00ensoniceng00000000000000 BtCrashRecoverDialog: Buzztrax Bt-Edit Reference Manual

BtCrashRecoverDialog

BtCrashRecoverDialog — class for the song recovery dialog

Properties

gpointer entries Write / Construct Only

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtCrashRecoverDialog

Includes

#include "bt-edit.h"

Description

Show a dialog listing found unsaved songs. Allows to delete or restore them.

Functions

bt_crash_recover_dialog_new ()

BtCrashRecoverDialog *
bt_crash_recover_dialog_new (GList *crash_entries);

Create a new instance

Parameters

crash_entries

list of found change-logs

 

Returns

the new instance

Types and Values

Property Details

The “entries” property

  “entries”                  gpointer

Set crash-entry list, the dialog handles.

Flags: Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-edit/html/BtSettingsPageUI.html0000644042355400116100000001474412640736116025173 0ustar00ensoniceng00000000000000 BtSettingsPageUI: Buzztrax Bt-Edit Reference Manual

BtSettingsPageUI

BtSettingsPageUI — theme and color settings page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkGrid
                    ╰── BtSettingsPageUI

Implemented Interfaces

BtSettingsPageUI implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Edit and manage themes and colors.

Functions

bt_settings_page_ui_new ()

BtSettingsPageUI *
bt_settings_page_ui_new (GtkWidget *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtSettingsPageUI

struct BtSettingsPageUI;

the root window for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/BtPatternEditor.html0000644042355400116100000007632112640736116025123 0ustar00ensoniceng00000000000000 BtPatternEditor: Buzztrax Bt-Edit Reference Manual

BtPatternEditor

BtPatternEditor — the pattern editor widget

Properties

guint cursor-digit Read / Write
guint cursor-group Read / Write
guint cursor-param Read / Write
guint cursor-row Read / Write
guint octave Write
gdouble play-position Write

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── BtPatternEditor

Implemented Interfaces

BtPatternEditor implements AtkImplementorIface, GtkBuildable and GtkScrollable.

Includes

#include "bt-edit.h"

Description

Provides an editor widget for BtPattern instances.

Functions

bt_pattern_editor_new ()

GtkWidget *
bt_pattern_editor_new (void);

Create a new pattern editor widget. Use bt_pattern_editor_set_pattern() to pass pattern data.

Returns

the widget


bt_pattern_editor_set_pattern ()

void
bt_pattern_editor_set_pattern (BtPatternEditor *self,
                               gpointer pattern_data,
                               guint num_rows,
                               guint num_groups,
                               BtPatternEditorColumnGroup *groups,
                               BtPatternEditorCallbacks *cb);

Set pattern data to show in the widget.

Parameters

self

the widget

 

pattern_data

memory block of values (passed to the callbacks)

 

num_rows

number of tick rows (y axis)

 

num_groups

number of groups (x axis)

 

groups

group parameters

 

cb

value transformation callbacks

 

bt_pattern_editor_get_selection ()

gboolean
bt_pattern_editor_get_selection (BtPatternEditor *self,
                                 gint *start,
                                 gint *end,
                                 gint *group,
                                 gint *param);

Get selection rectangle.

Parameters

self

the widget

 

start

location for start tick

 

end

location for end tick

 

group

location for group

 

param

location for parameter in group

 

Returns

TRUE if there was a selection.


bt_pattern_editor_position_to_coords ()

gboolean
bt_pattern_editor_position_to_coords (BtPatternEditor *self,
                                      gint x,
                                      gint y,
                                      gint *row,
                                      gint *group,
                                      gint *parameter,
                                      gint *digit);

Get data coordinates for the mouse position. All out variables must not be NULL.

Parameters

self

the widget

 

x

x position of the mouse

 

y

y position of the mouse

 

row

location for start tick

 

group

location for group

 

parameter

location for parameter in group

 

digit

location for the digit in parameter

 

Returns

TRUE if we selected a position.

Types and Values

struct BtPatternEditor

struct BtPatternEditor;

Opaque editor instance data.


BtPatternEditorCallbacks

typedef struct {
  /* FIXME(ensonic): what about supplying
   * - BtPatternEditorColumn instead of BtPatternEditorColumn->user_data
   * - BtPatternEditorColumnGroup instead of track;
   */
  gfloat (*get_data_func)(gpointer pattern_data, gpointer column_data, guint row, guint group, guint param);
  void (*set_data_func)(gpointer pattern_data, gpointer column_data, guint row, guint group, guint param, guint digit, gfloat value);
} BtPatternEditorCallbacks;

Data format conversion callbacks.

Members

get_data_func ()

called to fetch data from the model and convert for view

 

set_data_func ()

called to convert from view format for storage in the model

 

BtPatternEditorColumn

typedef struct {
  BtPatternEditorColumnType type;
  float def, min, max;
  gpointer user_data;
} BtPatternEditorColumn;

A parameter column.

Members

BtPatternEditorColumnType type;

column value type

 

float def;

default value

 

float min;

minimum allowed value

 

float max;

maximum allowed value

 

gpointer user_data;

extra data to attach

 

enum BtPatternEditorColumnType

Column data types.

Members

PCT_NOTE

musical notes

 

PCT_SWITCH

on/off switches

 

PCT_BYTE

8bit values

 

PCT_WORD

16bit value

 

PCT_FLOAT

single precission floating point values

 

BtPatternEditorColumnGroup

typedef struct {
  // can be used for the headline above the group
  gchar *name;
  guint num_columns;
  BtPatternEditorColumn *columns;
  /* user_data for main-page-patterns */
  BtValueGroup *vg;
  gchar *fmt;
} BtPatternEditorColumnGroup;

A group of BtPatternEditorColumns, such as a voice or all global parameters.

Members

gchar *name;

group name

 

guint num_columns;

number of columns

 

BtPatternEditorColumn *columns;

array of columns

 

BtValueGroup *vg;

extra data for main-page-patterns

 

gchar *fmt;

extra data for main-page-patterns

 

enum BtPatternEditorSelectionMode

Seleting single columns, whole groups (e.g. voices) or the whole pattern.

Members

PESM_COLUMN

a single columns

 

PESM_GROUP

a whole group

 

PESM_ALL

all columns (and groups)

 

Property Details

The “cursor-digit” property

  “cursor-digit”             guint

The current digit of the parameter the cursor is at.

Flags: Read / Write

Allowed values: <= 3

Default value: 0


The “cursor-group” property

  “cursor-group”             guint

The current group the cursor is in.

Flags: Read / Write

Default value: 0


The “cursor-param” property

  “cursor-param”             guint

The current parameter the cursor is at.

Flags: Read / Write

Default value: 0


The “cursor-row” property

  “cursor-row”               guint

The current cursor row.

Flags: Read / Write

Default value: 0


The “octave” property

  “octave”                   guint

The octave for note input.

Flags: Write

Allowed values: <= 12

Default value: 2


The “play-position” property

  “play-position”            gdouble

The current playing position as a fraction.

Flags: Write

Allowed values: [-1,1]

Default value: -1

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMissingFrameworkElementsDialog.html0000644042355400116100000002701312640736116030435 0ustar00ensoniceng00000000000000 BtMissingFrameworkElementsDialog: Buzztrax Bt-Edit Reference Manual

BtMissingFrameworkElementsDialog

BtMissingFrameworkElementsDialog — missing core and application elements

Properties

gpointer core-elements Write / Construct Only
gpointer edit-elements Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtMissingFrameworkElementsDialog

Implemented Interfaces

BtMissingFrameworkElementsDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

A dialog to inform about missing core and application elements.

Functions

bt_missing_framework_elements_dialog_new ()

BtMissingFrameworkElementsDialog *
bt_missing_framework_elements_dialog_new
                               (GList *core_elements,
                                GList *edit_elements);

Create a new instance

Parameters

core_elements

list of missing core elements

 

edit_elements

list of missing edit elements

 

Returns

the new instance or NULL in case there is nothing new to show


bt_missing_framework_elements_dialog_apply ()

void
bt_missing_framework_elements_dialog_apply
                               (const BtMissingFrameworkElementsDialog *self);

Makes the dialog settings effective.

Parameters

self

the dialog which settings to apply

 

Types and Values

struct BtMissingFrameworkElementsDialog

struct BtMissingFrameworkElementsDialog;

the root window for the editor application

Property Details

The “core-elements” property

  “core-elements”            gpointer

Set missing core-elements list, the dialog handles.

Flags: Write / Construct Only


The “edit-elements” property

  “edit-elements”            gpointer

Set missing edit-elements list, the dialog handles.

Flags: Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-edit/html/objecttree.html0000644042355400116100000004725212640736116024200 0ustar00ensoniceng00000000000000 Object Hierarchy: Buzztrax Bt-Edit Reference Manual

Object Hierarchy

    GObject
    ├── GInitiallyUnowned
       ├── GstObject
          ╰── GstElement
              ╰── GstBaseSrc
                  ╰── BtMemoryAudioSrc
       ├── GtkWidget
          ├── GtkContainer
             ├── GtkBin
                ├── GtkWindow
                   ├── GtkDialog
                      ├── GtkAboutDialog
                         ╰── BtAboutDialog
                      ├── BtCrashRecoverDialog
                      ├── BtMachinePresetPropertiesDialog
                      ├── BtMachineRenameDialog
                      ├── BtMissingFrameworkElementsDialog
                      ├── BtMissingSongElementsDialog
                      ├── BtPatternPropertiesDialog
                      ├── BtRenderDialog
                      ├── BtSettingsDialog
                      ╰── BtTipDialog
                   ├── BtMachinePreferencesDialog
                   ├── BtMachinePropertiesDialog
                   ├── BtMainWindow
                   ├── BtSignalAnalysisDialog
                   ├── BtPanoramaPopup
                   ╰── BtVolumePopup
                ╰── GtkScrolledSyncWindow
             ├── GtkMenuShell
                ├── GtkMenu
                   ├── BtInteractionControllerMenu
                   ╰── BtMachineMenu
                ╰── GtkMenuBar
                    ╰── BtMainMenu
             ├── GtkNotebook
                ╰── BtMainPages
             ├── GtkBox
                ├── BtMainPageMachines
                ├── BtMainPagePatterns
                ├── BtMainPageSequence
                ├── BtMainPageInfo
                ├── BtMainPageWaves
                ╰── BtMainStatusbar
             ├── GtkToolbar
                ╰── BtMainToolbar
             ├── GtkTreeView
                ╰── BtSequenceView
             ╰── GtkGrid
                 ├── BtSettingsPageAudiodevices
                 ├── BtSettingsPageDirectories
                 ├── BtSettingsPageInteractionController
                 ├── BtSettingsPagePlaybackController
                 ├── BtSettingsPageShortcuts
                 ╰── BtSettingsPageUI
          ├── BtPatternEditor
          ├── BtWaveformViewer
          ╰── GtkVUMeter
       ╰── ClutterActor
           ├── BtMachineCanvasItem
           ╰── BtWireCanvasItem
    ├── BtChangeLog
    ├── BtApplication
       ╰── BtEditApplication
    ├── BtMachineListModel
    ├── BtObjectListModel
    ├── BtPatternListModel
    ├── BtPlaybackControllerIc
    ├── BtPlaybackControllerSocket
    ├── BtPresetListModel
    ├── BtSequenceGridModel
    ├── BtUIResources
    ├── BtWaveListModel
    ╰── BtWavelevelListModel
    GInterface
    ╰── BtChangeLogger
buzztrax-0.10.2/docs/reference/bt-edit/html/BtSequenceView.html0000644042355400116100000002340212640736116024732 0ustar00ensoniceng00000000000000 BtSequenceView: Buzztrax Bt-Edit Reference Manual

BtSequenceView

BtSequenceView — the editor main sequence table view

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkTreeView
                    ╰── BtSequenceView

Implemented Interfaces

BtSequenceView implements AtkImplementorIface, GtkBuildable and GtkScrollable.

Includes

#include "bt-edit.h"

Description

This widget derives from the GtkTreeView to additionaly draw loop- and play-position bars.

Functions

bt_sequence_view_new ()

BtSequenceView *
bt_sequence_view_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtSequenceView

struct BtSequenceView;

the sequence widget view

Property Details

The “loop-end” property

  “loop-end”                 gdouble

The end position of the loop range as a fraction.

Flags: Write

Allowed values: [0,1]

Default value: 1


The “loop-start” property

  “loop-start”               gdouble

The start position of the loop range as a fraction.

Flags: Write

Allowed values: [0,1]

Default value: 0


The “play-position” property

  “play-position”            gdouble

The current playing position as a fraction.

Flags: Write

Allowed values: [0,1]

Default value: 0


The “visible-rows” property

  “visible-rows”             gulong

The number of currntly visible sequence rows.

Flags: Write

buzztrax-0.10.2/docs/reference/bt-edit/html/ch04.html0000644042355400116100000000450712640736116022604 0ustar00ensoniceng00000000000000 Widget Class Reference: Buzztrax Bt-Edit Reference Manual

Widget Class Reference

BtPatternEditor — the pattern editor widget
BtWaveformViewer — the waveform viewer widget
GtkScrolledSyncWindow — Adds scrolling to its child widget
GtkVUMeter — vu meter widget
buzztrax-0.10.2/docs/reference/bt-edit/html/BtPatternListModel.html0000644042355400116100000002163712640736116025571 0ustar00ensoniceng00000000000000 BtPatternListModel: Buzztrax Bt-Edit Reference Manual

BtPatternListModel

BtPatternListModel — data model class for widgets showing pattern of a song

Types and Values

Object Hierarchy

    GObject
    ╰── BtPatternListModel

Implemented Interfaces

BtPatternListModel implements GtkTreeModel.

Includes

#include "bt-edit.h"

Description

A generic model representing the patterns of a machine, suitable for combo-boxes and treeview widgets.

Functions

bt_pattern_list_model_get_object ()

BtPattern *
bt_pattern_list_model_get_object (BtPatternListModel *model,
                                  GtkTreeIter *iter);

Lookup a pattern.

Parameters

model

the model

 

iter

the iter

 

Returns

the BtPattern for the iter.


bt_pattern_list_model_new ()

BtPatternListModel *
bt_pattern_list_model_new (BtMachine *machine,
                           BtSequence *sequence,
                           gboolean skip_internal);

Creates a list model of patterns for the machne . The model is automatically updated when patterns are added, removed or changed. The sequence is used to track the use of patterns.

Parameters

machine

the machine

 

sequence

the sequence

 

skip_internal

wheter to include internal patterns or not

 

Returns

the pattern model.

Types and Values

struct BtPatternListModel

struct BtPatternListModel;

Data model for GtkTreeView or GtkComboBox.

buzztrax-0.10.2/docs/reference/bt-edit/html/uibteditopts.html0000644042355400116100000000357512640736116024571 0ustar00ensoniceng00000000000000 User Application Command Line Reference: Buzztrax Bt-Edit Reference Manual

User Application Command Line Reference


Table of Contents

buzztrax-edit — work with buzztrax songs
buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainMenu.html0000644042355400116100000001346612640736116024051 0ustar00ensoniceng00000000000000 BtMainMenu: Buzztrax Bt-Edit Reference Manual

BtMainMenu

BtMainMenu — class for the editor main menu

Functions

Types and Values

struct BtMainMenu

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkMenuShell
                    ╰── GtkMenuBar
                        ╰── BtMainMenu

Implemented Interfaces

BtMainMenu implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Provides the main application menu.

Functions

bt_main_menu_new ()

BtMainMenu *
bt_main_menu_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtMainMenu

struct BtMainMenu;

the main menu inside the BtMainWindow

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMachineMenu.html0000644042355400116100000001761712640736116024533 0ustar00ensoniceng00000000000000 BtMachineMenu: Buzztrax Bt-Edit Reference Manual

BtMachineMenu

BtMachineMenu — class for the machine selection popup menu

Properties

BtMainPageMachines * machines-page Write / Construct Only

Types and Values

struct BtMachineMenu

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkMenuShell
                    ╰── GtkMenu
                        ╰── BtMachineMenu

Implemented Interfaces

BtMachineMenu implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Builds a hierachical menu with usable machines from the GStreamer registry.

Functions

bt_machine_menu_new ()

BtMachineMenu *
bt_machine_menu_new (const BtMainPageMachines *main_page_machines);

Create a new instance

Parameters

main_page_machines

the machine page for the menu

 

Returns

the new instance

Types and Values

struct BtMachineMenu

struct BtMachineMenu;

the machine selection sub-menu for the canvas page context menu

Property Details

The “machines-page” property

  “machines-page”            BtMainPageMachines *

Set application object, the window belongs to.

Flags: Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainStatusbar.html0000644042355400116100000001712212640736116025106 0ustar00ensoniceng00000000000000 BtMainStatusbar: Buzztrax Bt-Edit Reference Manual

BtMainStatusbar

BtMainStatusbar — class for the editor main statusbar

Properties

gchar * status Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBox
                    ╰── BtMainStatusbar

Implemented Interfaces

BtMainStatusbar implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

The statusbar shows some contextual help, as well as things like playback status.

Functions

bt_main_statusbar_new ()

BtMainStatusbar *
bt_main_statusbar_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtMainStatusbar

struct BtMainStatusbar;

the root window for the editor application


BT_MAIN_STATUSBAR_DEFAULT

#define BT_MAIN_STATUSBAR_DEFAULT _("Ready to rock!")

Default text to display when idle.

Property Details

The “status” property

  “status”                   gchar *

main status text.

Flags: Write

Default value: "Ready to rock!"

buzztrax-0.10.2/docs/reference/bt-edit/html/api-index-deprecated.html0000644042355400116100000000412012640736116026011 0ustar00ensoniceng00000000000000 Index of deprecated API: Buzztrax Bt-Edit Reference Manual

Index of deprecated API

G

gtk_scrolled_sync_window_add_with_viewport, function in GtkScrolledSyncWindow
buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainPages.html0000644042355400116100000002466712640736116024211 0ustar00ensoniceng00000000000000 BtMainPages: Buzztrax Bt-Edit Reference Manual

BtMainPages

BtMainPages — class for the editor main pages

Functions

Types and Values

struct BtMainPages

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkNotebook
                    ╰── BtMainPages

Implemented Interfaces

BtMainPages implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

The user interface of the buzztrax editor is divided into several pages. This class implements the notebook widgets to manage the sub-pages: BtMainPageMachines, BtMainPagePatterns, BtMainPageSequence, BtMainPageWaves and BtMainPageInfo.

Functions

bt_main_pages_new ()

BtMainPages *
bt_main_pages_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtMainPages

struct BtMainPages;

the root window for the editor application

Property Details

The “info-page” property

  “info-page”                BtMainPageInfo *

the info view page.

Flags: Read


The “machines-page” property

  “machines-page”            BtMainPageMachines *

the machines view page.

Flags: Read


The “patterns-page” property

  “patterns-page”            BtMainPagePatterns *

the patterns view page.

Flags: Read


The “sequence-page” property

  “sequence-page”            BtMainPageSequence *

the sequence view page.

Flags: Read


The “waves-page” property

  “waves-page”               BtMainPageWaves *

the waves view page.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-edit/html/buzztrax-edit.devhelp20000644042355400116100000014205412640736116025427 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/docs/reference/bt-edit/html/BtSettingsDialog.html0000644042355400116100000002475412640736116025262 0ustar00ensoniceng00000000000000 BtSettingsDialog: Buzztrax Bt-Edit Reference Manual

BtSettingsDialog

BtSettingsDialog — class for the editor settings dialog

Properties

BtSettingsPage page Read / Write
GtkWidget * page-widget Read

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtSettingsDialog

Implemented Interfaces

BtSettingsDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Provides UI to access the BtSettings.

Functions

bt_settings_dialog_new ()

BtSettingsDialog *
bt_settings_dialog_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtSettingsDialog

struct BtSettingsDialog;

the root window for the editor application


enum BtSettingsPage

Ids for the setting pages.

Members

BT_SETTINGS_PAGE_AUDIO_DEVICES

audio devices

 

BT_SETTINGS_PAGE_DIRECTORIES

directories

 

BT_SETTINGS_PAGE_INTERACTION_CONTROLLER

interaction controller

 

BT_SETTINGS_PAGE_PLAYBACK_CONTROLLER

playback controller

 

BT_SETTINGS_PAGE_SHORTCUTS

shortcuts

 

BT_SETTINGS_PAGE_UI

themes and colors

 

Property Details

The “page” property

  “page”                     BtSettingsPage

Current settings page.

Flags: Read / Write

Default value: BT_SETTINGS_PAGE_AUDIO_DEVICES


The “page-widget” property

  “page-widget”              GtkWidget *

Current settings page widget.

Flags: Read

See Also

BtSettings

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainPageInfo.html0000644042355400116100000001503412640736116024626 0ustar00ensoniceng00000000000000 BtMainPageInfo: Buzztrax Bt-Edit Reference Manual

BtMainPageInfo

BtMainPageInfo — the editor main info page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBox
                    ╰── BtMainPageInfo

Implemented Interfaces

BtMainPageInfo implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Provides an editor for the song meta data.

Functions

bt_main_page_info_new ()

BtMainPageInfo *
bt_main_page_info_new (const BtMainPages *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtMainPageInfo

struct BtMainPageInfo;

the info page for the editor application

See Also

BtSongInfo

buzztrax-0.10.2/docs/reference/bt-edit/html/right-insensitive.png0000644042355400116100000000056512640736116025341 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME ^IDAT8͒J` /S_$AqrW(>m"]\(49.Nd39{eM#MSIιEiHz|3{̲l3,KkV'@EEQlwyiq]Kh4:mĦ,;ts\aR5/7'Wps׭I,K1=0j0Wg> PU𻤝0 ]?qCҫιg~kA_IENDB`buzztrax-0.10.2/docs/reference/bt-edit/html/api-index-0-6.html0000644042355400116100000001014312640736116024215 0ustar00ensoniceng00000000000000 Index of new API in 0.6: Buzztrax Bt-Edit Reference Manual buzztrax-0.10.2/docs/reference/bt-edit/html/BtChangeLog.html0000644042355400116100000005222712640736116024165 0ustar00ensoniceng00000000000000 BtChangeLog: Buzztrax Bt-Edit Reference Manual

BtChangeLog

BtChangeLog — class for the editor action journaling

Types and Values

struct BtChangeLog

Object Hierarchy

    GObject
    ╰── BtChangeLog

Includes

#include "bt-edit.h"

Description

Tracks edits actions since last save. Provides undo/redo. Supports grouping of edits into single undo/redo items (see bt_change_log_start_group()).

Edit actions are logged to disk under the users-cache directory for crash recovery. Groups are logged atomically, when they are closed (to have a recoverable log).

Logs are reset when saving a song. The log is removed when a song is closed.

BtEditApplication checks for left-over logs at startup and uses BtCrashRecoverDialog to offer a list of recoverable songs to the user.

When running the application with BT_DEBUG_CHANGE_LOG=1 and if debugging is enabled, one will get extra comments in the edit journal.

Functions

bt_change_log_new ()

BtChangeLog *
bt_change_log_new (void);

Create a new instance on first call and return a reference later on.

Returns

the new signleton instance


bt_change_log_is_active ()

gboolean
bt_change_log_is_active (BtChangeLog *self);

Checks if the changelog journalling is active. Should be checked before adding entries to avoid logging when e.g. loading a song.

Parameters

self

the changelog

 

Returns

TRUE if the log is active


bt_change_log_add ()

void
bt_change_log_add (BtChangeLog *self,
                   BtChangeLogger *owner,
                   gchar *undo_data,
                   gchar *redo_data);

Add a new change to the change log. Changes are passed as serialized strings. The change-log takes ownership of undo_data and redo_data .

Parameters

self

the change log

 

owner

the owner of the change

 

undo_data

how to undo the change

 

redo_data

how to redo the change

 

bt_change_log_redo ()

void
bt_change_log_redo (BtChangeLog *self);

Redo the last action.

Parameters

self

the change log

 

bt_change_log_undo ()

void
bt_change_log_undo (BtChangeLog *self);

Undo the last action.

Parameters

self

the change log

 

bt_change_log_start_group ()

void
bt_change_log_start_group (BtChangeLog *self);

Open a new group. All further bt_change_log_add() calls will add to the active group. The group needs to be closed using bt_change_log_end_group(). Groups can be nested.

A top-level group is undone or redone with a single bt_change_log_undo() or bt_change_log_redo() call.

One would start and finish such a group in the first signal handler that triggered the change.

Parameters

self

the change log

 

bt_change_log_end_group ()

void
bt_change_log_end_group (BtChangeLog *self);

Closed the last group opened with bt_change_log_start_group(). Usually a group would be closed in the same local scope where it was opened.

Parameters

self

the change log

 

bt_change_log_recover ()

gboolean
bt_change_log_recover (BtChangeLog *self,
                       const gchar *log_name);

Recover the given song.

Return: TRUE for successful recovery.

Parameters

self

the changelog

 

log_name

the log file to replay

 

bt_change_log_register ()

void
bt_change_log_register (BtChangeLog *self,
                        BtChangeLogger *logger);

Register a change-logger for use in change log replay.

Parameters

self

the change log

 

logger

a change logger

 

Types and Values

struct BtChangeLog

struct BtChangeLog;

Editor action journal.

Property Details

The “can-redo” property

  “can-redo”                 gboolean

Where there are action to redo.

Flags: Read

Default value: FALSE


The “can-undo” property

  “can-undo”                 gboolean

Where there are action to undo.

Flags: Read

Default value: FALSE


The “crash-logs” property

  “crash-logs”               gpointer

A list of found crash logs.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-edit/html/annotation-glossary.html0000644042355400116100000000420412640736116026053 0ustar00ensoniceng00000000000000 Annotation Glossary: Buzztrax Bt-Edit Reference Manual

Annotation Glossary

A

allow-none

NULL is OK, both for passing and for returning.

T

transfer none

Don't free data after the code is done.

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMachineCanvasItem.html0000644042355400116100000005300112640736116025644 0ustar00ensoniceng00000000000000 BtMachineCanvasItem: Buzztrax Bt-Edit Reference Manual

BtMachineCanvasItem

BtMachineCanvasItem — class for the editor machine views machine canvas item

Properties

Signals

void position-changed No Hooks
void start-connect No Hooks

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── ClutterActor
            ╰── BtMachineCanvasItem

Implemented Interfaces

BtMachineCanvasItem implements ClutterContainer, ClutterScriptable, ClutterAnimatable and AtkImplementorIface.

Includes

#include "bt-edit.h"

Description

Provides UI to manipulate the machine state.

The canvas object emits “position-changed” signal after it has been moved.

Functions

bt_machine_canvas_item_new ()

BtMachineCanvasItem *
bt_machine_canvas_item_new (const BtMainPageMachines *main_page_machines,
                            BtMachine *machine,
                            gdouble xpos,
                            gdouble ypos,
                            gdouble zoom);

Create a new instance

Parameters

main_page_machines

the machine page the new item belongs to

 

machine

the machine for which a canvas item should be created

 

xpos

the horizontal location

 

ypos

the vertical location

 

zoom

the zoom ratio

 

Returns

the new instance or NULL in case of an error


bt_machine_show_properties_dialog ()

void
bt_machine_show_properties_dialog (BtMachine *machine);

Shows the machine properties dialog.

Parameters

machine

machine to show the dialog for

 

Since: 0.6


bt_machine_show_preferences_dialog ()

void
bt_machine_show_preferences_dialog (BtMachine *machine);

Shows the machine preferences dialog.

Parameters

machine

machine to show the dialog for

 

Since: 0.6


bt_machine_show_analyzer_dialog ()

void
bt_machine_show_analyzer_dialog (BtMachine *machine);

Shows the machine signal analysis dialog.

Parameters

machine

machine to show the dialog for

 

Since: 0.6

Types and Values

struct BtMachineCanvasItem

struct BtMachineCanvasItem;

the root window for the editor application

Property Details

The “analysis-dialog” property

  “analysis-dialog”          BtSignalAnalysisDialog *

Get the the analysis dialog if shown.

Flags: Read


The “machine” property

  “machine”                  BtMachine *

Set machine object, the item belongs to.

Flags: Read / Write / Construct Only


The “machines-page” property

  “machines-page”            BtMainPageMachines *

Set application object, the window belongs to.

Flags: Read / Write / Construct Only


The “preferences-dialog” property

  “preferences-dialog”       BtMachinePreferencesDialog *

Get the the preferences dialog if shown.

Flags: Read


The “properties-dialog” property

  “properties-dialog”        BtMachinePropertiesDialog *

Get the the properties dialog if shown.

Flags: Read


The “zoom” property

  “zoom”                     gdouble

Set zoom ratio for the machine item.

Flags: Read / Write

Allowed values: [0,100]

Default value: 1

Signal Details

The “position-changed” signal

void
user_function (BtMachineCanvasItem *self,
               ClutterEventType     arg1,
               gpointer             user_data)

Signals that item has been moved around. The new position can be read from the canvas item.

Parameters

self

the machine-canvas-item object that emitted the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “start-connect” signal

void
user_function (BtMachineCanvasItem *self,
               gpointer             user_data)

Signals that a connect should be made starting from this machine.

Parameters

self

the machine-canvas-item object that emitted the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

buzztrax-0.10.2/docs/reference/bt-edit/html/BtSequenceGridModel.html0000644042355400116100000003035412640736116025672 0ustar00ensoniceng00000000000000 BtSequenceGridModel: Buzztrax Bt-Edit Reference Manual

BtSequenceGridModel

BtSequenceGridModel — data model class for widgets showing the pattern sequence of a song

Properties

gulong bars Read / Write
gulong length Read / Write
BtSequenceGridModelPosFormat pos-format Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── BtSequenceGridModel

Implemented Interfaces

BtSequenceGridModel implements GtkTreeModel.

Includes

#include "bt-edit.h"

Description

A generic model representing the track x time grid of patterns of a song. Can be shown by a treeview.

The visible length can be greater then the real length of the underlying sequence, by setting the BtSequenceGridModel::length property.

Functions

bt_sequence_grid_model_new ()

BtSequenceGridModel *
bt_sequence_grid_model_new (BtSequence *sequence,
                            BtSongInfo *song_info,
                            gulong bars);

Creates a grid model for the sequence . The model is automatically updated on changes in the content. It also expands its length in sync to the sequence.

To make the row-shading work, the application has to update “bars” when it changed on the view.

When setting “length” to a value greater than the real sequence , the model will append dummy rows. This allows the cursor to go beyond the end to expand the sequence.

Parameters

sequence

the sequence

 

song_info

the song-info

 

bars

the intial bar-filtering for the view

 

Returns

the sequence model.

Types and Values

struct BtSequenceGridModel

struct BtSequenceGridModel;

Data model for GtkTreeView or GtkComboBox.


enum BtSequenceGridModelPosFormat

Format type for time values in the sequencer.

Members

BT_SEQUENCE_GRID_MODEL_POS_FORMAT_TICKS

show as number of ticks

 

BT_SEQUENCE_GRID_MODEL_POS_FORMAT_TIME

show as "min:sec.msec"

 

BT_SEQUENCE_GRID_MODEL_POS_FORMAT_BEATS

show as "beats.ticks"

 

Property Details

The “bars” property

  “bars”                     gulong

tick stepping for the color shading.

Flags: Read / Write

Allowed values: [1,4294967295]


The “length” property

  “length”                   gulong

visible length of the sequence (>= real length).

Flags: Read / Write

Allowed values: <= 4294967295


The “pos-format” property

  “pos-format”               BtSequenceGridModelPosFormat

the display format for position columns.

Flags: Read / Write

Default value: BT_SEQUENCE_GRID_MODEL_POS_FORMAT_TICKS

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMachineListModel.html0000644042355400116100000001775112640736116025522 0ustar00ensoniceng00000000000000 BtMachineListModel: Buzztrax Bt-Edit Reference Manual

BtMachineListModel

BtMachineListModel — data model class for widgets showing machines of a song

Types and Values

Object Hierarchy

    GObject
    ╰── BtMachineListModel

Implemented Interfaces

BtMachineListModel implements GtkTreeModel.

Includes

#include "bt-edit.h"

Description

A generic model representing the machines of a song, suitable for combo-boxes and treeview widgets.

Functions

bt_machine_list_model_get_object ()

BtMachine *
bt_machine_list_model_get_object (BtMachineListModel *model,
                                  GtkTreeIter *iter);

The the BtMachine for the iter.

Parameters

model

the model

 

iter

the iter

 

bt_machine_list_model_new ()

BtMachineListModel *
bt_machine_list_model_new (BtSetup *setup);

Creates a list model of machines for the setup . The model is automatically updated when machines are added, removed or changed.

Parameters

setup

the setup

 

Returns

the machine model.

Types and Values

struct BtMachineListModel

struct BtMachineListModel;

Data model for GtkTreeView or GtkComboBox.

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMainPageWaves.html0000644042355400116100000001474612640736116025031 0ustar00ensoniceng00000000000000 BtMainPageWaves: Buzztrax Bt-Edit Reference Manual

BtMainPageWaves

BtMainPageWaves — the editor wavetable page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBox
                    ╰── BtMainPageWaves

Implemented Interfaces

BtMainPageWaves implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Manage a list of audio clips files. Provides an embedded file browser to load files. A waveform viewer can show the selected clip.

Functions

bt_main_page_waves_new ()

BtMainPageWaves *
bt_main_page_waves_new (const BtMainPages *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtMainPageWaves

struct BtMainPageWaves;

the pattern page for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/BtUIResources.html0000644042355400116100000004334512640736116024547 0ustar00ensoniceng00000000000000 BtUIResources: Buzztrax Bt-Edit Reference Manual

BtUIResources

BtUIResources — common shared ui resources like icons and colors

Types and Values

Object Hierarchy

    GObject
    ╰── BtUIResources

Includes

#include "bt-edit.h"

Description

This class serves as a central storage for colors and icons. It is implemented as a singleton.

Functions

bt_ui_resources_new ()

BtUIResources *
bt_ui_resources_new (void);

Create a new instance on first call and return a reference later on.

Returns

the new signleton instance


bt_ui_resources_get_icon_pixbuf_by_machine ()

GdkPixbuf *
bt_ui_resources_get_icon_pixbuf_by_machine
                               (const BtMachine *machine);

Gets a GdkPixbuf image that matches the given machine type for use in menus.

Parameters

machine

the machine to get the image for

 

Returns

a GdkPixbuf image


bt_ui_resources_get_machine_graphics_pixbuf_by_machine ()

GdkPixbuf *
bt_ui_resources_get_machine_graphics_pixbuf_by_machine
                               (const BtMachine *machine,
                                gdouble zoom);

Gets a GdkPixbuf image that matches the given machine type for use on the canvas.

Parameters

machine

the machine to get the image for

 

zoom

scaling factor for the icons

 

Returns

a GdkPixbuf image


bt_ui_resources_get_wire_graphics_pixbuf_by_wire ()

GdkPixbuf *
bt_ui_resources_get_wire_graphics_pixbuf_by_wire
                               (const BtWire *wire,
                                gdouble zoom);

Gets a GdkPixbuf image for use on the canvas.

Parameters

wire

the wire to get the image for

 

zoom

scaling factor for the icons

 

Returns

a GdkPixbuf image


bt_ui_resources_get_icon_image_by_machine ()

GtkWidget *
bt_ui_resources_get_icon_image_by_machine
                               (const BtMachine *machine);

Gets a GtkImage that matches the given machine type.

Parameters

machine

the machine to get the image for

 

Returns

a GtkImage widget


bt_ui_resources_get_icon_image_by_machine_type ()

GtkWidget *
bt_ui_resources_get_icon_image_by_machine_type
                               (GType machine_type);

Gets a GtkImage that matches the given machine type.

Parameters

machine_type

the machine_type to get the image for

 

Returns

a GtkImage widget


bt_ui_resources_get_accel_group ()

GtkAccelGroup *
bt_ui_resources_get_accel_group (void);

All windows share one accelerator map.

Returns

the shared keyboard accelerator map

Types and Values

struct BtUIResources

struct BtUIResources;

a collection of shared ui resources


enum BtUIResourcesMachineColors

Symbolic color names for machines.

Members

BT_UI_RES_COLOR_MACHINE_BASE

base color

 

BT_UI_RES_COLOR_MACHINE_BRIGHT1

lighter variant

 

BT_UI_RES_COLOR_MACHINE_BRIGHT2

even lighter variant

 

BT_UI_RES_COLOR_MACHINE_DARK1

darker variant

 

BT_UI_RES_COLOR_MACHINE_DARK2

even darker variant

 
buzztrax-0.10.2/docs/reference/bt-edit/html/BtRenderDialog.html0000644042355400116100000001632612640736116024675 0ustar00ensoniceng00000000000000 BtRenderDialog: Buzztrax Bt-Edit Reference Manual

BtRenderDialog

BtRenderDialog — class for the editor render dialog

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtRenderDialog

Implemented Interfaces

BtRenderDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Provides UI to access the song recording

Functions

bt_render_dialog_new ()

BtRenderDialog *
bt_render_dialog_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtRenderDialog

struct BtRenderDialog;

the song rendering dialog for the editor application


enum BtRenderMode

Different modes of operation for the BtSong rendering.

Members

BT_RENDER_MODE_MIXDOWN

mix to one track

 

BT_RENDER_MODE_SINGLE_TRACKS

record one track for each source

 
buzztrax-0.10.2/docs/reference/bt-edit/html/up-insensitive.png0000644042355400116100000000056612640736116024651 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEwIIDAT8?/Qϙ?[u$VHTDۈBM+! BtChangeLogger: Buzztrax Bt-Edit Reference Manual

BtChangeLogger

BtChangeLogger — interface for the editor action journaling

Object Hierarchy

    GInterface
    ╰── BtChangeLogger

Includes

#include "bt-edit.h"

Description

Defines undo/redo interface.

Functions

BT_CHANGE_LOGGER_METHOD()

#define             BT_CHANGE_LOGGER_METHOD(name,name_len,regexp)

Structure entry for a change log line parser array (array of BtChangeLoggerMethods).

Parameters

name

name of method

 

name_len

length of the string

 

regexp

regular expression for parsing the parameter part

 

bt_change_logger_change ()

gboolean
bt_change_logger_change (const BtChangeLogger *self,
                         const gchar *data);

Run the editor action pointed to by data .

Parameters

self

an object that implements logging changes

 

data

serialised data of the action to apply

 

Returns

TRUE for success.


bt_change_logger_match_method ()

gint
bt_change_logger_match_method (BtChangeLoggerMethods *change_logger_methods,
                               const gchar *data,
                               GMatchInfo **match_info);

Matches commands registered in the change_logger_methods against data . If a match is found the parameters are returned in match_info .

Parameters

change_logger_methods

array of change log methods

 

data

the string to match agains

 

match_info

resulting parameter on a positive match

 

Returns

the command id from change_logger_methods or -1 for no match. Free the match_info on positive matches.

Types and Values

buzztrax-0.10.2/docs/reference/bt-edit/html/pr01.html0000644042355400116100000000423112640736116022622 0ustar00ensoniceng00000000000000 Introduction: Buzztrax Bt-Edit Reference Manual

Introduction

Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch.

The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures.

buzztrax-0.10.2/docs/reference/bt-edit/html/uibtedit.html0000644042355400116100000003026312640736116023655 0ustar00ensoniceng00000000000000 User Application API Reference: Buzztrax Bt-Edit Reference Manual

User Application API Reference


Abstract

The classes described in this chapter are all part of end user application code. Please make sure you have read section conventions before reading further.

Table of Contents

Main Class Reference
btedit — buzztrax graphical editor application
BtAboutDialog — class for the editor about dialog
BtChangeLog — class for the editor action journaling
BtChangeLogger — interface for the editor action journaling
BtCrashRecoverDialog — class for the song recovery dialog
BtEditApplication — class for a gtk based buzztrax editor application
BtInteractionControllerMenu — class for the interaction controller assignment popup menu
BtMachineActions — shared machine released ui actions
BtMachineCanvasItem — class for the editor machine views machine canvas item
BtMachineListModel — data model class for widgets showing machines of a song
BtMachineMenu — class for the machine selection popup menu
BtMachinePreferencesDialog — machine non-realtime parameters
BtMachinePresetPropertiesDialog — machine preset settings
BtMachinePropertiesDialog — machine realtime parameters
BtMachineRenameDialog — machine settings
BtMainMenu — class for the editor main menu
BtMainPageInfo — the editor main info page
BtMainPageMachines — the editor main machines page
BtMainPagePatterns — the editor main pattern page
BtMainPageSequence — the editor main sequence page
BtMainPageWaves — the editor wavetable page
BtMainPages — class for the editor main pages
BtMainStatusbar — class for the editor main statusbar
BtMainToolbar — class for the editor main toolbar
BtMainWindow — root buzztrax editor window
BtMissingFrameworkElementsDialog — missing core and application elements
BtMissingSongElementsDialog — missing song machine and wave elements
BtObjectListModel — data model class for some widgets
BtPanoramaPopup — panorama popup widget
BtPatternListModel — data model class for widgets showing pattern of a song
BtPatternPropertiesDialog — pattern settings
BtPresetListModel — data model class for widgets showing presets of a machine
BtRenderDialog — class for the editor render dialog
BtSequenceGridModel — data model class for widgets showing the pattern sequence of a song
BtSequenceView — the editor main sequence table view
BtSettingsDialog — class for the editor settings dialog
BtSettingsPageAudiodevices — audio device configuration settings page
BtSettingsPageInteractionController — interaction controller configuration settings page
BtSettingsPagePlaybackController — playback controller configuration settings page
BtSettingsPageDirectories — default directory configuration settings page
BtSettingsPageShortcuts — keyboard shortcut settings page
BtSettingsPageUI — theme and color settings page
BtSignalAnalysisDialog — audio analysis window
BtTipDialog — class for the editor tip-of-the-day dialog
BtUIResources — common shared ui resources like icons and colors
BtVolumePopup — volume popup widget
BtWireCanvasItem — class for the editor wire views wire canvas item
BtWaveListModel — data model class for widgets showing waves of a wavetable
BtWavelevelListModel — data model class for widgets showing wavelevel of a wave
Tool Class Reference
BtPlaybackControllerIc — interaction controller based playback controller
BtPlaybackControllerSocket — sockets based playback controller
GStreamer Element Reference
BtMemoryAudioSrc — play samples from memory
Widget Class Reference
BtPatternEditor — the pattern editor widget
BtWaveformViewer — the waveform viewer widget
GtkScrolledSyncWindow — Adds scrolling to its child widget
GtkVUMeter — vu meter widget
buzztrax-0.10.2/docs/reference/bt-edit/html/up.png0000644042355400116100000000040412640736116022302 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME IDAT81 @D{xa;$]r =JR1, Sd-}0̟oL:m-QO[ k TzMޠL,:ךu!tK; Pp Ot@l/̵*l}IENDB`buzztrax-0.10.2/docs/reference/bt-edit/html/ch01.html0000644042355400116100000002436412640736116022604 0ustar00ensoniceng00000000000000 Main Class Reference: Buzztrax Bt-Edit Reference Manual

Main Class Reference

btedit — buzztrax graphical editor application
BtAboutDialog — class for the editor about dialog
BtChangeLog — class for the editor action journaling
BtChangeLogger — interface for the editor action journaling
BtCrashRecoverDialog — class for the song recovery dialog
BtEditApplication — class for a gtk based buzztrax editor application
BtInteractionControllerMenu — class for the interaction controller assignment popup menu
BtMachineActions — shared machine released ui actions
BtMachineCanvasItem — class for the editor machine views machine canvas item
BtMachineListModel — data model class for widgets showing machines of a song
BtMachineMenu — class for the machine selection popup menu
BtMachinePreferencesDialog — machine non-realtime parameters
BtMachinePresetPropertiesDialog — machine preset settings
BtMachinePropertiesDialog — machine realtime parameters
BtMachineRenameDialog — machine settings
BtMainMenu — class for the editor main menu
BtMainPageInfo — the editor main info page
BtMainPageMachines — the editor main machines page
BtMainPagePatterns — the editor main pattern page
BtMainPageSequence — the editor main sequence page
BtMainPageWaves — the editor wavetable page
BtMainPages — class for the editor main pages
BtMainStatusbar — class for the editor main statusbar
BtMainToolbar — class for the editor main toolbar
BtMainWindow — root buzztrax editor window
BtMissingFrameworkElementsDialog — missing core and application elements
BtMissingSongElementsDialog — missing song machine and wave elements
BtObjectListModel — data model class for some widgets
BtPanoramaPopup — panorama popup widget
BtPatternListModel — data model class for widgets showing pattern of a song
BtPatternPropertiesDialog — pattern settings
BtPresetListModel — data model class for widgets showing presets of a machine
BtRenderDialog — class for the editor render dialog
BtSequenceGridModel — data model class for widgets showing the pattern sequence of a song
BtSequenceView — the editor main sequence table view
BtSettingsDialog — class for the editor settings dialog
BtSettingsPageAudiodevices — audio device configuration settings page
BtSettingsPageInteractionController — interaction controller configuration settings page
BtSettingsPagePlaybackController — playback controller configuration settings page
BtSettingsPageDirectories — default directory configuration settings page
BtSettingsPageShortcuts — keyboard shortcut settings page
BtSettingsPageUI — theme and color settings page
BtSignalAnalysisDialog — audio analysis window
BtTipDialog — class for the editor tip-of-the-day dialog
BtUIResources — common shared ui resources like icons and colors
BtVolumePopup — volume popup widget
BtWireCanvasItem — class for the editor wire views wire canvas item
BtWaveListModel — data model class for widgets showing waves of a wavetable
BtWavelevelListModel — data model class for widgets showing wavelevel of a wave
buzztrax-0.10.2/docs/reference/bt-edit/html/BtMemoryAudioSrc.html0000644042355400116100000001610112640736116025227 0ustar00ensoniceng00000000000000 BtMemoryAudioSrc: Buzztrax Bt-Edit Reference Manual

BtMemoryAudioSrc

BtMemoryAudioSrc — play samples from memory

Properties

GstCaps * caps Read / Write
gpointer data Read / Write
gulong length Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── BtMemoryAudioSrc

Includes

#include "bt-edit.h"

Description

GStreamer audio source to play samples from memory. Supports interleaved multi-channels audio. Supports trickmode playback (resampling and ping-pong loops).

Functions

Types and Values

struct BtMemoryAudioSrc

struct BtMemoryAudioSrc;

audiotestsrc object structure.

Property Details

The “caps” property

  “caps”                     GstCaps *

Data format of sample.

Flags: Read / Write


The “data” property

  “data”                     gpointer

The sample data (interleaved for multi-channel).

Flags: Read / Write


The “length” property

  “length”                   gulong

Length of the sample in number of samples.

Flags: Read / Write

Allowed values: <= G_MAXINT64

buzztrax-0.10.2/docs/reference/bt-edit/html/api-index.html0000644042355400116100000026036312640736116023730 0ustar00ensoniceng00000000000000 API Index: Buzztrax Bt-Edit Reference Manual

API Index

A

BtAboutDialog, struct in BtAboutDialog
bt_about_dialog_new, function in BtAboutDialog

C

BtChangeLog, struct in BtChangeLog
BtChangeLog:can-redo, object property in BtChangeLog
BtChangeLog:can-undo, object property in BtChangeLog
BtChangeLog:crash-logs, object property in BtChangeLog
bt_change_logger_change, function in BtChangeLogger
bt_change_logger_match_method, function in BtChangeLogger
BT_CHANGE_LOGGER_METHOD, macro in BtChangeLogger
bt_change_log_add, function in BtChangeLog
bt_change_log_end_group, function in BtChangeLog
bt_change_log_is_active, function in BtChangeLog
bt_change_log_new, function in BtChangeLog
bt_change_log_recover, function in BtChangeLog
bt_change_log_redo, function in BtChangeLog
bt_change_log_register, function in BtChangeLog
bt_change_log_start_group, function in BtChangeLog
bt_change_log_undo, function in BtChangeLog
BtCrashRecoverDialog:entries, object property in BtCrashRecoverDialog
bt_crash_recover_dialog_new, function in BtCrashRecoverDialog

D

bt_dialog_message, function in BtMainWindow
bt_dialog_question, function in BtMainWindow

E

BtEditApplication, struct in BtEditApplication
BtEditApplication:ic-registry, object property in BtEditApplication
BtEditApplication:main-window, object property in BtEditApplication
BtEditApplication:song, object property in BtEditApplication
BtEditApplication:unsaved, object property in BtEditApplication
bt_edit_application_attach_child_window, function in BtEditApplication
bt_edit_application_crash_log_recover, function in BtEditApplication
bt_edit_application_is_song_unsaved, function in BtEditApplication
bt_edit_application_load_and_run, function in BtEditApplication
bt_edit_application_load_song, function in BtEditApplication
bt_edit_application_new, function in BtEditApplication
bt_edit_application_new_song, function in BtEditApplication
bt_edit_application_quit, function in BtEditApplication
bt_edit_application_run, function in BtEditApplication
bt_edit_application_save_song, function in BtEditApplication
bt_edit_application_set_song_unsaved, function in BtEditApplication
bt_edit_application_show_about, function in BtEditApplication
bt_edit_application_show_tip, function in BtEditApplication
bt_edit_application_ui_lock, function in BtEditApplication
bt_edit_application_ui_unlock, function in BtEditApplication

G

gdk_pixbuf_new_from_theme, function in btedit
GtkScrolledSyncWindow, struct in GtkScrolledSyncWindow
GtkScrolledSyncWindow::move-focus-out, object signal in GtkScrolledSyncWindow
GtkScrolledSyncWindow::scroll-child, object signal in GtkScrolledSyncWindow
GtkScrolledSyncWindow:hadjustment, object property in GtkScrolledSyncWindow
GtkScrolledSyncWindow:kinetic-scrolling, object property in GtkScrolledSyncWindow
GtkScrolledSyncWindow:vadjustment, object property in GtkScrolledSyncWindow
GtkVUMeter, struct in GtkVUMeter
gtk_scrolled_sync_window_add_with_viewport, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_get_capture_button_press, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_get_hadjustment, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_get_kinetic_scrolling, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_get_vadjustment, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_new, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_set_capture_button_press, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_set_hadjustment, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_set_kinetic_scrolling, function in GtkScrolledSyncWindow
gtk_scrolled_sync_window_set_vadjustment, function in GtkScrolledSyncWindow
gtk_show_uri_simple, function in btedit
gtk_target_table_make, function in btedit
gtk_toggle_tool_button_new_from_icon_name, function in btedit
gtk_toolbar_get_style_from_string, function in btedit
gtk_tool_button_new_from_icon_name, function in btedit
gtk_vumeter_new, function in GtkVUMeter
gtk_vumeter_set_levels, function in GtkVUMeter
gtk_vumeter_set_min_max, function in GtkVUMeter
gtk_vumeter_set_scale, function in GtkVUMeter

I

BtInteractionControllerMenu, struct in BtInteractionControllerMenu
BtInteractionControllerMenu:machine, object property in BtInteractionControllerMenu
BtInteractionControllerMenu:selected-control, object property in BtInteractionControllerMenu
BtInteractionControllerMenu:selected-object, object property in BtInteractionControllerMenu
BtInteractionControllerMenu:selected-parameter-group, object property in BtInteractionControllerMenu
BtInteractionControllerMenu:selected-property-name, object property in BtInteractionControllerMenu
BtInteractionControllerMenu:type, object property in BtInteractionControllerMenu
BtInteractionControllerMenuType, enum in BtInteractionControllerMenu
bt_interaction_controller_menu_new, function in BtInteractionControllerMenu

L

bt_label_value_changed, function in btedit

M

BtMachineCanvasItem, struct in BtMachineCanvasItem
BtMachineCanvasItem::position-changed, object signal in BtMachineCanvasItem
BtMachineCanvasItem::start-connect, object signal in BtMachineCanvasItem
BtMachineCanvasItem:analysis-dialog, object property in BtMachineCanvasItem
BtMachineCanvasItem:machine, object property in BtMachineCanvasItem
BtMachineCanvasItem:machines-page, object property in BtMachineCanvasItem
BtMachineCanvasItem:preferences-dialog, object property in BtMachineCanvasItem
BtMachineCanvasItem:properties-dialog, object property in BtMachineCanvasItem
BtMachineCanvasItem:zoom, object property in BtMachineCanvasItem
BtMachineListModel, struct in BtMachineListModel
BtMachineMenu, struct in BtMachineMenu
BtMachineMenu:machines-page, object property in BtMachineMenu
BtMachinePreferencesDialog, struct in BtMachinePreferencesDialog
BtMachinePreferencesDialog:machine, object property in BtMachinePreferencesDialog
BtMachinePresetPropertiesDialog, struct in BtMachinePresetPropertiesDialog
BtMachinePresetPropertiesDialog:comment, object property in BtMachinePresetPropertiesDialog
BtMachinePresetPropertiesDialog:machine, object property in BtMachinePresetPropertiesDialog
BtMachinePresetPropertiesDialog:name, object property in BtMachinePresetPropertiesDialog
BtMachinePropertiesDialog, struct in BtMachinePropertiesDialog
BtMachinePropertiesDialog:machine, object property in BtMachinePropertiesDialog
BtMachineRenameDialog, struct in BtMachineRenameDialog
BtMachineRenameDialog:machine, object property in BtMachineRenameDialog
BtMachineRenameDialog:name, object property in BtMachineRenameDialog
bt_machine_action_about, function in BtMachineActions
bt_machine_canvas_item_new, function in BtMachineCanvasItem
bt_machine_list_model_get_object, function in BtMachineListModel
bt_machine_list_model_new, function in BtMachineListModel
bt_machine_menu_new, function in BtMachineMenu
bt_machine_preferences_dialog_new, function in BtMachinePreferencesDialog
bt_machine_preset_properties_dialog_apply, function in BtMachinePresetPropertiesDialog
bt_machine_preset_properties_dialog_new, function in BtMachinePresetPropertiesDialog
bt_machine_properties_dialog_new, function in BtMachinePropertiesDialog
bt_machine_rename_dialog_apply, function in BtMachineRenameDialog
bt_machine_rename_dialog_new, function in BtMachineRenameDialog
bt_machine_show_analyzer_dialog, function in BtMachineCanvasItem
bt_machine_show_preferences_dialog, function in BtMachineCanvasItem
bt_machine_show_properties_dialog, function in BtMachineCanvasItem
BtMainMenu, struct in BtMainMenu
BtMainPageInfo, struct in BtMainPageInfo
BtMainPageMachines, struct in BtMainPageMachines
BtMainPageMachines:canvas, object property in BtMainPageMachines
BtMainPagePatterns, struct in BtMainPagePatterns
BtMainPages, struct in BtMainPages
BtMainPages:info-page, object property in BtMainPages
BtMainPages:machines-page, object property in BtMainPages
BtMainPages:patterns-page, object property in BtMainPages
BtMainPages:sequence-page, object property in BtMainPages
BtMainPages:waves-page, object property in BtMainPages
BtMainPageSequence, struct in BtMainPageSequence
BtMainPageSequence:cursor-row, object property in BtMainPageSequence
BtMainPageSequence:follow-playback, object property in BtMainPageSequence
BtMainPageWaves, struct in BtMainPageWaves
BtMainStatusbar, struct in BtMainStatusbar
BtMainStatusbar:status, object property in BtMainStatusbar
BtMainToolbar, struct in BtMainToolbar
BtMainWindow, struct in BtMainWindow
BtMainWindow:dialog, object property in BtMainWindow
BtMainWindow:pages, object property in BtMainWindow
BtMainWindow:statusbar, object property in BtMainWindow
BtMainWindow:toolbar, object property in BtMainWindow
bt_main_menu_new, function in BtMainMenu
bt_main_pages_new, function in BtMainPages
bt_main_page_info_new, function in BtMainPageInfo
bt_main_page_machines_add_processor_machine, function in BtMainPageMachines
bt_main_page_machines_add_source_machine, function in BtMainPageMachines
bt_main_page_machines_canvas_coords_to_relative, function in BtMainPageMachines
bt_main_page_machines_delete_machine, function in BtMainPageMachines
bt_main_page_machines_delete_wire, function in BtMainPageMachines
bt_main_page_machines_new, function in BtMainPageMachines
bt_main_page_machines_relative_coords_to_canvas, function in BtMainPageMachines
bt_main_page_machines_rename_machine, function in BtMainPageMachines
bt_main_page_machines_wire_panorama_popup, function in BtMainPageMachines
bt_main_page_machines_wire_volume_popup, function in BtMainPageMachines
bt_main_page_patterns_copy_selection, function in BtMainPagePatterns
bt_main_page_patterns_cut_selection, function in BtMainPagePatterns
bt_main_page_patterns_delete_selection, function in BtMainPagePatterns
bt_main_page_patterns_new, function in BtMainPagePatterns
bt_main_page_patterns_paste_selection, function in BtMainPagePatterns
bt_main_page_patterns_show_machine, function in BtMainPagePatterns
bt_main_page_patterns_show_pattern, function in BtMainPagePatterns
bt_main_page_sequence_copy_selection, function in BtMainPageSequence
bt_main_page_sequence_cut_selection, function in BtMainPageSequence
bt_main_page_sequence_delete_selection, function in BtMainPageSequence
bt_main_page_sequence_new, function in BtMainPageSequence
bt_main_page_sequence_paste_selection, function in BtMainPageSequence
bt_main_page_waves_new, function in BtMainPageWaves
BT_MAIN_STATUSBAR_DEFAULT, macro in BtMainStatusbar
bt_main_statusbar_new, function in BtMainStatusbar
bt_main_toolbar_new, function in BtMainToolbar
bt_main_window_check_quit, function in BtMainWindow
bt_main_window_check_unsaved_song, function in BtMainWindow
bt_main_window_new, function in BtMainWindow
bt_main_window_new_song, function in BtMainWindow
bt_main_window_open_song, function in BtMainWindow
bt_main_window_save_song, function in BtMainWindow
bt_main_window_save_song_as, function in BtMainWindow
BtMemoryAudioSrc, struct in BtMemoryAudioSrc
BtMemoryAudioSrc:caps, object property in BtMemoryAudioSrc
BtMemoryAudioSrc:data, object property in BtMemoryAudioSrc
BtMemoryAudioSrc:length, object property in BtMemoryAudioSrc
BtMissingFrameworkElementsDialog, struct in BtMissingFrameworkElementsDialog
BtMissingFrameworkElementsDialog:core-elements, object property in BtMissingFrameworkElementsDialog
BtMissingFrameworkElementsDialog:edit-elements, object property in BtMissingFrameworkElementsDialog
BtMissingSongElementsDialog, struct in BtMissingSongElementsDialog
BtMissingSongElementsDialog:machines, object property in BtMissingSongElementsDialog
BtMissingSongElementsDialog:waves, object property in BtMissingSongElementsDialog
bt_missing_framework_elements_dialog_apply, function in BtMissingFrameworkElementsDialog
bt_missing_framework_elements_dialog_new, function in BtMissingFrameworkElementsDialog
bt_missing_song_elements_dialog_new, function in BtMissingSongElementsDialog

O

BtObjectListModel, struct in BtObjectListModel
bt_object_list_model_append, function in BtObjectListModel
bt_object_list_model_get_object, function in BtObjectListModel
bt_object_list_model_insert, function in BtObjectListModel
bt_object_list_model_new, function in BtObjectListModel

P

BtPanoramaPopup, struct in BtPanoramaPopup
bt_panorama_popup_hide, function in BtPanoramaPopup
bt_panorama_popup_new, function in BtPanoramaPopup
bt_panorama_popup_show, function in BtPanoramaPopup
BtPatternEditor, struct in BtPatternEditor
BtPatternEditor:cursor-digit, object property in BtPatternEditor
BtPatternEditor:cursor-group, object property in BtPatternEditor
BtPatternEditor:cursor-param, object property in BtPatternEditor
BtPatternEditor:cursor-row, object property in BtPatternEditor
BtPatternEditor:octave, object property in BtPatternEditor
BtPatternEditor:play-position, object property in BtPatternEditor
BtPatternEditorCallbacks, struct in BtPatternEditor
BtPatternEditorColumn, struct in BtPatternEditor
BtPatternEditorColumnGroup, struct in BtPatternEditor
BtPatternEditorColumnType, enum in BtPatternEditor
BtPatternEditorSelectionMode, enum in BtPatternEditor
BtPatternListModel, struct in BtPatternListModel
BtPatternPropertiesDialog, struct in BtPatternPropertiesDialog
BtPatternPropertiesDialog:length, object property in BtPatternPropertiesDialog
BtPatternPropertiesDialog:name, object property in BtPatternPropertiesDialog
BtPatternPropertiesDialog:pattern, object property in BtPatternPropertiesDialog
BtPatternPropertiesDialog:voices, object property in BtPatternPropertiesDialog
bt_pattern_editor_get_selection, function in BtPatternEditor
bt_pattern_editor_new, function in BtPatternEditor
bt_pattern_editor_position_to_coords, function in BtPatternEditor
bt_pattern_editor_set_pattern, function in BtPatternEditor
bt_pattern_list_model_get_object, function in BtPatternListModel
bt_pattern_list_model_new, function in BtPatternListModel
bt_pattern_properties_dialog_apply, function in BtPatternPropertiesDialog
bt_pattern_properties_dialog_new, function in BtPatternPropertiesDialog
BtPlaybackControllerIc, struct in BtPlaybackControllerIc
BtPlaybackControllerSocket, struct in BtPlaybackControllerSocket
bt_playback_controller_ic_new, function in BtPlaybackControllerIc
bt_playback_controller_socket_new, function in BtPlaybackControllerSocket
BtPresetListModel, struct in BtPresetListModel
bt_preset_list_model_add, function in BtPresetListModel
bt_preset_list_model_find_iter, function in BtPresetListModel
bt_preset_list_model_new, function in BtPresetListModel
bt_preset_list_model_remove, function in BtPresetListModel
bt_preset_list_model_rename, function in BtPresetListModel

R

BtRenderDialog, struct in BtRenderDialog
BtRenderMode, enum in BtRenderDialog
bt_render_dialog_new, function in BtRenderDialog

S

BtSequenceGridModel, struct in BtSequenceGridModel
BtSequenceGridModel:bars, object property in BtSequenceGridModel
BtSequenceGridModel:length, object property in BtSequenceGridModel
BtSequenceGridModel:pos-format, object property in BtSequenceGridModel
BtSequenceGridModelPosFormat, enum in BtSequenceGridModel
BtSequenceView, struct in BtSequenceView
BtSequenceView:loop-end, object property in BtSequenceView
BtSequenceView:loop-start, object property in BtSequenceView
BtSequenceView:play-position, object property in BtSequenceView
BtSequenceView:visible-rows, object property in BtSequenceView
bt_sequence_grid_model_new, function in BtSequenceGridModel
bt_sequence_view_new, function in BtSequenceView
BtSettingsDialog, struct in BtSettingsDialog
BtSettingsDialog:page, object property in BtSettingsDialog
BtSettingsDialog:page-widget, object property in BtSettingsDialog
BtSettingsPage, enum in BtSettingsDialog
BtSettingsPageAudiodevices, struct in BtSettingsPageAudiodevices
BtSettingsPageDirectories, struct in BtSettingsPageDirectories
BtSettingsPageInteractionController, struct in BtSettingsPageInteractionController
BtSettingsPageInteractionController:control, object property in BtSettingsPageInteractionController
BtSettingsPageInteractionController:device, object property in BtSettingsPageInteractionController
BtSettingsPagePlaybackController, struct in BtSettingsPagePlaybackController
BtSettingsPageShortcuts, struct in BtSettingsPageShortcuts
BtSettingsPageUI, struct in BtSettingsPageUI
bt_settings_dialog_new, function in BtSettingsDialog
bt_settings_page_audiodevices_new, function in BtSettingsPageAudiodevices
bt_settings_page_directories_new, function in BtSettingsPageDirectories
bt_settings_page_interaction_controller_new, function in BtSettingsPageInteractionController
bt_settings_page_playback_controller_new, function in BtSettingsPagePlaybackController
bt_settings_page_shortcuts_new, function in BtSettingsPageShortcuts
bt_settings_page_ui_new, function in BtSettingsPageUI
BtSignalAnalysisDialog, struct in BtSignalAnalysisDialog
BtSignalAnalysisDialog:element, object property in BtSignalAnalysisDialog
bt_signal_analysis_dialog_new, function in BtSignalAnalysisDialog

T

BtTipDialog, struct in BtTipDialog
bt_tip_dialog_new, function in BtTipDialog
bt_toolbar_style_changed, function in btedit

U

BtUIResources, struct in BtUIResources
BtUIResourcesMachineColors, enum in BtUIResources
bt_ui_resources_get_accel_group, function in BtUIResources
bt_ui_resources_get_icon_image_by_machine, function in BtUIResources
bt_ui_resources_get_icon_image_by_machine_type, function in BtUIResources
bt_ui_resources_get_icon_pixbuf_by_machine, function in BtUIResources
bt_ui_resources_get_machine_graphics_pixbuf_by_machine, function in BtUIResources
bt_ui_resources_get_wire_graphics_pixbuf_by_wire, function in BtUIResources
bt_ui_resources_new, function in BtUIResources

V

BtVolumePopup, struct in BtVolumePopup
bt_volume_popup_hide, function in BtVolumePopup
bt_volume_popup_new, function in BtVolumePopup
bt_volume_popup_show, function in BtVolumePopup

W

BtWaveformViewer, struct in BtWaveformViewer
BtWaveformViewer:loop-end, object property in BtWaveformViewer
BtWaveformViewer:loop-start, object property in BtWaveformViewer
BtWaveformViewer:playback-cursor, object property in BtWaveformViewer
bt_waveform_viewer_new, function in BtWaveformViewer
bt_waveform_viewer_set_wave, function in BtWaveformViewer
BtWavelevelListModel, struct in BtWavelevelListModel
bt_wavelevel_list_model_get_object, function in BtWavelevelListModel
bt_wavelevel_list_model_new, function in BtWavelevelListModel
BtWaveListModel, struct in BtWaveListModel
bt_wave_list_model_get_object, function in BtWaveListModel
bt_wave_list_model_new, function in BtWaveListModel
BtWireCanvasItem, struct in BtWireCanvasItem
BtWireCanvasItem:analysis-dialog, object property in BtWireCanvasItem
BtWireCanvasItem:dst, object property in BtWireCanvasItem
BtWireCanvasItem:machines-page, object property in BtWireCanvasItem
BtWireCanvasItem:src, object property in BtWireCanvasItem
BtWireCanvasItem:wire, object property in BtWireCanvasItem
BtWireCanvasItem:zoom, object property in BtWireCanvasItem
bt_wire_canvas_item_new, function in BtWireCanvasItem
bt_wire_show_analyzer_dialog, function in BtWireCanvasItem
buzztrax-0.10.2/docs/reference/bt-edit/html/GtkScrolledSyncWindow.html0000644042355400116100000011426412640736116026312 0ustar00ensoniceng00000000000000 GtkScrolledSyncWindow: Buzztrax Bt-Edit Reference Manual

GtkScrolledSyncWindow

GtkScrolledSyncWindow — Adds scrolling to its child widget

Properties

GtkAdjustment * hadjustment Read / Write / Construct
gboolean kinetic-scrolling Read / Write
GtkAdjustment * vadjustment Read / Write / Construct

Signals

void move-focus-out Action
gboolean scroll-child Action

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkScrolledSyncWindow

Implemented Interfaces

GtkScrolledSyncWindow implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

GtkScrolledSyncWindow is a copy of GtkScrolledWindow that can be used as a companion widget. For this one will share some or all of the adjustments of the master widget with this widget. The GtkScrolledSyncWindow will never show scrollbars, instead it will follow the scrollbars of the master widget.

Functions

gtk_scrolled_sync_window_new ()

GtkWidget *
gtk_scrolled_sync_window_new (GtkAdjustment *hadjustment,
                              GtkAdjustment *vadjustment);

Creates a new synced scrolled window.

The two arguments are the scrolled window's adjustments; these will be shared with the scrollbars and the child widget to keep the bars in sync with the child. Usually you want to pass NULL for the adjustments, which will cause the scrolled window to create them for you.

Parameters

hadjustment

horizontal adjustment.

[allow-none]

vadjustment

vertical adjustment.

[allow-none]

Returns

a new synced scrolled window


gtk_scrolled_sync_window_set_hadjustment ()

void
gtk_scrolled_sync_window_set_hadjustment
                               (GtkScrolledSyncWindow *self,
                                GtkAdjustment *hadjustment);

Sets the GtkAdjustment for the horizontal scrollbar.

Parameters

self

a GtkScrolledSyncWindow

 

hadjustment

horizontal scroll adjustment

 

gtk_scrolled_sync_window_set_vadjustment ()

void
gtk_scrolled_sync_window_set_vadjustment
                               (GtkScrolledSyncWindow *self,
                                GtkAdjustment *vadjustment);

Sets the GtkAdjustment for the vertical scrollbar.

Parameters

self

a GtkScrolledSyncWindow

 

vadjustment

vertical scroll adjustment

 

gtk_scrolled_sync_window_get_hadjustment ()

GtkAdjustment *
gtk_scrolled_sync_window_get_hadjustment
                               (GtkScrolledSyncWindow *self);

Returns the horizontal adjustment.

Parameters

Returns

the horizontal GtkAdjustment.

[transfer none]


gtk_scrolled_sync_window_get_vadjustment ()

GtkAdjustment *
gtk_scrolled_sync_window_get_vadjustment
                               (GtkScrolledSyncWindow *self);

Returns the vertical adjustment.

Parameters

Returns

the vertical GtkAdjustment.

[transfer none]


gtk_scrolled_sync_window_add_with_viewport ()

void
gtk_scrolled_sync_window_add_with_viewport
                               (GtkScrolledSyncWindow *self,
                                GtkWidget *child);

gtk_scrolled_sync_window_add_with_viewport has been deprecated since version 3.8 and should not be used in newly-written code.

gtk_container_add() will now automatically add a GtkViewport if the child doesn't implement GtkScrollable.

Used to add children without native scrolling capabilities. This is simply a convenience function; it is equivalent to adding the unscrollable child to a viewport, then adding the viewport to the scrolled window. If a child has native scrolling, use gtk_container_add() instead of this function.

The viewport scrolls the child by moving its GdkWindow, and takes the size of the child to be the size of its toplevel GdkWindow. This will be very wrong for most widgets that support native scrolling; for example, if you add a widget such as GtkTreeView with a viewport, the whole widget will scroll, including the column headings. Thus, widgets with native scrolling support should not be used with the GtkViewport proxy.

A widget supports scrolling natively if it implements the GtkScrollable interface.

Parameters

self

a GtkScrolledSyncWindow

 

child

the widget you want to scroll

 

gtk_scrolled_sync_window_set_kinetic_scrolling ()

void
gtk_scrolled_sync_window_set_kinetic_scrolling
                               (GtkScrolledSyncWindow *self,
                                gboolean kinetic_scrolling);

Turns kinetic scrolling on or off. Kinetic scrolling only applies to devices with source GDK_SOURCE_TOUCHSCREEN.

Parameters

self

a GtkScrolledSyncWindow

 

kinetic_scrolling

TRUE to enable kinetic scrolling

 

gtk_scrolled_sync_window_get_kinetic_scrolling ()

gboolean
gtk_scrolled_sync_window_get_kinetic_scrolling
                               (GtkScrolledSyncWindow *self);

Returns the specified kinetic scrolling behavior.

Parameters

Returns

the scrolling behavior flags.


gtk_scrolled_sync_window_set_capture_button_press ()

void
gtk_scrolled_sync_window_set_capture_button_press
                               (GtkScrolledSyncWindow *self,
                                gboolean capture_button_press);

Changes the behaviour of self wrt. to the initial event that possibly starts kinetic scrolling. When capture_button_press is set to TRUE, the event is captured by the scrolled window, and then later replayed if it is meant to go to the child widget.

This should be enabled if any child widgets perform non-reversible actions on “button-press-event”. If they don't, and handle additionally handle “grab-broken-event”, it might be better to set capture_button_press to FALSE.

This setting only has an effect if kinetic scrolling is enabled.

Parameters

self

a GtkScrolledSyncWindow

 

capture_button_press

TRUE to capture button presses

 

gtk_scrolled_sync_window_get_capture_button_press ()

gboolean
gtk_scrolled_sync_window_get_capture_button_press
                               (GtkScrolledSyncWindow *self);

Return whether button presses are captured during kinetic scrolling. See gtk_scrolled_sync_window_set_capture_button_press().

Parameters

Returns

TRUE if button presses are captured during kinetic scrolling

Types and Values

struct GtkScrolledSyncWindow

struct GtkScrolledSyncWindow;

a scrolling container widget

Property Details

The “hadjustment” property

  “hadjustment”              GtkAdjustment *

The GtkAdjustment for the horizontal position.

Flags: Read / Write / Construct


The “kinetic-scrolling” property

  “kinetic-scrolling”        gboolean

The kinetic scrolling behavior flags. Kinetic scrolling only applies to devices with source GDK_SOURCE_TOUCHSCREEN

Flags: Read / Write

Default value: TRUE


The “vadjustment” property

  “vadjustment”              GtkAdjustment *

The GtkAdjustment for the vertical position.

Flags: Read / Write / Construct

Signal Details

The “move-focus-out” signal

void
user_function (GtkScrolledSyncWindow *scrolled_sync_window,
               GtkDirectionType       direction_type,
               gpointer               user_data)

The ::move-focus-out signal is a

keybinding signal

which gets emitted when focus is moved away from the scrolled window by a keybinding. The “move-focus” signal is emitted with direction_type on this scrolled windows toplevel parent in the container hierarchy. The default bindings for this signal are

Tab+Ctrl

and

Tab+Ctrl+Shift.

Parameters

scrolled_sync_window

a GtkScrolledSyncWindow

 

direction_type

either GTK_DIR_TAB_FORWARD or GTK_DIR_TAB_BACKWARD

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “scroll-child” signal

gboolean
user_function (GtkScrolledSyncWindow *scrolled_sync_window,
               GtkScrollType          scroll,
               gboolean               horizontal,
               gpointer               user_data)

The ::scroll-child signal is a

keybinding signal

which gets emitted when a keybinding that scrolls is pressed. The horizontal or vertical adjustment is updated which triggers a signal that the scrolled windows child may listen to and scroll itself.

Parameters

scrolled_sync_window

a GtkScrolledSyncWindow

 

scroll

a GtkScrollType describing how much to scroll

 

horizontal

whether the keybinding scrolls the child horizontally or not

 

user_data

user data set when the signal handler was connected.

 

Flags: Action

buzztrax-0.10.2/docs/reference/bt-edit/html/BtSettingsPageAudiodevices.html0000644042355400116100000001564312640736116027261 0ustar00ensoniceng00000000000000 BtSettingsPageAudiodevices: Buzztrax Bt-Edit Reference Manual

BtSettingsPageAudiodevices

BtSettingsPageAudiodevices — audio device configuration settings page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkGrid
                    ╰── BtSettingsPageAudiodevices

Implemented Interfaces

BtSettingsPageAudiodevices implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

List available GStreamer audio devices. User can pick and configure one.

Functions

bt_settings_page_audiodevices_new ()

BtSettingsPageAudiodevices *
bt_settings_page_audiodevices_new (GtkWidget *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtSettingsPageAudiodevices

struct BtSettingsPageAudiodevices;

the root window for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/buzztrax-edit-ops.html0000644042355400116100000000675712640736116025472 0ustar00ensoniceng00000000000000 buzztrax-edit: Buzztrax Bt-Edit Reference Manual

buzztrax-edit

buzztrax-edit — work with buzztrax songs

Synopsis

buzztrax-edit [options...]

Description

buzztrax-edit is the graphical buzztrax song editor.

Invocation

buzztrax-edit without any argumants launches the UI. Alternatively it takes a mandatory argument that specifies the command and extra options depending on the command.

Options

-c, --command command-name

The command to exeute, one of: load

-i, --input-file song-filename

The input filename. This should be a song file buzztrax can handle.

-h, --help

Print brief help and exit.

--version

Print version and exit.

buzztrax-0.10.2/docs/reference/bt-edit/html/pt02.html0000644042355400116100000000416012640736116022626 0ustar00ensoniceng00000000000000 Part IV. Appendix: Buzztrax Bt-Edit Reference Manual buzztrax-0.10.2/docs/reference/bt-edit/html/BtPatternPropertiesDialog.html0000644042355400116100000002751712640736116027154 0ustar00ensoniceng00000000000000 BtPatternPropertiesDialog: Buzztrax Bt-Edit Reference Manual

BtPatternPropertiesDialog

BtPatternPropertiesDialog — pattern settings

Properties

gulong length Read
gchar * name Read
BtPattern * pattern Write / Construct Only
gulong voices Read

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtPatternPropertiesDialog

Implemented Interfaces

BtPatternPropertiesDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

A dialog to (re)configure a BtPattern.

Functions

bt_pattern_properties_dialog_new ()

BtPatternPropertiesDialog *
bt_pattern_properties_dialog_new (const BtPattern *pattern);

Create a new instance

Parameters

pattern

the pattern for which to create the dialog for

 

Returns

the new instance


bt_pattern_properties_dialog_apply ()

void
bt_pattern_properties_dialog_apply (const BtPatternPropertiesDialog *self);

Makes the dialog settings effective.

Parameters

self

the dialog which settings to apply

 

Types and Values

struct BtPatternPropertiesDialog

struct BtPatternPropertiesDialog;

the pattern settings dialog

Property Details

The “length” property

  “length”                   gulong

length of the pattern in ticks.

Flags: Read

Allowed values: >= 1


The “name” property

  “name”                     gchar *

the display-name of the pattern.

Flags: Read

Default value: "unamed"


The “pattern” property

  “pattern”                  BtPattern *

Set pattern object, the dialog handles.

Flags: Write / Construct Only


The “voices” property

  “voices”                   gulong

number of voices in the pattern.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-edit/html/pt01.html0000644042355400116100000000311012640736116022617 0ustar00ensoniceng00000000000000 Part I. Overview: Buzztrax Bt-Edit Reference Manual

Part I. Overview

buzztrax-0.10.2/docs/reference/bt-edit/html/BtAboutDialog.html0000644042355400116100000001417612640736116024531 0ustar00ensoniceng00000000000000 BtAboutDialog: Buzztrax Bt-Edit Reference Manual

BtAboutDialog

BtAboutDialog — class for the editor about dialog

Types and Values

struct BtAboutDialog

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── GtkAboutDialog
                                ╰── BtAboutDialog

Implemented Interfaces

BtAboutDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

Info about the project, people involved, license and so on.

Functions

bt_about_dialog_new ()

BtAboutDialog *
bt_about_dialog_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtAboutDialog

struct BtAboutDialog;

the about dialog for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/BtSettingsPageShortcuts.html0000644042355400116100000001535412640736116026652 0ustar00ensoniceng00000000000000 BtSettingsPageShortcuts: Buzztrax Bt-Edit Reference Manual

BtSettingsPageShortcuts

BtSettingsPageShortcuts — keyboard shortcut settings page

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkGrid
                    ╰── BtSettingsPageShortcuts

Implemented Interfaces

BtSettingsPageShortcuts implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Includes

#include "bt-edit.h"

Description

Edit and manage keyboard shortcut schemes.

Functions

bt_settings_page_shortcuts_new ()

BtSettingsPageShortcuts *
bt_settings_page_shortcuts_new (GtkWidget *pages);

Create a new instance

Parameters

pages

the page collection

 

Returns

the new instance

Types and Values

struct BtSettingsPageShortcuts

struct BtSettingsPageShortcuts;

the root window for the editor application

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMissingSongElementsDialog.html0000644042355400116100000002322512640736116027407 0ustar00ensoniceng00000000000000 BtMissingSongElementsDialog: Buzztrax Bt-Edit Reference Manual

BtMissingSongElementsDialog

BtMissingSongElementsDialog — missing song machine and wave elements

Properties

gpointer machines Write / Construct Only
gpointer waves Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtMissingSongElementsDialog

Implemented Interfaces

BtMissingSongElementsDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

A dialog to inform about missing song machine and wave elements.

Functions

bt_missing_song_elements_dialog_new ()

BtMissingSongElementsDialog *
bt_missing_song_elements_dialog_new (GList *machines,
                                     GList *waves);

Create a new instance

Parameters

machines

list of missing machine elements

 

waves

list of missing wave files

 

Returns

the new instance

Types and Values

struct BtMissingSongElementsDialog

struct BtMissingSongElementsDialog;

the root window for the editor application

Property Details

The “machines” property

  “machines”                 gpointer

Set missing machines list, the dialog handles.

Flags: Write / Construct Only


The “waves” property

  “waves”                    gpointer

Set missing waves list, the dialog handles.

Flags: Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-edit/html/BtMachineRenameDialog.html0000644042355400116100000002424512640736116026151 0ustar00ensoniceng00000000000000 BtMachineRenameDialog: Buzztrax Bt-Edit Reference Manual

BtMachineRenameDialog

BtMachineRenameDialog — machine settings

Properties

BtMachine * machine Write / Construct Only
gchar * name Read

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── GtkDialog
                            ╰── BtMachineRenameDialog

Implemented Interfaces

BtMachineRenameDialog implements AtkImplementorIface and GtkBuildable.

Includes

#include "bt-edit.h"

Description

A dialog to (re)configure a BtMachine.

Functions

bt_machine_rename_dialog_new ()

BtMachineRenameDialog *
bt_machine_rename_dialog_new (const BtMachine *machine);

Create a new instance

Parameters

machine

the machine for which to create the dialog for

 

Returns

the new instance


bt_machine_rename_dialog_apply ()

void
bt_machine_rename_dialog_apply (const BtMachineRenameDialog *self);

Makes the dialog settings effective.

Parameters

self

the dialog which settings to apply

 

Types and Values

struct BtMachineRenameDialog

struct BtMachineRenameDialog;

the machine settings dialog

Property Details

The “machine” property

  “machine”                  BtMachine *

Set machine object, the dialog handles.

Flags: Write / Construct Only


The “name” property

  “name”                     gchar *

the display-name of the machine.

Flags: Read

Default value: "unamed"

buzztrax-0.10.2/docs/reference/bt-edit/html/BtPlaybackControllerSocket.html0000644042355400116100000001343412640736116027276 0ustar00ensoniceng00000000000000 BtPlaybackControllerSocket: Buzztrax Bt-Edit Reference Manual

BtPlaybackControllerSocket

BtPlaybackControllerSocket — sockets based playback controller

Types and Values

Object Hierarchy

    GObject
    ╰── BtPlaybackControllerSocket

Includes

#include "bt-edit.h"

Description

Allows the coherence upnp backend for buzztrax to remote control and query buzztrax-edit.

Functionality can be tested doing "netcat -n 127.0.0.1 7654". The commands are implemented in client_cmd_parse_and_process(). The protocol uses strings that are delimited by '|' chars.

playlist - buzztrax sends a list of labels for the current song reply is: '|' delimited label names play - play a playlist entry (or from start) play|<playlist-entry-number> stop - stop playback status - get player status reply is: event|<play-state>|<playlist-label>|<play-pos>|<length>|<volume>|<mute-state>|<loop-mode> {set,get} - set or get a variable volume, mute, repeat

Functions

bt_playback_controller_socket_new ()

BtPlaybackControllerSocket *
bt_playback_controller_socket_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtPlaybackControllerSocket

struct BtPlaybackControllerSocket;

Opaque playback controller handle.

buzztrax-0.10.2/docs/reference/bt-edit/Makefile.am0000644042355400116100000000537212462776344022262 0ustar00ensoniceng00000000000000## Process this file with automake to produce Makefile.in # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE=buzztrax-edit # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR=$(top_srcdir)/src/ui/edit # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS=--type-init-func="gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS=--deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS=--sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html \ --extra-dir=.. # Used for dependencies. HFILE_GLOB=$(top_srcdir)/src/ui/edit/*.h CFILE_GLOB=$(top_srcdir)/src/ui/edit/*.c # Header files to ignore when scanning. IGNORE_HFILES=marshal.h # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = buzztrax-edit.xml # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/ui/edit \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(GUI_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbtedit.la \ $(top_builddir)/libbuzztrax-core.la \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(GUI_DEPS_LIBS) \ $(BT_LIBS) # -Wl,--no-as-needed # include generic part include $(top_srcdir)/gtk-doc.make if ENABLE_GTK_DOC if ENABLE_MAN man_MANS = \ buzztrax-edit.1 %.1 : %.xml @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< BUILT_EXTRA_DIST = $(man_MANS) endif endif # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += \ $(DOC_MODULE).types \ $(content_files) # Comment this out if you want your docs-status tested during 'make check' if ENABLE_GTK_DOC TESTS_ENVIRONMENT = \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) TESTS = $(GTKDOC_CHECK) endif buzztrax-0.10.2/docs/reference/bt-edit/Makefile.in0000644042355400116100000013050412640575013022253 0ustar00ensoniceng00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 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@ # -*- mode: makefile -*- #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \ $(top_srcdir)/test-driver subdir = docs/reference/bt-edit ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/orc.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac 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 = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ ALSA_DEPS_CFLAGS = @ALSA_DEPS_CFLAGS@ ALSA_DEPS_LIBS = @ALSA_DEPS_LIBS@ ALSA_DOC_SECTIONS = @ALSA_DOC_SECTIONS@ ALSA_DOC_TYPES = @ALSA_DOC_TYPES@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ ASPELL = @ASPELL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASE_DEPS_CFLAGS = @BASE_DEPS_CFLAGS@ BASE_DEPS_LIBS = @BASE_DEPS_LIBS@ BMLHOST_CCASFLAGS = @BMLHOST_CCASFLAGS@ BMLHOST_CFLAGS = @BMLHOST_CFLAGS@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BT_CFLAGS = @BT_CFLAGS@ BT_DISABLE_DEPRECATED = @BT_DISABLE_DEPRECATED@ BT_INCLUDEDIR = @BT_INCLUDEDIR@ BT_LDFLAGS = @BT_LDFLAGS@ BT_LIBDIR = @BT_LIBDIR@ BT_LIBS = @BT_LIBS@ BT_MAJORMINOR = @BT_MAJORMINOR@ BT_MAJOR_VERSION = @BT_MAJOR_VERSION@ BT_MICRO_VERSION = @BT_MICRO_VERSION@ BT_MINOR_VERSION = @BT_MINOR_VERSION@ BT_RELEASE_DATE = @BT_RELEASE_DATE@ BT_RELEASE_YEAR = @BT_RELEASE_YEAR@ BT_VERSION = @BT_VERSION@ BT_VERSION_INFO = @BT_VERSION_INFO@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@ FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIRDIR = @GIRDIR@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@ GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@ GREP = @GREP@ GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GSF_DEPS_CFLAGS = @GSF_DEPS_CFLAGS@ GSF_DEPS_LIBS = @GSF_DEPS_LIBS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ GST_PLUGIN_CFLAGS = @GST_PLUGIN_CFLAGS@ GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ GST_PLUGIN_LIBS = @GST_PLUGIN_LIBS@ GST_PREFIX = @GST_PREFIX@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_PREFIX = @GTK_PREFIX@ GUDEV_DEPS_CFLAGS = @GUDEV_DEPS_CFLAGS@ GUDEV_DEPS_LIBS = @GUDEV_DEPS_LIBS@ GUDEV_DOC_SECTIONS = @GUDEV_DOC_SECTIONS@ GUDEV_DOC_TYPES = @GUDEV_DOC_TYPES@ GUI_DEPS_CFLAGS = @GUI_DEPS_CFLAGS@ GUI_DEPS_LIBS = @GUI_DEPS_LIBS@ G_IR_COMPILER = @G_IR_COMPILER@ G_IR_GENERATE = @G_IR_GENERATE@ G_IR_SCANNER = @G_IR_SCANNER@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LINUX_INPUT_DOC_SECTIONS = @LINUX_INPUT_DOC_SECTIONS@ LINUX_INPUT_DOC_TYPES = @LINUX_INPUT_DOC_TYPES@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ ORC_LIBS = @ORC_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_ORIGIN = @PACKAGE_ORIGIN@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SCROLLKEEPER_BUILD_REQUIRED = @SCROLLKEEPER_BUILD_REQUIRED@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TYPELIBDIR = @TYPELIBDIR@ UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ UPDATE_ICON_CACHE = @UPDATE_ICON_CACHE@ UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ XFONT_PATH = @XFONT_PATH@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bcov_path = @bcov_path@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ lcov_path = @lcov_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ scrollkeeper_config = @scrollkeeper_config@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ valgrind_path = @valgrind_path@ with_desktop_dir = @with_desktop_dir@ xvfb_path = @xvfb_path@ # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE = buzztrax-edit # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR = $(top_srcdir)/src/ui/edit # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS = --type-init-func="gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS = --deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS = --sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html \ --extra-dir=.. # Used for dependencies. HFILE_GLOB = $(top_srcdir)/src/ui/edit/*.h CFILE_GLOB = $(top_srcdir)/src/ui/edit/*.c # Header files to ignore when scanning. IGNORE_HFILES = marshal.h # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = buzztrax-edit.xml # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/ui/edit \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(GUI_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbtedit.la \ $(top_builddir)/libbuzztrax-core.la \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(GUI_DEPS_LIBS) \ $(BT_LIBS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) $(DOC_MODULE).types \ $(content_files) DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test @GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # -Wl,--no-as-needed # include generic part @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@man_MANS = \ @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@ buzztrax-edit.1 @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@BUILT_EXTRA_DIST = $(man_MANS) # Comment this out if you want your docs-status tested during 'make check' @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) @ENABLE_GTK_DOC_TRUE@TESTS = $(GTKDOC_CHECK) all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(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) --foreign docs/reference/bt-edit/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/reference/bt-edit/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_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am @ENABLE_GTK_DOC_FALSE@all-local: all-am: Makefile $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(man1dir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local uninstall-man uninstall-man: uninstall-man1 .MAKE: check-am install-am install-strip .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool clean-local cscopelist-am ctags-am \ dist-hook distclean distclean-generic distclean-libtool \ distclean-local distdir 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-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags-am uninstall uninstall-am uninstall-local \ uninstall-man uninstall-man1 gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc @ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs @HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" @HAVE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@%.1 : %.xml @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@ @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< # 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: buzztrax-0.10.2/docs/reference/bt-edit/buzztrax-edit-sections.txt0000644042355400116100000006550512640736116025423 0ustar00ensoniceng00000000000000# :mode=html: # please add section in the alpahbetical order using the following template #
# btxxx # BtXxx # #
"bt-edit.h"
btaboutdialog BtAboutDialog BtAboutDialog bt_about_dialog_new BtAboutDialogClass BT_ABOUT_DIALOG BT_IS_ABOUT_DIALOG BT_TYPE_ABOUT_DIALOG BT_ABOUT_DIALOG_CLASS BT_IS_ABOUT_DIALOG_CLASS BT_ABOUT_DIALOG_GET_CLASS bt_about_dialog_get_type BtAboutDialogPrivate
btchangelog BtChangeLog BtChangeLog bt_change_log_new bt_change_log_is_active bt_change_log_add bt_change_log_redo bt_change_log_undo bt_change_log_start_group bt_change_log_end_group bt_change_log_recover bt_change_log_register BtChangeLogClass BtChangeLogFile BT_CHANGE_LOG BT_IS_CHANGE_LOG BT_TYPE_CHANGE_LOG BT_CHANGE_LOG_CLASS BT_IS_CHANGE_LOG_CLASS BT_CHANGE_LOG_GET_CLASS bt_change_log_get_type BtChangeLogPrivate
btchangelogger BtChangeLogger BT_CHANGE_LOGGER_METHOD bt_change_logger_change bt_change_logger_match_method BtChangeLogger BtChangeLoggerMethods BtChangeLoggerInterface BT_CHANGE_LOGGER BT_IS_CHANGE_LOGGER BT_TYPE_CHANGE_LOGGER BT_CHANGE_LOGGER_GET_INTERFACE bt_change_logger_get_type
btcrashrecoverdialog BtCrashRecoverDialog bt_crash_recover_dialog_new BtCrashRecoverDialog BtCrashRecoverDialogClass BT_CRASH_RECOVER_DIALOG BT_IS_CRASH_RECOVER_DIALOG BT_CRASH_RECOVER_DIALOG_CLASS BT_IS_CRASH_RECOVER_DIALOG_CLASS BT_TYPE_CRASH_RECOVER_DIALOG BT_CRASH_RECOVER_DIALOG_GET_CLASS bt_crash_recover_dialog_get_type BtCrashRecoverDialogPrivate
bteditapplication BtEditApplication BtEditApplication bt_edit_application_new bt_edit_application_new_song bt_edit_application_load_song bt_edit_application_save_song bt_edit_application_run bt_edit_application_load_and_run bt_edit_application_quit bt_edit_application_show_about bt_edit_application_show_tip bt_edit_application_crash_log_recover bt_edit_application_attach_child_window bt_edit_application_ui_lock bt_edit_application_ui_unlock bt_edit_application_is_song_unsaved bt_edit_application_set_song_unsaved BtEditApplicationClass BT_EDIT_APPLICATION BT_IS_EDIT_APPLICATION BT_EDIT_APPLICATION_CLASS BT_IS_EDIT_APPLICATION_CLASS BT_EDIT_APPLICATION_GET_CLASS BT_TYPE_EDIT_APPLICATION bt_edit_application_get_type BtEditApplicationPrivate
btinteractioncontrollermenu BtInteractionControllerMenu BtInteractionControllerMenu BtInteractionControllerMenuType bt_interaction_controller_menu_new BtInteractionControllerMenuClass BT_INTERACTION_CONTROLLER_MENU BT_IS_INTERACTION_CONTROLLER_MENU BT_INTERACTION_CONTROLLER_MENU_CLASS BT_IS_INTERACTION_CONTROLLER_MENU_CLASS BT_INTERACTION_CONTROLLER_MENU_GET_CLASS BT_TYPE_INTERACTION_CONTROLLER_MENU BT_TYPE_INTERACTION_CONTROLLER_MENU_TYPE bt_interaction_controller_menu_get_type bt_interaction_controller_menu_type_get_type BtInteractionControllerMenuPrivate
btmachineactions BtMachineActions bt_machine_action_about
btmachinecanvasitem BtMachineCanvasItem BtMachineCanvasItem bt_machine_canvas_item_new bt_machine_show_properties_dialog bt_machine_show_preferences_dialog bt_machine_show_analyzer_dialog BtMachineCanvasItemClass BT_MACHINE_CANVAS_ITEM BT_IS_MACHINE_CANVAS_ITEM BT_MACHINE_CANVAS_ITEM_CLASS BT_IS_MACHINE_CANVAS_ITEM_CLASS BT_MACHINE_CANVAS_ITEM_GET_CLASS BT_TYPE_MACHINE_CANVAS_ITEM bt_machine_canvas_item_get_type BtMachineCanvasItemPrivate
btmachinelistmodel BtMachineListModel BtMachineListModel bt_machine_list_model_get_object bt_machine_list_model_new BtMachineListModelClass BT_MACHINE_LIST_MODEL BT_IS_MACHINE_LIST_MODEL BT_MACHINE_LIST_MODEL_CLASS BT_IS_MACHINE_LIST_MODEL_CLASS BT_MACHINE_LIST_MODEL_GET_CLASS BT_TYPE_MACHINE_LIST_MODEL bt_machine_list_model_get_type BtMachineListModelPrivate
btmachinemenu BtMachineMenu BtMachineMenu bt_machine_menu_new BtMachineMenuClass BT_MACHINE_MENU BT_IS_MACHINE_MENU BT_MACHINE_MENU_CLASS BT_IS_MACHINE_MENU_CLASS BT_MACHINE_MENU_GET_CLASS BT_TYPE_MACHINE_MENU bt_machine_menu_get_type BtMachineMenuPrivate
btmachinepreferencesdialog BtMachinePreferencesDialog BtMachinePreferencesDialog bt_machine_preferences_dialog_new BtMachinePreferencesDialogClass BT_MACHINE_PREFERENCES_DIALOG BT_IS_MACHINE_PREFERENCES_DIALOG BT_MACHINE_PREFERENCES_DIALOG_CLASS BT_IS_MACHINE_PREFERENCES_DIALOG_CLASS BT_MACHINE_PREFERENCES_DIALOG_GET_CLASS BT_TYPE_MACHINE_PREFERENCES_DIALOG bt_machine_preferences_dialog_get_type BtMachinePreferencesDialogPrivate
btmachinepresetpropertiesdialog BtMachinePresetPropertiesDialog BtMachinePresetPropertiesDialog bt_machine_preset_properties_dialog_new bt_machine_preset_properties_dialog_apply BtMachinePresetPropertiesDialogClass BT_MACHINE_PRESET_PROPERTIES_DIALOG BT_IS_MACHINE_PRESET_PROPERTIES_DIALOG BT_MACHINE_PRESET_PROPERTIES_DIALOG_CLASS BT_IS_MACHINE_PRESET_PROPERTIES_DIALOG_CLASS BT_MACHINE_PRESET_PROPERTIES_DIALOG_GET_CLASS BT_TYPE_MACHINE_PRESET_PROPERTIES_DIALOG bt_machine_preset_properties_dialog_get_type BtMachinePresetPropertiesDialogPrivate
btmachinepropertiesdialog BtMachinePropertiesDialog BtMachinePropertiesDialog bt_machine_properties_dialog_new BtMachinePropertiesDialogClass BT_MACHINE_PROPERTIES_DIALOG BT_IS_MACHINE_PROPERTIES_DIALOG BT_MACHINE_PROPERTIES_DIALOG_CLASS BT_IS_MACHINE_PROPERTIES_DIALOG_CLASS BT_MACHINE_PROPERTIES_DIALOG_GET_CLASS BT_TYPE_MACHINE_PROPERTIES_DIALOG bt_machine_properties_dialog_get_type BtMachinePropertiesDialogPrivate
btmachinerenamedialog BtMachineRenameDialog BtMachineRenameDialog bt_machine_rename_dialog_new bt_machine_rename_dialog_apply BtMachineRenameDialogClass BT_MACHINE_RENAME_DIALOG BT_IS_MACHINE_RENAME_DIALOG BT_TYPE_MACHINE_RENAME_DIALOG BT_MACHINE_RENAME_DIALOG_CLASS BT_IS_MACHINE_RENAME_DIALOG_CLASS BT_MACHINE_RENAME_DIALOG_GET_CLASS bt_machine_rename_dialog_get_type BtMachineRenameDialogPrivate
btmainmenu BtMainMenu BtMainMenu bt_main_menu_new BtMainMenuClass BT_MAIN_MENU BT_IS_MAIN_MENU BT_MAIN_MENU_CLASS BT_IS_MAIN_MENU_CLASS BT_MAIN_MENU_GET_CLASS BT_TYPE_MAIN_MENU bt_main_menu_get_type BtMainMenuPrivate
btmainpages BtMainPages BtMainPages bt_main_pages_new BtMainPagesClass BT_MAIN_PAGES BT_IS_MAIN_PAGES BT_MAIN_PAGES_CLASS BT_IS_MAIN_PAGES_CLASS BT_MAIN_PAGES_GET_CLASS BT_TYPE_MAIN_PAGES bt_main_pages_get_type BtMainPagesPrivate
btmainpageinfo BtMainPageInfo BtMainPageInfo bt_main_page_info_new BtMainPageInfoClass BT_MAIN_PAGE_INFO BT_IS_MAIN_PAGE_INFO BT_MAIN_PAGE_INFO_CLASS BT_IS_MAIN_PAGE_INFO_CLASS BT_MAIN_PAGE_INFO_GET_CLASS BT_TYPE_MAIN_PAGE_INFO bt_main_page_info_get_type BtMainPageInfoPrivate
btmainpagemachines BtMainPageMachines BtMainPageMachines bt_main_page_machines_new bt_main_page_machines_wire_volume_popup bt_main_page_machines_wire_panorama_popup bt_main_page_machines_add_source_machine bt_main_page_machines_add_processor_machine bt_main_page_machines_delete_machine bt_main_page_machines_delete_wire bt_main_page_machines_rename_machine bt_main_page_machines_canvas_coords_to_relative bt_main_page_machines_relative_coords_to_canvas BtMainPageMachinesClass BT_MAIN_PAGE_MACHINES BT_IS_MAIN_PAGE_MACHINES BT_MAIN_PAGE_MACHINES_CLASS BT_IS_MAIN_PAGE_MACHINES_CLASS BT_MAIN_PAGE_MACHINES_GET_CLASS BT_TYPE_MAIN_PAGE_MACHINES bt_main_page_machines_get_type BtMainPageMachinesPrivate ICON_UPSAMPLING MACHINE_W MACHINE_H MACHINE_LABEL_BASE MACHINE_LABEL_HEIGHT MACHINE_LABEL_WIDTH MACHINE_METER_LEFT MACHINE_METER_RIGHT MACHINE_METER_BASE MACHINE_METER_HEIGHT MACHINE_METER_WIDTH WIRE_PAD_W WIRE_PAD_H WIRE_PAD_METER_BASE WIRE_PAD_METER_WIDTH WIRE_PAD_METER_HEIGHT WIRE_PAD_METER_VOL WIRE_PAD_METER_PAN view_get_machine_position
btmainpagepatterns BtMainPagePatterns BtMainPagePatterns bt_main_page_patterns_new bt_main_page_patterns_show_pattern bt_main_page_patterns_show_machine bt_main_page_patterns_delete_selection bt_main_page_patterns_cut_selection bt_main_page_patterns_copy_selection bt_main_page_patterns_paste_selection BtMainPagePatternsClass BT_MAIN_PAGE_PATTERNS BT_IS_MAIN_PAGE_PATTERNS BT_MAIN_PAGE_PATTERNS_CLASS BT_IS_MAIN_PAGE_PATTERNS_CLASS BT_MAIN_PAGE_PATTERNS_GET_CLASS BT_TYPE_MAIN_PAGE_PATTERNS bt_main_page_patterns_get_type BtMainPagePatternsPrivate
btmainpagesequence BtMainPageSequence BtMainPageSequence bt_main_page_sequence_new bt_main_page_sequence_delete_selection bt_main_page_sequence_copy_selection bt_main_page_sequence_cut_selection bt_main_page_sequence_paste_selection BtMainPageSequenceClass BT_MAIN_PAGE_SEQUENCE BT_IS_MAIN_PAGE_SEQUENCE BT_MAIN_PAGE_SEQUENCE_CLASS BT_IS_MAIN_PAGE_SEQUENCE_CLASS BT_MAIN_PAGE_SEQUENCE_GET_CLASS BT_TYPE_MAIN_PAGE_SEQUENCE bt_main_page_sequence_get_type BtMainPageSequencePrivate
btmainpagewaves BtMainPageWaves BtMainPageWaves bt_main_page_waves_new BtMainPageWavesClass BT_MAIN_PAGE_WAVES BT_IS_MAIN_PAGE_WAVES BT_MAIN_PAGE_WAVES_CLASS BT_IS_MAIN_PAGE_WAVES_CLASS BT_MAIN_PAGE_WAVES_GET_CLASS BT_TYPE_MAIN_PAGE_WAVES bt_main_page_waves_get_type BtMainPageWavesPrivate
btmainstatusbar BtMainStatusbar BtMainStatusbar BT_MAIN_STATUSBAR_DEFAULT bt_main_statusbar_new BtMainStatusbarClass BT_MAIN_STATUSBAR BT_IS_MAIN_STATUSBAR BT_MAIN_STATUSBAR_CLASS BT_IS_MAIN_STATUSBAR_CLASS BT_MAIN_STATUSBAR_GET_CLASS BT_TYPE_MAIN_STATUSBAR bt_main_statusbar_get_type BtMainStatusbarPrivate
btmaintoolbar BtMainToolbar BtMainToolbar bt_main_toolbar_new BtMainToolbarClass BT_MAIN_TOOLBAR BT_IS_MAIN_TOOLBAR BT_MAIN_TOOLBAR_CLASS BT_IS_MAIN_TOOLBAR_CLASS BT_MAIN_TOOLBAR_GET_CLASS BT_TYPE_MAIN_TOOLBAR bt_main_toolbar_get_type BtMainToolbarPrivate
btmainwindow BtMainWindow BtMainWindow bt_main_window_new bt_main_window_check_unsaved_song bt_main_window_check_quit bt_main_window_new_song bt_main_window_open_song bt_main_window_save_song bt_main_window_save_song_as bt_dialog_message bt_dialog_question BtMainWindowClass BT_MAIN_WINDOW BT_IS_MAIN_WINDOW BT_MAIN_WINDOW_CLASS BT_IS_MAIN_WINDOW_CLASS BT_MAIN_WINDOW_GET_CLASS BT_TYPE_MAIN_WINDOW bt_main_window_get_type BtMainWindowPrivate
btmemoryaudiosrc BtMemoryAudioSrc BtMemoryAudioSrc BtMemoryAudioSrcClass BT_MEMORY_AUDIO_SRC BT_IS_MEMORY_AUDIO_SRC BT_TYPE_MEMORY_AUDIO_SRC BT_MEMORY_AUDIO_SRC_CLASS BT_IS_MEMORY_AUDIO_SRC_CLASS bt_memory_audio_src_get_type
btmissingframeworkelementsdialog BtMissingFrameworkElementsDialog BtMissingFrameworkElementsDialog bt_missing_framework_elements_dialog_new bt_missing_framework_elements_dialog_apply BtMissingFrameworkElementsDialogClass BT_MISSING_FRAMEWORK_ELEMENTS_DIALOG BT_IS_MISSING_FRAMEWORK_ELEMENTS_DIALOG BT_MISSING_FRAMEWORK_ELEMENTS_DIALOG_CLASS BT_IS_MISSING_FRAMEWORK_ELEMENTS_DIALOG_CLASS BT_MISSING_FRAMEWORK_ELEMENTS_DIALOG_GET_CLASS BT_TYPE_MISSING_FRAMEWORK_ELEMENTS_DIALOG bt_missing_framework_elements_dialog_get_type BtMissingFrameworkElementsDialogPrivate
btmissingsongelementsdialog BtMissingSongElementsDialog BtMissingSongElementsDialog bt_missing_song_elements_dialog_new BtMissingSongElementsDialogClass BT_MISSING_SONG_ELEMENTS_DIALOG BT_IS_MISSING_SONG_ELEMENTS_DIALOG BT_TYPE_MISSING_SONG_ELEMENTS_DIALOG BT_MISSING_SONG_ELEMENTS_DIALOG_CLASS BT_IS_MISSING_SONG_ELEMENTS_DIALOG_CLASS BT_MISSING_SONG_ELEMENTS_DIALOG_GET_CLASS bt_missing_song_elements_dialog_get_type BtMissingSongElementsDialogPrivate
btobjectlistmodel BtObjectListModel BtObjectListModel bt_object_list_model_insert bt_object_list_model_append bt_object_list_model_get_object bt_object_list_model_new BtObjectListModelClass BT_OBJECT_LIST_MODEL BT_IS_OBJECT_LIST_MODEL BT_OBJECT_LIST_MODEL_CLASS BT_IS_OBJECT_LIST_MODEL_CLASS BT_OBJECT_LIST_MODEL_GET_CLASS BT_TYPE_OBJECT_LIST_MODEL bt_object_list_model_get_type BtObjectListModelPrivate
btpanoramapopup BtPanoramaPopup BtPanoramaPopup bt_panorama_popup_new bt_panorama_popup_show bt_panorama_popup_hide BtPanoramaPopupClass BT_PANORAMA_POPUP BT_IS_PANORAMA_POPUP BT_PANORAMA_POPUP_CLASS BT_IS_PANORAMA_POPUP_CLASS BT_PANORAMA_POPUP_GET_CLASS BT_TYPE_PANORAMA_POPUP bt_panorama_popup_get_type
btpatterneditor BtPatternEditor BtPatternEditor BtPatternEditorCallbacks BtPatternEditorColumn BtPatternEditorColumnType BtPatternEditorColumnGroup BtPatternEditorSelectionMode bt_pattern_editor_new bt_pattern_editor_set_pattern bt_pattern_editor_get_selection bt_pattern_editor_position_to_coords BtPatternEditorClass BT_PATTERN_EDITOR BT_IS_PATTERN_EDITOR BT_PATTERN_EDITOR_CLASS BT_IS_PATTERN_EDITOR_CLASS BT_TYPE_PATTERN_EDITOR bt_pattern_editor_get_type BtPatternEditorPrivate
btpatternlistmodel BtPatternListModel BtPatternListModel bt_pattern_list_model_get_object bt_pattern_list_model_new BtPatternListModelClass BT_PATTERN_LIST_MODEL BT_IS_PATTERN_LIST_MODEL BT_PATTERN_LIST_MODEL_CLASS BT_IS_PATTERN_LIST_MODEL_CLASS BT_PATTERN_LIST_MODEL_GET_CLASS BT_TYPE_PATTERN_LIST_MODEL bt_pattern_list_model_get_type BtPatternListModelPrivate
btpatternpropertiesdialog BtPatternPropertiesDialog BtPatternPropertiesDialog bt_pattern_properties_dialog_new bt_pattern_properties_dialog_apply BtPatternPropertiesDialogClass BT_PATTERN_PROPERTIES_DIALOG BT_IS_PATTERN_PROPERTIES_DIALOG BT_PATTERN_PROPERTIES_DIALOG_CLASS BT_IS_PATTERN_PROPERTIES_DIALOG_CLASS BT_PATTERN_PROPERTIES_DIALOG_GET_CLASS BT_TYPE_PATTERN_PROPERTIES_DIALOG bt_pattern_properties_dialog_get_type BtPatternPropertiesDialogPrivate
btplaybackcontrolleric BtPlaybackControllerIc BtPlaybackControllerIc bt_playback_controller_ic_new BtPlaybackControllerIcClass BT_PLAYBACK_CONTROLLER_IC BT_IS_PLAYBACK_CONTROLLER_IC BT_PLAYBACK_CONTROLLER_IC_CLASS BT_IS_PLAYBACK_CONTROLLER_IC_CLASS BT_PLAYBACK_CONTROLLER_IC_GET_CLASS BT_TYPE_PLAYBACK_CONTROLLER_IC bt_playback_controller_ic_get_type BtPlaybackControllerIcPrivate
btplaybackcontrollersocket BtPlaybackControllerSocket BtPlaybackControllerSocket bt_playback_controller_socket_new BtPlaybackControllerSocketClass BT_PLAYBACK_CONTROLLER_SOCKET BT_IS_PLAYBACK_CONTROLLER_SOCKET BT_PLAYBACK_CONTROLLER_SOCKET_CLASS BT_IS_PLAYBACK_CONTROLLER_SOCKET_CLASS BT_PLAYBACK_CONTROLLER_SOCKET_GET_CLASS BT_TYPE_PLAYBACK_CONTROLLER_SOCKET bt_playback_controller_socket_get_type BtPlaybackControllerSocketPrivate
btpresetlistmodel BtPresetListModel BtPresetListModel bt_preset_list_model_new bt_preset_list_model_add bt_preset_list_model_remove bt_preset_list_model_rename bt_preset_list_model_find_iter BtPresetListModelClass BT_PRESET_LIST_MODEL BT_IS_PRESET_LIST_MODEL BT_PRESET_LIST_MODEL_CLASS BT_IS_PRESET_LIST_MODEL_CLASS BT_PRESET_LIST_MODEL_GET_CLASS BT_TYPE_PRESET_LIST_MODEL bt_preset_list_model_get_type BtPresetListModelPrivate
btrenderdialog BtRenderDialog BtRenderDialog BtRenderMode bt_render_dialog_new BtRenderDialogClass BT_RENDER_DIALOG BT_IS_RENDER_DIALOG BT_TYPE_RENDER_DIALOG BT_RENDER_DIALOG_CLASS BT_IS_RENDER_DIALOG_CLASS BT_RENDER_DIALOG_GET_CLASS bt_render_dialog_get_type BtRenderDialogPrivate BT_TYPE_RENDER_MODE bt_render_mode_get_type
btsequencegridmodel BtSequenceGridModel BtSequenceGridModel BtSequenceGridModelPosFormat bt_sequence_grid_model_new BtSequenceGridModelClass BT_SEQUENCE_GRID_MODEL BT_IS_SEQUENCE_GRID_MODEL BT_SEQUENCE_GRID_MODEL_CLASS BT_IS_SEQUENCE_GRID_MODEL_CLASS BT_SEQUENCE_GRID_MODEL_GET_CLASS BT_TYPE_SEQUENCE_GRID_MODEL bt_sequence_grid_model_get_type BtSequenceGridModelPrivate BT_TYPE_SEQUENCE_GRID_MODEL_POS_FORMAT bt_sequence_grid_model_pos_format_get_type
btsequenceview BtSequenceView BtSequenceView bt_sequence_view_new BtSequenceViewClass BT_SEQUENCE_VIEW BT_IS_SEQUENCE_VIEW BT_SEQUENCE_VIEW_CLASS BT_IS_SEQUENCE_VIEW_CLASS BT_SEQUENCE_VIEW_GET_CLASS BT_TYPE_SEQUENCE_VIEW bt_sequence_view_get_type BtSequenceViewPrivate
btsettingsdialog BtSettingsDialog BtSettingsDialog BtSettingsPage bt_settings_dialog_new BtSettingsDialogClass BT_SETTINGS_DIALOG BT_IS_SETTINGS_DIALOG BT_SETTINGS_DIALOG_CLASS BT_IS_SETTINGS_DIALOG_CLASS BT_SETTINGS_DIALOG_GET_CLASS BT_TYPE_SETTINGS_DIALOG BT_TYPE_SETTINGS_PAGE bt_settings_dialog_get_type bt_settings_page_get_type BtSettingsDialogPrivate
btsettingspageaudiodevices BtSettingsPageAudiodevices BtSettingsPageAudiodevices bt_settings_page_audiodevices_new BtSettingsPageAudiodevicesClass BT_SETTINGS_PAGE_AUDIODEVICES BT_IS_SETTINGS_PAGE_AUDIODEVICES BT_SETTINGS_PAGE_AUDIODEVICES_CLASS BT_IS_SETTINGS_PAGE_AUDIODEVICES_CLASS BT_SETTINGS_PAGE_AUDIODEVICES_GET_CLASS BT_TYPE_SETTINGS_PAGE_AUDIODEVICES bt_settings_page_audiodevices_get_type BtSettingsPageAudiodevicesPrivate
btsettingspageinteractioncontroller BtSettingsPageInteractionController BtSettingsPageInteractionController bt_settings_page_interaction_controller_new BtSettingsPageInteractionControllerClass BT_SETTINGS_PAGE_INTERACTION_CONTROLLER BT_IS_SETTINGS_PAGE_INTERACTION_CONTROLLER BT_SETTINGS_PAGE_INTERACTION_CONTROLLER_CLASS BT_IS_SETTINGS_PAGE_INTERACTION_CONTROLLER_CLASS BT_SETTINGS_PAGE_INTERACTION_CONTROLLER_GET_CLASS BT_TYPE_SETTINGS_PAGE_INTERACTION_CONTROLLER bt_settings_page_interaction_controller_get_type BtSettingsPageInteractionControllerPrivate
btsettingspageplaybackcontroller BtSettingsPagePlaybackController BtSettingsPagePlaybackController bt_settings_page_playback_controller_new BtSettingsPagePlaybackControllerClass BT_SETTINGS_PAGE_PLAYBACK_CONTROLLER BT_IS_SETTINGS_PAGE_PLAYBACK_CONTROLLER BT_SETTINGS_PAGE_PLAYBACK_CONTROLLER_CLASS BT_IS_SETTINGS_PAGE_PLAYBACK_CONTROLLER_CLASS BT_SETTINGS_PAGE_PLAYBACK_CONTROLLER_GET_CLASS BT_TYPE_SETTINGS_PAGE_PLAYBACK_CONTROLLER bt_settings_page_playback_controller_get_type BtSettingsPagePlaybackControllerPrivate
btsettingspagedirectories BtSettingsPageDirectories BtSettingsPageDirectories bt_settings_page_directories_new BtSettingsPageDirectoriesClass BT_SETTINGS_PAGE_DIRECTORIES BT_IS_SETTINGS_PAGE_DIRECTORIES BT_SETTINGS_PAGE_DIRECTORIES_CLASS BT_IS_SETTINGS_PAGE_DIRECTORIES_CLASS BT_SETTINGS_PAGE_DIRECTORIES_GET_CLASS BT_TYPE_SETTINGS_PAGE_DIRECTORIES bt_settings_page_directories_get_type BtSettingsPageDirectoriesPrivate
btsettingspageshortcuts BtSettingsPageShortcuts BtSettingsPageShortcuts bt_settings_page_shortcuts_new BtSettingsPageShortcutsClass BT_SETTINGS_PAGE_SHORTCUTS BT_IS_SETTINGS_PAGE_SHORTCUTS BT_SETTINGS_PAGE_SHORTCUTS_CLASS BT_IS_SETTINGS_PAGE_SHORTCUTS_CLASS BT_SETTINGS_PAGE_SHORTCUTS_GET_CLASS BT_TYPE_SETTINGS_PAGE_SHORTCUTS bt_settings_page_shortcuts_get_type BtSettingsPageShortcutsPrivate
btsettingspageui BtSettingsPageUI BtSettingsPageUI bt_settings_page_ui_new BtSettingsPageUIClass BT_SETTINGS_PAGE_UI BT_IS_SETTINGS_PAGE_UI BT_SETTINGS_PAGE_UI_CLASS BT_IS_SETTINGS_PAGE_UI_CLASS BT_SETTINGS_PAGE_UI_GET_CLASS BT_TYPE_SETTINGS_PAGE_UI bt_settings_page_ui_get_type BtSettingsPageUIPrivate
btsignalanalysisdialog BtSignalAnalysisDialog BtSignalAnalysisDialog bt_signal_analysis_dialog_new BtSignalAnalysisDialogClass BT_SIGNAL_ANALYSIS_DIALOG BT_IS_SIGNAL_ANALYSIS_DIALOG BT_SIGNAL_ANALYSIS_DIALOG_CLASS BT_IS_SIGNAL_ANALYSIS_DIALOG_CLASS BT_SIGNAL_ANALYSIS_DIALOG_GET_CLASS BT_TYPE_SIGNAL_ANALYSIS_DIALOG bt_signal_analysis_dialog_get_type BtSignalAnalysisDialogPrivate
bttipdialog BtTipDialog BtTipDialog bt_tip_dialog_new BtTipDialogClass BT_TIP_DIALOG BT_IS_TIP_DIALOG BT_TYPE_TIP_DIALOG BT_TIP_DIALOG_CLASS BT_IS_TIP_DIALOG_CLASS BT_TIP_DIALOG_GET_CLASS bt_tip_dialog_get_type BtTipDialogPrivate
btuiresources BtUIResources BtUIResources BtUIResourcesMachineColors bt_ui_resources_new bt_ui_resources_get_icon_pixbuf_by_machine bt_ui_resources_get_machine_graphics_pixbuf_by_machine bt_ui_resources_get_wire_graphics_pixbuf_by_wire bt_ui_resources_get_icon_image_by_machine bt_ui_resources_get_icon_image_by_machine_type bt_ui_resources_get_accel_group BtUIResourcesClass BT_UI_RESOURCES BT_IS_UI_RESOURCES BT_UI_RESOURCES_CLASS BT_IS_UI_RESOURCES_CLASS BT_UI_RESOURCES_GET_CLASS BT_TYPE_UI_RESOURCES bt_ui_resources_get_type BtUIResourcesPrivate
btvolumepopup BtVolumePopup BtVolumePopup bt_volume_popup_new bt_volume_popup_show bt_volume_popup_hide BtVolumePopupClass BT_VOLUME_POPUP BT_IS_VOLUME_POPUP BT_VOLUME_POPUP_CLASS BT_IS_VOLUME_POPUP_CLASS BT_VOLUME_POPUP_GET_CLASS BT_TYPE_VOLUME_POPUP bt_volume_popup_get_type
btwavelistmodel BtWaveListModel BtWaveListModel bt_wave_list_model_get_object bt_wave_list_model_new BtWaveListModelClass BT_WAVE_LIST_MODEL BT_IS_WAVE_LIST_MODEL BT_WAVE_LIST_MODEL_CLASS BT_IS_WAVE_LIST_MODEL_CLASS BT_WAVE_LIST_MODEL_GET_CLASS BT_TYPE_WAVE_LIST_MODEL bt_wave_list_model_get_type BtWaveListModelPrivate
btwavelevellistmodel BtWavelevelListModel BtWavelevelListModel bt_wavelevel_list_model_get_object bt_wavelevel_list_model_new BtWavelevelListModelClass BT_WAVELEVEL_LIST_MODEL BT_IS_WAVELEVEL_LIST_MODEL BT_WAVELEVEL_LIST_MODEL_CLASS BT_IS_WAVELEVEL_LIST_MODEL_CLASS BT_WAVELEVEL_LIST_MODEL_GET_CLASS BT_TYPE_WAVELEVEL_LIST_MODEL bt_wavelevel_list_model_get_type BtWavelevelListModelPrivate
btwaveformviewer BtWaveformViewer BtWaveformViewer bt_waveform_viewer_new bt_waveform_viewer_set_wave BtWaveformViewerClass BT_WAVEFORM_VIEWER BT_IS_WAVEFORM_VIEWER BT_WAVEFORM_VIEWER_CLASS BT_IS_WAVEFORM_VIEWER_CLASS BT_TYPE_WAVEFORM_VIEWER bt_waveform_viewer_get_type
btwirecanvasitem BtWireCanvasItem BtWireCanvasItem bt_wire_canvas_item_new bt_wire_show_analyzer_dialog BtWireCanvasItemClass BT_WIRE_CANVAS_ITEM BT_IS_WIRE_CANVAS_ITEM BT_WIRE_CANVAS_ITEM_CLASS BT_IS_WIRE_CANVAS_ITEM_CLASS BT_WIRE_CANVAS_ITEM_GET_CLASS BT_TYPE_WIRE_CANVAS_ITEM bt_wire_canvas_item_get_type BtWireCanvasItemPrivate
gtkscrolledsyncwindow GtkScrolledSyncWindow GtkScrolledSyncWindow gtk_scrolled_sync_window_new gtk_scrolled_sync_window_set_hadjustment gtk_scrolled_sync_window_set_vadjustment gtk_scrolled_sync_window_get_hadjustment gtk_scrolled_sync_window_get_vadjustment gtk_scrolled_sync_window_add_with_viewport gtk_scrolled_sync_window_set_kinetic_scrolling gtk_scrolled_sync_window_get_kinetic_scrolling gtk_scrolled_sync_window_set_capture_button_press gtk_scrolled_sync_window_get_capture_button_press GtkScrolledSyncWindowClass GTK_SCROLLED_SYNC_WINDOW GTK_IS_SCROLLED_SYNC_WINDOW GTK_SCROLLED_SYNC_WINDOW_CLASS GTK_IS_SCROLLED_SYNC_WINDOW_CLASS GTK_SCROLLED_SYNC_WINDOW_GET_CLASS GTK_TYPE_SCROLLED_SYNC_WINDOW gtk_scrolled_sync_window_get_type GtkScrolledSyncWindowPrivate
gtkvumeter GtkVUMeter GtkVUMeter gtk_vumeter_new gtk_vumeter_set_min_max gtk_vumeter_set_levels gtk_vumeter_set_scale GtkVUMeterClass GTK_VUMETER GTK_IS_VUMETER GTK_VUMETER_CLASS GTK_IS_VUMETER_CLASS GTK_VUMETER_GET_CLASS GTK_TYPE_VUMETER gtk_vumeter_get_type
btedit btedit # gtk extras gdk_pixbuf_new_from_theme gtk_toolbar_get_style_from_string gtk_target_table_make gtk_show_uri_simple bt_toolbar_style_changed bt_label_value_changed gtk_tool_button_new_from_icon_name gtk_toggle_tool_button_new_from_icon_name BOX_BORDER LABEL_PADDING SCREEN_BORDER_HEIGHT # testing bt_edit_ui_config BT_EDIT_UI_CONFIG # gtk extras GTK_CHECK_CAST GTK_CHECK_CLASS_CAST GTK_CHECK_CLASS_TYPE GTK_CHECK_GET_CLASS GTK_CHECK_TYPE GTK_COMBO_BOX_TEXT GtkComboBoxText gtk_combo_box_text_append_text gtk_combo_box_text_get_active_text gtk_combo_box_text_new gtk_combo_box_text_remove gtk_dialog_get_action_area gtk_dialog_get_content_area gtk_menu_tool_button_set_arrow_tooltip_text gtk_selection_data_get_data gtk_selection_data_get_target gtk_tool_item_set_tooltip_text gtk_vumeter_set_peaks_falloff gtk_widget_get_allocation gtk_widget_get_mapped gtk_widget_get_realized gtk_widget_get_window gtk_widget_grab_focus_savely gtk_widget_is_toplevel gtk_widget_set_can_focus gtk_widget_set_has_window gtk_widget_set_realized gtk_widget_set_tooltip_text gtk_menu_item_add_accel # gstreamer extras GST_CAT_DEFAULT # gettext extras _ N_ bindtextdomain dgettext gettext textdomain
buzztrax-0.10.2/docs/reference/bt-edit/buzztrax-edit.xml0000644042355400116100000000376412144654421023553 0ustar00ensoniceng00000000000000 the buzztrax project Development and documentation. buzztrax buzztrax-edit 1 Buzztrax Manual Pages buzztrax-edit work with buzztrax songs buzztrax-edit options Description buzztrax-edit is the graphical buzztrax song editor. Invocation buzztrax-edit without any argumants launches the UI. Alternatively it takes a mandatory argument that specifies the command and extra options depending on the command. Options , command-name The command to exeute, one of: load , song-filename The input filename. This should be a song file buzztrax can handle. , Print brief help and exit. Print version and exit. buzztrax-0.10.2/docs/reference/bt-gst/0000755042355400116100000000000012640736116020056 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/buzztrax-gst-overrides.txt0000644042355400116100000000000012461715224025267 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html/0000755042355400116100000000000012640736116021022 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_or__a_b.svg0000644042355400116100000003615712640736116026612 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Or: A|B buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtCombine.html0000644042355400116100000003454212640736116024240 0ustar00ensoniceng00000000000000 GstBtCombine: GStreamer Buzztrax Reference Manual

GstBtCombine

GstBtCombine — combine/mixing module

Properties

GstBtCombineType combine Read / Write

Types and Values

Object Hierarchy

    GEnum
    ╰── GstBtCombineType
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstBtCombine

Includes

#include <libgstbuzztrax/combine.h>

Description

A module that combines 2 buffers using different (“combine”) modes.

Combine modes

Examples of combining a saw-wave with another saw wave of double frequency.

mix mul sub max min and or xor

Functions

gstbt_combine_new ()

GstBtCombine *
gstbt_combine_new (void);

Create a new instance

Returns

the new instance or NULL in case of an error


gstbt_combine_trigger ()

void
gstbt_combine_trigger (GstBtCombine *self);

Reset state. Typically called for new notes.

Parameters

self

the combine module

 

gstbt_combine_process ()

void
gstbt_combine_process (GstBtCombine *self,
                       guint size,
                       gint16 *d1,
                       gint16 *d2);

Process size samples of audio from d1 and d2 . Stores the result into d1 .

Parameters

self

the oscillator

 

size

number of sample to filter

 

d1

buffer with the audio

 

d2

buffer with the audio

 

Types and Values

enum GstBtCombineType

Combine types.

Members

GSTBT_COMBINE_MIX

add both signals (A+B)

 

GSTBT_COMBINE_MUL

multiply signals (A*B) (amplitude modulation)

 

GSTBT_COMBINE_SUB

subtract signals (A-B)

 

GSTBT_COMBINE_MAX

max of both signals (max(A,B))

 

GSTBT_COMBINE_MIN

min of both signals (min(A,B))

 

GSTBT_COMBINE_AND

logical and of both signals (A&B)

 

GSTBT_COMBINE_OR

logical or of both signals (A|B)

 

GSTBT_COMBINE_XOR

logical xor of both signals (A^B)

 

GSTBT_COMBINE_COUNT

number of combine modes, this can change with new releases

 

struct GstBtCombine

struct GstBtCombine {
  /* parameters */
  GstBtCombineType type;
};

Class instance data.

Members

GstBtCombineType type;

combine type

 

Property Details

The “combine” property

  “combine”                  GstBtCombineType

Type of combine operation.

Flags: Read / Write

Default value: Mix: A+B

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_pink_noise.svg0000644042355400116100000003615712640736116027703 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Pink noise buzztrax-0.10.2/docs/reference/bt-gst/html/ch02.html0000644042355400116100000000433512640736116022451 0ustar00ensoniceng00000000000000 GStreamer Buzztrax interfaces: GStreamer Buzztrax Reference Manual

GStreamer Buzztrax interfaces

GstBtChildBin — helper interface for multi child gstreamer elements
GstBtPropertyMeta — helper interface for extended gstreamer element meta data
GstBtTempo — helper interface for tempo synced gstreamer elements
buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtEnvelopeD.html0000644042355400116100000003114012640736116024534 0ustar00ensoniceng00000000000000 GstBtEnvelopeD: GStreamer Buzztrax Reference Manual

GstBtEnvelopeD

GstBtEnvelopeD — decay envelope generator

Properties

gdouble curve Read / Write
gdouble decay Read / Write
gdouble floor-level Read / Write
gdouble peak-level Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstControlSource
                ╰── GstTimedValueControlSource
                    ╰── GstInterpolationControlSource
                        ╰── GstBtEnvelope
                            ╰── GstBtEnvelopeD

Includes

#include <libgstbuzztrax/envelope-d.h>

Description

Simple decay envelope. Does a linear fade between “peak-level” and “floor-level” by default (“curve” = 0.5). For smaller values of “curve” the transition starts quicker and then slows down and for values > than 0.5 it is the other way around. Values of 0.0 or 1.0 don't make sense itself and would result in only the “floor-level” (for 0.0) or the “peak-level” (for 1.0) to be used.

curve=0.00 curve=0.25 curve=0.50 curve=0.75 curve=1.00

Functions

gstbt_envelope_d_new ()

GstBtEnvelopeD *
gstbt_envelope_d_new (void);

Create a new instance

Returns

the new instance or NULL in case of an error


gstbt_envelope_d_setup ()

void
gstbt_envelope_d_setup (GstBtEnvelopeD *self,
                        gint samplerate);

Initialize the envelope for a new cycle.

Parameters

self

the envelope

 

samplerate

the audio sampling rate

 

Types and Values

struct GstBtEnvelopeD

struct GstBtEnvelopeD;

Class instance data.

Property Details

The “curve” property

  “curve”                    gdouble

Curve of the envelope, 0.5=linear.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5


The “decay” property

  “decay”                    gdouble

Decay of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “floor-level” property

  “floor-level”              gdouble

Lowest level of the envelope.

Flags: Read / Write

Allowed values: >= 0

Default value: 0


The “peak-level” property

  “peak-level”               gdouble

Highest level of the envelope.

Flags: Read / Write

Allowed values: >= 0

Default value: 1.79769e+308

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_sample_and_hold.svg0000644042355400116100000003647412640736116030660 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Sample and Hold buzztrax-0.10.2/docs/reference/bt-gst/html/home.png0000644042355400116100000000040012640736116022452 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME &IDAT8ҽ Aߞf`n v`6`/`Yܡ`f&k$,} 0b+ԸaQW~b O e{y N[L}.piBzmm o.I]7^[;%:VIENDB`buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtChildBin.html0000644042355400116100000003152512640736116024336 0ustar00ensoniceng00000000000000 GstBtChildBin: GStreamer Buzztrax Reference Manual

GstBtChildBin

GstBtChildBin — helper interface for multi child gstreamer elements

Properties

gulong children Read / Write

Types and Values

Object Hierarchy

    GInterface
    ╰── GstBtChildBin

Prerequisites

GstBtChildBin requires GstChildProxy and GObject.

Known Implementations

GstBtChildBin is implemented by GstBtSidSyn.

Includes

#include <libgstbuzztrax/childbin.h>

Description

This interface provides an extension to the GstChildProxy interface, which is useful for classes that have identical children.

The interface provides a “children” property for the number of children as well as two methods to add and remove children.

Functions

gstbt_child_bin_add_child ()

gboolean
gstbt_child_bin_add_child (GstBtChildBin *self,
                           GstObject *child);

Add the given child to the list of children.

Parameters

self

a GObject that implements GstBtChildBin

 

child

the GstObject to add as a child

 

Returns

TRUE for success


gstbt_child_bin_remove_child ()

gboolean
gstbt_child_bin_remove_child (GstBtChildBin *self,
                              GstObject *child);

Remove the given child from the list of children.

Parameters

self

a GObject that implements GstBtChildBin

 

child

the GstObject to remove from the children

 

Returns

TRUE for success

Types and Values

struct GstBtChildBinInterface

struct GstBtChildBinInterface {
  GTypeInterface parent;

  gboolean (*add_child) (GstBtChildBin *self, GstObject *child);
  gboolean (*remove_child) (GstBtChildBin *self, GstObject *child);
};

Interface structure.

Members

GTypeInterface parent;

parent type

 

add_child ()

vmethod for adding a child to the bin

 

remove_child ()

vmethod for removing a child from the bin

 

GstBtChildBin

typedef struct _GstBtChildBin GstBtChildBin;

Opaque interface handle.

Property Details

The “children” property

  “children”                 gulong

the number of children this element uses.

Flags: Read / Write

Allowed values: >= 1

buzztrax-0.10.2/docs/reference/bt-gst/html/buzztrax-gst-GstBtMusicEnums.html0000644042355400116100000007410112640736116027431 0ustar00ensoniceng00000000000000 GstBtMusicEnums: GStreamer Buzztrax Reference Manual

GstBtMusicEnums

GstBtMusicEnums — various enum types

Types and Values

Object Hierarchy

    GEnum
    ├── GstBtNote
    ├── GstBtTriggerSwitch
    ╰── GstBtWaveIndex

Includes

#include <libgstbuzztrax/musicenums.h>

Description

Music/Audio related enumerations.

Functions

Types and Values

enum GstBtTriggerSwitch

Switch event commands.

Members

GSTBT_TRIGGER_SWITCH_OFF

turn switch off

 

GSTBT_TRIGGER_SWITCH_ON

turn switch on

 

GSTBT_TRIGGER_SWITCH_EMPTY

do not change switch

 

enum GstBtNote

Note numbers.

Members

GSTBT_NOTE_OFF

turn note off

 

GSTBT_NOTE_NONE

no note

 

GSTBT_NOTE_C_0

c-0

 

GSTBT_NOTE_CIS_0

c#0

 

GSTBT_NOTE_D_0

d-0

 

GSTBT_NOTE_DIS_0

d#0

 

GSTBT_NOTE_E_0

e-0

 

GSTBT_NOTE_F_0

f-0

 

GSTBT_NOTE_FIS_0

f#0

 

GSTBT_NOTE_G_0

G-0

 

GSTBT_NOTE_GIS_0

g#0

 

GSTBT_NOTE_A_0

a-0

 

GSTBT_NOTE_AIS_0

a#0

 

GSTBT_NOTE_B_0

b-0

 

GSTBT_NOTE_C_1

c-1

 

GSTBT_NOTE_CIS_1

c#1

 

GSTBT_NOTE_D_1

d-1

 

GSTBT_NOTE_DIS_1

d#1

 

GSTBT_NOTE_E_1

e-1

 

GSTBT_NOTE_F_1

f-1

 

GSTBT_NOTE_FIS_1

f#1

 

GSTBT_NOTE_G_1

G-1

 

GSTBT_NOTE_GIS_1

g#1

 

GSTBT_NOTE_A_1

a-1

 

GSTBT_NOTE_AIS_1

a#1

 

GSTBT_NOTE_B_1

b-1

 

GSTBT_NOTE_C_2

c-2

 

GSTBT_NOTE_CIS_2

c#2

 

GSTBT_NOTE_D_2

d-2

 

GSTBT_NOTE_DIS_2

d#2

 

GSTBT_NOTE_E_2

e-2

 

GSTBT_NOTE_F_2

f-2

 

GSTBT_NOTE_FIS_2

f#2

 

GSTBT_NOTE_G_2

G-2

 

GSTBT_NOTE_GIS_2

g#2

 

GSTBT_NOTE_A_2

a-2

 

GSTBT_NOTE_AIS_2

a#2

 

GSTBT_NOTE_B_2

b-2

 

GSTBT_NOTE_C_3

c-3

 

GSTBT_NOTE_CIS_3

c#3

 

GSTBT_NOTE_D_3

d-3

 

GSTBT_NOTE_DIS_3

d#3

 

GSTBT_NOTE_E_3

e-3

 

GSTBT_NOTE_F_3

f-3

 

GSTBT_NOTE_FIS_3

f#3

 

GSTBT_NOTE_G_3

G-3

 

GSTBT_NOTE_GIS_3

g#3

 

GSTBT_NOTE_A_3

a-3

 

GSTBT_NOTE_AIS_3

a#3

 

GSTBT_NOTE_B_3

b-3

 

GSTBT_NOTE_C_4

c-4

 

GSTBT_NOTE_CIS_4

c#4

 

GSTBT_NOTE_D_4

d-4

 

GSTBT_NOTE_DIS_4

d#4

 

GSTBT_NOTE_E_4

e-4

 

GSTBT_NOTE_F_4

f-4

 

GSTBT_NOTE_FIS_4

f#4

 

GSTBT_NOTE_G_4

G-4

 

GSTBT_NOTE_GIS_4

g#4

 

GSTBT_NOTE_A_4

a-4

 

GSTBT_NOTE_AIS_4

a#4

 

GSTBT_NOTE_B_4

b-4

 

GSTBT_NOTE_C_5

c-5

 

GSTBT_NOTE_CIS_5

c#5

 

GSTBT_NOTE_D_5

d-5

 

GSTBT_NOTE_DIS_5

d#5

 

GSTBT_NOTE_E_5

e-5

 

GSTBT_NOTE_F_5

f-5

 

GSTBT_NOTE_FIS_5

f#5

 

GSTBT_NOTE_G_5

G-5

 

GSTBT_NOTE_GIS_5

g#5

 

GSTBT_NOTE_A_5

a-5

 

GSTBT_NOTE_AIS_5

a#5

 

GSTBT_NOTE_B_5

b-5

 

GSTBT_NOTE_C_6

c-6

 

GSTBT_NOTE_CIS_6

c#6

 

GSTBT_NOTE_D_6

d-6

 

GSTBT_NOTE_DIS_6

d#6

 

GSTBT_NOTE_E_6

e-6

 

GSTBT_NOTE_F_6

f-6

 

GSTBT_NOTE_FIS_6

f#6

 

GSTBT_NOTE_G_6

G-6

 

GSTBT_NOTE_GIS_6

g#6

 

GSTBT_NOTE_A_6

a-6

 

GSTBT_NOTE_AIS_6

a#6

 

GSTBT_NOTE_B_6

b-6

 

GSTBT_NOTE_C_7

c-7

 

GSTBT_NOTE_CIS_7

c#7

 

GSTBT_NOTE_D_7

d-7

 

GSTBT_NOTE_DIS_7

d#7

 

GSTBT_NOTE_E_7

e-7

 

GSTBT_NOTE_F_7

f-7

 

GSTBT_NOTE_FIS_7

f#7

 

GSTBT_NOTE_G_7

G-7

 

GSTBT_NOTE_GIS_7

g#7

 

GSTBT_NOTE_A_7

a-7

 

GSTBT_NOTE_AIS_7

a#7

 

GSTBT_NOTE_B_7

b-7

 

GSTBT_NOTE_C_8

c-8

 

GSTBT_NOTE_CIS_8

c#8

 

GSTBT_NOTE_D_8

d-8

 

GSTBT_NOTE_DIS_8

d#8

 

GSTBT_NOTE_E_8

e-8

 

GSTBT_NOTE_F_8

f-8

 

GSTBT_NOTE_FIS_8

f#8

 

GSTBT_NOTE_G_8

G-8

 

GSTBT_NOTE_GIS_8

g#8

 

GSTBT_NOTE_A_8

a-8

 

GSTBT_NOTE_AIS_8

a#8

 

GSTBT_NOTE_B_8

b-8

 

GSTBT_NOTE_C_9

c-9

 

GSTBT_NOTE_CIS_9

c#9

 

GSTBT_NOTE_D_9

d-9

 

GSTBT_NOTE_DIS_9

d#9

 

GSTBT_NOTE_E_9

e-9

 

GSTBT_NOTE_F_9

f-9

 

GSTBT_NOTE_FIS_9

f#9

 

GSTBT_NOTE_G_9

G-9

 

GSTBT_NOTE_GIS_9

g#9

 

GSTBT_NOTE_A_9

a-9

 

GSTBT_NOTE_AIS_9

a#9

 

GSTBT_NOTE_B_9

b-9

 

GSTBT_NOTE_LAST

upper note value limmit

 

GstBtWaveIndex

typedef guint GstBtWaveIndex;

The BtWavetable index entries. A value of 0 means no wave in use.

buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtWaveReplay.html0000644042355400116100000001724012640736116024737 0ustar00ensoniceng00000000000000 GstBtWaveReplay: GStreamer Buzztrax Reference Manual

GstBtWaveReplay

GstBtWaveReplay — wavetable player

Properties

GstBtWaveIndex wave Read / Write
gpointer wave-callbacks Read / Write
guint wave-level Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstBtAudioSynth
                        ╰── GstBtWaveReplay

Implemented Interfaces

GstBtWaveReplay implements GstPreset and GstBtTempo.

Description

Plays wavetable assets pre-loaded by the application. Unlike in tracker machines, the wave is implicitly triggered at the start and one can seek in the song without loosing the audio.

Functions

Types and Values

struct GstBtWaveReplay

struct GstBtWaveReplay;

Class instance data.

Property Details

The “wave” property

  “wave”                     GstBtWaveIndex

Wave index.

Flags: Read / Write

Default value: no wave


The “wave-callbacks” property

  “wave-callbacks”           gpointer

The wave-table access callbacks.

Flags: Read / Write


The “wave-level” property

  “wave-level”               guint

Wave level index.

Flags: Read / Write

Allowed values: <= 100

Default value: 0

buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtToneConversion.html0000644042355400116100000004612712640736116025641 0ustar00ensoniceng00000000000000 GstBtToneConversion: GStreamer Buzztrax Reference Manual

GstBtToneConversion

GstBtToneConversion — helper class for tone unit conversion

Properties

Types and Values

Object Hierarchy

    GEnum
    ╰── GstBtToneConversionTuning
    GObject
    ╰── GstBtToneConversion

Includes

#include <libgstbuzztrax/toneconversion.h>

Description

An instance of this class can translate a musical note to a frequency, while taking a specific tuning into account. It also provides conversion betwen notes as numbers and strings.

Functions

gstbt_tone_conversion_new ()

GstBtToneConversion *
gstbt_tone_conversion_new (GstBtToneConversionTuning tuning);

Create a new instance of a note to frequency translator, that will use the given tuning .

Parameters

tuning

the GstBtToneConversionTuning to use

 

Returns

a new GstBtToneConversion translator


gstbt_tone_conversion_translate_from_string ()

gdouble
gstbt_tone_conversion_translate_from_string
                               (GstBtToneConversion *self,
                                gchar *note);

Converts the string representation of a musical note such as 'C-3' or 'd#4' to a frequency in Hz.

Parameters

self

a GstBtToneConversion

 

note

a musical note in string representation

 

Returns

the frequency of the note or 0.0 in case of an error


gstbt_tone_conversion_translate_from_number ()

gdouble
gstbt_tone_conversion_translate_from_number
                               (GstBtToneConversion *self,
                                guint note);

Converts the musical note number to a frequency in Hz.

Parameters

self

a GstBtToneConversion

 

note

a musical note (GstBtNote)

 

Returns

the frequency of the note or 0.0 in case of an error


gstbt_tone_conversion_note_string_2_number ()

guint
gstbt_tone_conversion_note_string_2_number
                               (const gchar *note);

Converts the string representation of a musical note such as 'C-3' or 'd#4' to a note number.

Parameters

note

a musical note in string representation

 

Returns

the note number or 0 in case of an error.


gstbt_tone_conversion_note_number_2_string ()

const gchar *
gstbt_tone_conversion_note_number_2_string
                               (guint note);

Converts the numerical number of a note to a string. A value of 1 for note represents 'c-0'. The highest supported value is 'b-9' (or 'h-9') which is 1+(9*16)+11 (1 octave has 12 tones, 4 are left unused for easy coding).

Parameters

note

a musical note as number

 

Returns

the note as string or an empty string in the case of an error.


gstbt_tone_conversion_note_number_offset ()

guint
gstbt_tone_conversion_note_number_offset
                               (guint note,
                                guint semitones);

Adds the given semitone offset to the given note number.

Parameters

note

a musical note as number

 

semitones

the semitone offset

 

Returns

the note plus a semitone offset

Types and Values

enum GstBtToneConversionTuning

Supported tuning types. see http://en.wikipedia.org/wiki/Musical_tuning

Members

GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT

12 tones with equal distance

 

GSTBT_TONE_CONVERSION_JUST_INTONATION

12 tones with just intonation

 

GSTBT_TONE_CONVERSION_PYTHAGOREAN_TUNING

12 tones with pythagorean tuning

 

GSTBT_TONE_CONVERSION_COUNT

number of tunings

 

struct GstBtToneConversion

struct GstBtToneConversion;

Opaque object instance.

Property Details

The “tuning” property

  “tuning”                   GstBtToneConversionTuning

Harmonic tuning schema.

Flags: Read / Write

Default value: GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT

buzztrax-0.10.2/docs/reference/bt-gst/html/left-insensitive.png0000644042355400116100000000061312640736116025020 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEƫqIDAT8͒NQ@pds`*4@W@ A!Ԇ@6^ 5hxIH R`sQp̙339B|sKEQTK@۝΁i^~Wʆ`0TJ6TcYn6A ƀ~߱>}ǭs; lYkwr 5U= /" "uU=ɲlArDzp5I4^E+P3Ɯq_p ̥iUYp=#IENDB`buzztrax-0.10.2/docs/reference/bt-gst/html/right.png0000644042355400116100000000040512640736116022644 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME!GIDAT8үa?MIdEr,-hAIl ry}sX6 !9#D r$-Br$G"$;WZ&!cq \`軀O=QoufIENDB`buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtFilterSVF.html0000644042355400116100000004100612640736116024461 0ustar00ensoniceng00000000000000 GstBtFilterSVF: GStreamer Buzztrax Reference Manual

GstBtFilterSVF

GstBtFilterSVF — state variable filter

Properties

gdouble cut-off Read / Write
GstBtFilterSVFType filter Read / Write
gdouble resonance Read / Write

Types and Values

Object Hierarchy

    GEnum
    ╰── GstBtFilterSVFType
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstBtFilterSVF

Includes

#include <libgstbuzztrax/filter-svf.h>

Description

An audio filter that can work in 4 modes (“filter”).

Filter modes

Frequency response of the filter with no resonance applied

low pass hi pass band pass band stop

Frequency response of the filter with resonance applied

low pass hi pass band pass band stop

The second graphs show that applying “resonance” when using GSTBT_FILTER_SVF_BANDSTOP mode does not make sense, as the resonance is filling the notch.

Functions

gstbt_filter_svf_new ()

GstBtFilterSVF *
gstbt_filter_svf_new (void);

Create a new instance

Returns

the new instance or NULL in case of an error


gstbt_filter_svf_trigger ()

void
gstbt_filter_svf_trigger (GstBtFilterSVF *self);

Reset filter state. Typically called for new notes.

Parameters

self

the filter

 

gstbt_filter_svf_process ()

void
gstbt_filter_svf_process (GstBtFilterSVF *self,
                          guint size,
                          gint16 *data);

Process size samples of audio from data and store them into data .

Parameters

self

the oscillator

 

size

number of sample to filter

 

data

buffer with the audio

 

Types and Values

enum GstBtFilterSVFType

Filter types.

Members

GSTBT_FILTER_SVF_NONE

no filtering

 

GSTBT_FILTER_SVF_LOWPASS

low pass

 

GSTBT_FILTER_SVF_HIPASS

high pass

 

GSTBT_FILTER_SVF_BANDPASS

band pass

 

GSTBT_FILTER_SVF_BANDSTOP

band stop (notch)

 

GSTBT_FILTER_SVF_COUNT

number of filter modes, this can change with new releases

 

struct GstBtFilterSVF

struct GstBtFilterSVF {
  /* parameters */
  GstBtFilterSVFType type;
  gdouble cutoff, resonance;
};

Class instance data.

Members

GstBtFilterSVFType type;

filter type

 

gdouble cutoff;

filter cutoff frequency

 

gdouble resonance;

filter resonance

 

Property Details

The “cut-off” property

  “cut-off”                  gdouble

Audio filter cut-off frequency.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.8


The “filter” property

  “filter”                   GstBtFilterSVFType

Type of audio filter.

Flags: Read / Write

Default value: LowPass


The “resonance” property

  “resonance”                gdouble

Audio filter resonance.

Flags: Read / Write

Allowed values: [0.7,25]

Default value: 0.8

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_filter-svf_hipass_cut-off=0.5_resonance=5.0.svg0000644042355400116100000006461312640736116033504 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -180 -160 -140 -120 -100 -80 -60 1 10 100 1000 10000 gnuplot_plot_1 HiPass cut-off=0.5 resonance=5.0 buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_violet_noise.svg0000644042355400116100000003616112640736116030237 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Violet noise lt-bt_gst_filter-svf_lowpass_cut-off=0.5_resonance=0.7.svg0000644042355400116100000010764712640736116033635 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -104 -102 -100 -98 -96 -94 -92 -90 -88 -86 -84 1 10 100 1000 10000 gnuplot_plot_1 LowPass cut-off=0.5 resonance=0.7 buzztrax-0.10.2/docs/reference/bt-gst/html/left.png0000644042355400116100000000040612640736116022462 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME,`m;IDAT8үa?DAPY\$[p+IIMlf('}Mpy{_ޥ}^q xZ <=Yj) <04\~+Pl#",Qϑp Iǐlsw>[/]_i03IENDB`buzztrax-0.10.2/docs/reference/bt-gst/html/ch03.html0000644042355400116100000000576512640736116022462 0ustar00ensoniceng00000000000000 GStreamer Buzztrax elements: GStreamer Buzztrax Reference Manual

GStreamer Buzztrax elements

GstBtAudioDelay — audio echo effect
GstBml — buzzmachine wrapper
BtDec — buzztrax song playback bin
GstBtEBeats — electric drum audio synthesizer
GstBtFluidSynth — FluidSynth GStreamer wrapper
GstBtSidSyn — c64 sid synthesizer
GstBtSimSyn — simple monophonic audio synthesizer
GstBtWaveReplay — wavetable player
GstBtWaveTabSyn — wavetable synthesizer
buzztrax-0.10.2/docs/reference/bt-gst/html/hierarchy.html0000644042355400116100000002410012640736116023663 0ustar00ensoniceng00000000000000 Object Hierarchy: GStreamer Buzztrax Reference Manual

Object Hierarchy

    GObject
    ├── GInitiallyUnowned
       ╰── GstObject
           ├── GstElement
              ├── BtDec
              ├── GstBaseTransform
                 ╰── GstBtAudioDelay
              ╰── GstBaseSrc
                  ╰── GstBtAudioSynth
                      ├── GstBtEBeats
                      ├── GstBtFluidSynth
                      ├── GstBtSidSyn
                      ├── GstBtSimSyn
                      ├── GstBtWaveReplay
                      ╰── GstBtWaveTabSyn
           ├── GstControlSource
              ╰── GstTimedValueControlSource
                  ╰── GstInterpolationControlSource
                      ╰── GstBtEnvelope
                          ├── GstBtEnvelopeAD
                          ├── GstBtEnvelopeADSR
                          ╰── GstBtEnvelopeD
           ├── GstBtCombine
           ├── GstBtFilterSVF
           ├── GstBtOscSynth
           ╰── GstBtSidSynV
    ├── GstBtDelay
    ├── GstBtOscWave
    ╰── GstBtToneConversion
    GInterface
    ├── GstBtTempo
    ├── GstBtChildBin
    ╰── GstBtPropertyMeta
    GEnum
    ├── GstBtCombineType
    ├── GstBtFilterSVFType
    ├── GstBtNote
    ├── GstBtOscSynthNoiseWave
    ├── GstBtOscSynthTonalWave
    ├── GstBtOscSynthWave
    ├── GstBtToneConversionTuning
    ├── GstBtTriggerSwitch
    ├── GstBtWaveIndex
    ├── GstBtEBeatsFilterRouting
    ├── GstBtFluidSynthInterpolationMode
    ├── GstBtFluidSynthChorusWaveform
    ├── GstBtSidSynChip
    ├── GstBtSidSynWave
    ╰── GstBtSidSynEffect
buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_filter-svf_hipass_cut-off=0.5_resonance=0.7.svg0000644042355400116100000006576612640736116033520 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 1 10 100 1000 10000 gnuplot_plot_1 HiPass cut-off=0.5 resonance=0.7 buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtOscSynth.html0000644042355400116100000005540312640736116024435 0ustar00ensoniceng00000000000000 GstBtOscSynth: GStreamer Buzztrax Reference Manual

GstBtOscSynth

GstBtOscSynth — synthetic waveform oscillator

Properties

gdouble frequency Write
gint sample-rate Read / Write
gdouble volume Write
GstBtOscSynthWave wave Read / Write

Object Hierarchy

    GEnum
    ├── GstBtOscSynthNoiseWave
    ├── GstBtOscSynthTonalWave
    ╰── GstBtOscSynthWave
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstBtOscSynth

Includes

#include <libgstbuzztrax/osc-synth.h>

Description

An audio generator producing classic oscillator waveforms.

One can attach GstControlSources to some of the patameters to modulate them.

Waveforms

Sine wave Square wave Saw wave Triangle wave Silence White noise Pink noise White Gaussian noise Red (brownian) noise Blue noise Violet noise Sample & Hold

Functions

gstbt_osc_synth_new ()

GstBtOscSynth *
gstbt_osc_synth_new (void);

Create a new instance

Returns

the new instance


gstbt_osc_synth_trigger ()

void
gstbt_osc_synth_trigger (GstBtOscSynth *self);

Reset oscillator state. Typically called for new notes.

Parameters

self

the oscillator

 

gstbt_osc_synth_process ()

void
gstbt_osc_synth_process (GstBtOscSynth *self,
                         guint size,
                         gint16 *data);

Generate size samples of audio and store them into data .

Parameters

self

the oscillator

 

size

number of sample to generate

 

data

buffer to hold the audio

 

Types and Values

enum GstBtOscSynthWave

Oscillator wave forms.

Members

GSTBT_OSC_SYNTH_WAVE_SINE

sine wave

 

GSTBT_OSC_SYNTH_WAVE_SQUARE

square wave

 

GSTBT_OSC_SYNTH_WAVE_SAW

saw wave

 

GSTBT_OSC_SYNTH_WAVE_TRIANGLE

triangle wave

 

GSTBT_OSC_SYNTH_WAVE_SILENCE

silence

 

GSTBT_OSC_SYNTH_WAVE_WHITE_NOISE

white noise

 

GSTBT_OSC_SYNTH_WAVE_PINK_NOISE

pink noise

 

GSTBT_OSC_SYNTH_WAVE_GAUSSIAN_WHITE_NOISE

white (zero mean) Gaussian noise; volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.

 

GSTBT_OSC_SYNTH_WAVE_RED_NOISE

red (brownian) noise

 

GSTBT_OSC_SYNTH_WAVE_BLUE_NOISE

spectraly inverted pink noise

 

GSTBT_OSC_SYNTH_WAVE_VIOLET_NOISE

spectraly inverted red (brownian) noise

 

GSTBT_OSC_SYNTH_WAVE_S_AND_H

sample and hold. Create an random value and hold it for a time specified by “frequency”.

 

GSTBT_OSC_SYNTH_WAVE_COUNT

number of waves, this can change with new releases

 

enum GstBtOscSynthNoiseWave

Noise oscillator wave forms from GstBtOscSynthWave.

Members

GSTBT_OSC_SYNTH_WAVE_SILENCE

silence

 

GSTBT_OSC_SYNTH_WAVE_WHITE_NOISE

white noise

 

GSTBT_OSC_SYNTH_WAVE_PINK_NOISE

pink noise

 

GSTBT_OSC_SYNTH_WAVE_GAUSSIAN_WHITE_NOISE

white (zero mean) Gaussian noise; volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.

 

GSTBT_OSC_SYNTH_WAVE_RED_NOISE

red (brownian) noise

 

GSTBT_OSC_SYNTH_WAVE_BLUE_NOISE

spectraly inverted pink noise

 

GSTBT_OSC_SYNTH_WAVE_VIOLET_NOISE

spectraly inverted red (brownian) noise

 

enum GstBtOscSynthTonalWave

Tonal oscillator wave forms from GstBtOscSynthWave.

Members

GSTBT_OSC_SYNTH_WAVE_SILENCE

silence

 

GSTBT_OSC_SYNTH_WAVE_SINE

sine wave

 

GSTBT_OSC_SYNTH_WAVE_SQUARE

square wave

 

GSTBT_OSC_SYNTH_WAVE_SAW

saw wave

 

GSTBT_OSC_SYNTH_WAVE_TRIANGLE

triangle wave

 

GSTBT_OSC_SYNTH_WAVE_S_AND_H

sample and hold. Create an random value and hold it for a time specified by “frequency”.

 

struct GstBtOscSynth

struct GstBtOscSynth;

Class instance data.

Property Details

The “frequency” property

  “frequency”                gdouble

Frequency of tone.

Flags: Write

Allowed values: >= 0

Default value: 0


The “sample-rate” property

  “sample-rate”              gint

Sampling rate.

Flags: Read / Write

Allowed values: >= 1

Default value: 44100


The “volume” property

  “volume”                   gdouble

Volume of tone.

Flags: Write

Allowed values: [0,1]

Default value: 0


The “wave” property

  “wave”                     GstBtOscSynthWave

Oscillator waveform.

Flags: Read / Write

Default value: Sine

buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtOscWave.html0000644042355400116100000002372612640736116024235 0ustar00ensoniceng00000000000000 GstBtOscWave: GStreamer Buzztrax Reference Manual

GstBtOscWave

GstBtOscWave — wavetable oscillator

Properties

guint64 duration Read
gdouble frequency Write
GstBtWaveIndex wave Read / Write
gpointer wave-callbacks Read / Write
guint wave-level Read / Write

Types and Values

struct GstBtOscWave

Object Hierarchy

    GObject
    ╰── GstBtOscWave

Includes

#include <libgstbuzztrax/osc-wave.h>

Description

An audio waveform generator that read from the applications wave-table.

Functions

gstbt_osc_wave_setup ()

void
gstbt_osc_wave_setup (GstBtOscWave *self);

Prepare the oscillator. Should be called before first use to ensure it is configured for the default parameters.

Parameters

self

the oscillator

 

gstbt_osc_wave_new ()

GstBtOscWave *
gstbt_osc_wave_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct GstBtOscWave

struct GstBtOscWave;

Class instance data.

Property Details

The “duration” property

  “duration”                 guint64

Duration in samples at the given rate.

Flags: Read

Default value: 0


The “frequency” property

  “frequency”                gdouble

Frequency of tone (0.0 for original).

Flags: Write

Allowed values: >= 0

Default value: 0


The “wave” property

  “wave”                     GstBtWaveIndex

Wave index.

Flags: Read / Write

Default value: no wave


The “wave-callbacks” property

  “wave-callbacks”           gpointer

The wave-table access callbacks.

Flags: Read / Write


The “wave-level” property

  “wave-level”               guint

Wave level index.

Flags: Read / Write

Allowed values: <= 100

Default value: 0

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_square.svg0000644042355400116100000003615312640736116027041 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Square buzztrax-0.10.2/docs/reference/bt-gst/html/BtDec.html0000644042355400116100000001207712640736116022700 0ustar00ensoniceng00000000000000 BtDec: GStreamer Buzztrax Reference Manual

BtDec

BtDec — buzztrax song playback bin

Types and Values

struct BtDec

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── BtDec

Description

Element to play buzztrax songs.

Example launch line

1
gst-launch-1.0 filesrc location=$HOME/buzztrax/share/buzztrax/songs/melo3.xml ! typefind ! buzztrax-dec ! autoaudiosink
Play a buzztrax song.

Functions

Types and Values

struct BtDec

struct BtDec;

Class instance data.

lt-bt_gst_filter-svf_lowpass_cut-off=0.5_resonance=5.0.svg0000644042355400116100000011460612640736116033624 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -110 -105 -100 -95 -90 -85 -80 -75 -70 1 10 100 1000 10000 gnuplot_plot_1 LowPass cut-off=0.5 resonance=5.0 buzztrax-0.10.2/docs/reference/bt-gst/html/style.css0000644042355400116100000002115412640736116022677 0ustar00ensoniceng00000000000000body { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.informaltable table { border-collapse: separate; border-spacing: 1em 0.3em; border: none; } div.informaltable table td, div.informaltable table th { vertical-align: top; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } /* code listings */ .listing_code .programlisting .normal, .listing_code .programlisting .normal a, .listing_code .programlisting .number, .listing_code .programlisting .cbracket, .listing_code .programlisting .symbol { color: #555753; } .listing_code .programlisting .comment, .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ .listing_code .programlisting .function, .listing_code .programlisting .function a, .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ .listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ .listing_code .programlisting .keyword, .listing_code .programlisting .usertype, .listing_code .programlisting .type, .listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtEnvelopeAD.html0000644042355400116100000002756012640736116024650 0ustar00ensoniceng00000000000000 GstBtEnvelopeAD: GStreamer Buzztrax Reference Manual

GstBtEnvelopeAD

GstBtEnvelopeAD — attack-decay envelope generator

Properties

gdouble attack Read / Write
gdouble decay Read / Write
gdouble floor-level Read / Write
gdouble peak-level Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstControlSource
                ╰── GstTimedValueControlSource
                    ╰── GstInterpolationControlSource
                        ╰── GstBtEnvelope
                            ╰── GstBtEnvelopeAD

Includes

#include <libgstbuzztrax/envelope-ad.h>

Description

Simple attack-decay envelope. The total time for the envelope is the “decay” value. If the “attack” value is larger than the “decay” value, it will be clamped.

attack=0.25 attack=0.50 attack=0.75

Functions

gstbt_envelope_ad_new ()

GstBtEnvelopeAD *
gstbt_envelope_ad_new (void);

Create a new instance

Returns

the new instance or NULL in case of an error


gstbt_envelope_ad_setup ()

void
gstbt_envelope_ad_setup (GstBtEnvelopeAD *self,
                         gint samplerate);

Initialize the envelope for a new cycle.

Parameters

self

the envelope

 

samplerate

the audio sampling rate

 

Types and Values

struct GstBtEnvelopeAD

struct GstBtEnvelopeAD;

Class instance data.

Property Details

The “attack” property

  “attack”                   gdouble

Attack of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.001


The “decay” property

  “decay”                    gdouble

Decay of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “floor-level” property

  “floor-level”              gdouble

Lowest level of the envelope.

Flags: Read / Write

Allowed values: >= 0

Default value: 0


The “peak-level” property

  “peak-level”               gdouble

Highest level of the envelope.

Flags: Read / Write

Allowed values: >= 0

Default value: 1.79769e+308

buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtSidSyn.html0000644042355400116100000003736012640736116024076 0ustar00ensoniceng00000000000000 GstBtSidSyn: GStreamer Buzztrax Reference Manual

GstBtSidSyn

GstBtSidSyn — c64 sid synthesizer

Properties

gboolean band-pass Read / Write
gulong children Read / Write
GstBtSidSynChip chip Read / Write
guint cut-off Read / Write
gboolean hi-pass Read / Write
gboolean low-pass Read / Write
guint resonance Read / Write
GstBtToneConversionTuning tuning Read / Write
gboolean voice3-off Read / Write
guint volume Read / Write

Types and Values

Object Hierarchy

    GEnum
    ╰── GstBtSidSynChip
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstBtAudioSynth
                        ╰── GstBtSidSyn

Implemented Interfaces

GstBtSidSyn implements GstPreset, GstBtTempo, GstChildProxy, GstBtChildBin and GstBtPropertyMeta.

Description

A synthesizer based on the RSID emulation library of the C64 sound chip. The element provides a sound generator with 3 voices. It implements a couple of effects (see GstBtSidSynEffect), which are well known from trackers such as pitch slides, arpeggio and vibrato.

For technical details see:

Example launch line

1
gst-launch sidsyn num-buffers=1000 voice0::note="c-4" ! autoaudiosink
Render a beep.

Functions

Types and Values

struct GstBtSidSyn

struct GstBtSidSyn;

Class instance data.


enum GstBtSidSynChip

Chip variant.

Members

MOS6581

first chip version

 

MOS8580

second chip version

 

Property Details

The “band-pass” property

  “band-pass”                gboolean

Enable BandPass Filter.

Flags: Read / Write

Default value: FALSE


The “children” property

  “children”                 gulong

the number of children this element uses.

Flags: Read / Write

Allowed values: [3,3]


The “chip” property

  “chip”                     GstBtSidSynChip

Chip model to emulate.

Flags: Read / Write

Default value: MOS6581


The “cut-off” property

  “cut-off”                  guint

Audio filter cut-off frequency.

Flags: Read / Write

Allowed values: <= 2047

Default value: 1024


The “hi-pass” property

  “hi-pass”                  gboolean

Enable HiPass Filter.

Flags: Read / Write

Default value: FALSE


The “low-pass” property

  “low-pass”                 gboolean

Enable LowPass Filter.

Flags: Read / Write

Default value: FALSE


The “resonance” property

  “resonance”                guint

Audio filter resonance.

Flags: Read / Write

Allowed values: <= 15

Default value: 2


The “tuning” property

  “tuning”                   GstBtToneConversionTuning

Harmonic tuning.

Flags: Read / Write

Default value: GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT


The “voice3-off” property

  “voice3-off”               gboolean

Detach voice 3 from mixer.

Flags: Read / Write

Default value: FALSE


The “volume” property

  “volume”                   guint

Volume of tone.

Flags: Read / Write

Allowed values: <= 15

Default value: 15

lt-bt_gst_filter-svf_bandstop_cut-off=0.5_resonance=0.7.svg0000644042355400116100000012046512640736116033750 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -94 -92 -90 -88 -86 -84 -82 -80 1 10 100 1000 10000 gnuplot_plot_1 BandStop cut-off=0.5 resonance=0.7 buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_white_noise.svg0000644042355400116100000003624112640736116030054 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 White noise buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_sine.svg0000644042355400116100000003622712640736116026501 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Sine buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_white_gaussian_noise.svg0000644042355400116100000003624312640736116031750 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 White Gaussian noise buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_triangle.svg0000644042355400116100000003622312640736116027344 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Triangle buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtSidSynV.html0000644042355400116100000004732412640736116024225 0ustar00ensoniceng00000000000000 GstBtSidSynV: GStreamer Buzztrax Reference Manual

GstBtSidSynV

GstBtSidSynV — c64 sid synthesizer voice

Properties

guint attack Read / Write
guint decay Read / Write
GstBtSidSynEffect effect-type Write
guint effect-value Write
gboolean fiter-voice Read / Write
GstBtNote note Write
guint pulse-width Read / Write
guint release Read / Write
gboolean ringmod Read / Write
guint sustain Read / Write
gboolean sync Read / Write
gboolean test Read / Write
GstBtSidSynWave wave Read / Write

Types and Values

Object Hierarchy

    GEnum
    ├── GstBtSidSynEffect
    ╰── GstBtSidSynWave
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstBtSidSynV

Implemented Interfaces

GstBtSidSynV implements GstBtPropertyMeta.

Description

A single voice for GstBtSidSyn.

Functions

Types and Values

enum GstBtSidSynWave

Oscillator wave forms.

Members

GSTBT_SID_SYN_WAVE_TRIANGLE

triangle wave

 

GSTBT_SID_SYN_WAVE_SAW

saw wave

 

GSTBT_SID_SYN_WAVE_SAW_TRIANGLE

saw + triangle wave

 

GSTBT_SID_SYN_WAVE_PULSE

square wave with pulse width modulation

 

GSTBT_SID_SYN_WAVE_PULSE_TRIANGLE

square + triangle wave

 

GSTBT_SID_SYN_WAVE_PULSE_SAW

square + saw wave

 

GSTBT_SID_SYN_WAVE_PULSE_SAW_TRIANGLE

square + saw + triangle wave

 

GSTBT_SID_SYN_WAVE_NOISE

noise

 

enum GstBtSidSynEffect

Track effects.

Members

GSTBT_SID_SYN_EFFECT_ARPEGGIO

arpeggio

 

GSTBT_SID_SYN_EFFECT_PORTAMENTO_UP

portamento up

 

GSTBT_SID_SYN_EFFECT_PORTAMENTO_DOWN

portamento down

 

GSTBT_SID_SYN_EFFECT_PORTAMENTO

portamento

 

GSTBT_SID_SYN_EFFECT_VIBRATO

vibrato

 

GSTBT_SID_SYN_EFFECT_GLISSANDO_CONTROL

glissando control

 

GSTBT_SID_SYN_EFFECT_VIBRATO_TYPE

vibrato type

 

GSTBT_SID_SYN_EFFECT_FINETUNE

finetune

 

GSTBT_SID_SYN_EFFECT_NONE

none

 

struct GstBtSidSynV

struct GstBtSidSynV;

Class instance data.

Property Details

The “attack” property

  “attack”                   guint

Attack.

Flags: Read / Write

Allowed values: <= 15

Default value: 2


The “decay” property

  “decay”                    guint

Decay.

Flags: Read / Write

Allowed values: <= 15

Default value: 2


The “effect-type” property

  “effect-type”              GstBtSidSynEffect

Effect Type.

Flags: Write

Default value: None


The “effect-value” property

  “effect-value”             guint

Effect parameter(s).

Flags: Write

Allowed values: <= 255

Default value: 0


The “fiter-voice” property

  “fiter-voice”              gboolean

Filter Voice.

Flags: Read / Write

Default value: FALSE


The “note” property

  “note”                     GstBtNote

Musical note (e.g. 'c-3', 'd#4').

Flags: Write

Default value: NONE


The “pulse-width” property

  “pulse-width”              guint

Pulse Width.

Flags: Read / Write

Allowed values: <= 4095

Default value: 2048


The “release” property

  “release”                  guint

Release.

Flags: Read / Write

Allowed values: <= 15

Default value: 5


The “ringmod” property

  “ringmod”                  gboolean

Ringmod with voice 3.

Flags: Read / Write

Default value: FALSE


The “sustain” property

  “sustain”                  guint

Sustain.

Flags: Read / Write

Allowed values: <= 15

Default value: 10


The “sync” property

  “sync”                     gboolean

Sync with voice 3.

Flags: Read / Write

Default value: FALSE


The “test” property

  “test”                     gboolean

Control test bit.

Flags: Read / Write

Default value: FALSE


The “wave” property

  “wave”                     GstBtSidSynWave

Oscillator waveform.

Flags: Read / Write

Default value: Triangle

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-ad_attack=0.50.svg0000644042355400116100000003507412640736116027661 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 attack=0.50 buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-d_1.00.svg0000644042355400116100000003450712640736116026227 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 1.00 buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtDelay.html0000644042355400116100000003527412640736116023725 0ustar00ensoniceng00000000000000 GstBtDelay: GStreamer Buzztrax Reference Manual

GstBtDelay

GstBtDelay — delay line class

Properties

guint delaytime Read / Write

Types and Values

struct GstBtDelay

Object Hierarchy

    GObject
    ╰── GstBtDelay

Includes

#include <libgstbuzztrax/delay.h>

Description

A delay line.

Functions

gstbt_delay_new ()

GstBtDelay *
gstbt_delay_new (void);

Create a new instance.

Returns

the new instance or NULL in case of an error


gstbt_delay_start ()

void
gstbt_delay_start (GstBtDelay *self,
                   gint samplerate);

Initialize the delay line.

Parameters

self

the delay

 

samplerate

the new sampling rate

 

gstbt_delay_flush ()

void
gstbt_delay_flush (GstBtDelay *self);

Zero pending data in the delay.

Parameters

self

the delay

 

gstbt_delay_stop ()

void
gstbt_delay_stop (GstBtDelay *self);

Stop and release the delay line.

Parameters

self

the delay

 

GSTBT_DELAY_BEFORE()

#define             GSTBT_DELAY_BEFORE(self,rb_in,rb_out)

Initialize read/write pointers.

Parameters

self

the delay

 

rb_in

the write position of the ring-buffer

 

rb_out

the read position of the ring-buffer

 

GSTBT_DELAY_AFTER()

#define             GSTBT_DELAY_AFTER(self,rb_in,rb_out)

Store read/write pointers.

Parameters

self

the delay

 

rb_in

the write position of the ring-buffer

 

rb_out

the read position of the ring-buffer

 

GSTBT_DELAY_READ()

#define             GSTBT_DELAY_READ(self,rb_out,v)

Read from ring-buffer and advance the position.

Parameters

self

the delay

 

rb_out

the read position of the ring-buffer

 

v

the value from the ring-buffer

 

GSTBT_DELAY_WRITE()

#define             GSTBT_DELAY_WRITE(self,rb_in,v)

Write to v the ring-buffer and advance the position.

Parameters

self

the delay

 

rb_in

the write position of the ring-buffer

 

v

the value to write to the ring-buffer

 

Types and Values

struct GstBtDelay

struct GstBtDelay;

Class instance data.

Property Details

The “delaytime” property

  “delaytime”                guint

Time difference between two echos as milliseconds.

Flags: Read / Write

Allowed values: [1,1000]

Default value: 100

buzztrax-0.10.2/docs/reference/bt-gst/html/buzztrax-gst-GstBMLV.html0000644042355400116100000000470712640736116025620 0ustar00ensoniceng00000000000000 GstBmlV: GStreamer Buzztrax Reference Manual

GstBmlV

GstBmlV — helper object for machine voices

Description

Helper for polyphonic buzzmachines.

Functions

Types and Values

buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtFluidSynth.html0000644042355400116100000021157012640736116024753 0ustar00ensoniceng00000000000000 GstBtFluidSynth: GStreamer Buzztrax Reference Manual

GstBtFluidSynth

GstBtFluidSynth — FluidSynth GStreamer wrapper

Properties

gchar * audio-alsa-device Read / Write
gchar * audio-driver Read / Write
gchar * audio-file-endian Read / Write
gchar * audio-file-format Read / Write
gchar * audio-file-name Read / Write
gchar * audio-file-type Read / Write
gint audio-input-channels Read / Write
gint audio-jack-autoconnect Read / Write
gchar * audio-jack-id Read / Write
gint audio-jack-multi Read / Write
gchar * audio-jack-server Read / Write
gchar * audio-oss-device Read / Write
gint audio-output-channels Read / Write
gint audio-period-size Read / Write
gint audio-periods Read / Write
gint audio-pulseaudio-adjust-latency Read / Write
gchar * audio-pulseaudio-device Read / Write
gchar * audio-pulseaudio-media-role Read / Write
gchar * audio-pulseaudio-server Read / Write
gint audio-realtime-prio Read / Write
gchar * audio-sample-format Read / Write
gint chorus-count Read / Write
gdouble chorus-depth Read / Write
gboolean chorus-enable Read / Write
gdouble chorus-freq Read / Write
gdouble chorus-level Read / Write
GstBtFluidSynthChorusWaveform chorus-waveform Read / Write
gchar * instrument-patch Read / Write
GstBtFluidSynthInterpolationMode interpolation Read / Write
gchar * midi-alsa-device Read / Write
gchar * midi-alsa-seq-device Read / Write
gchar * midi-alsa-seq-id Read / Write
gchar * midi-driver Read / Write
gchar * midi-jack-id Read / Write
gchar * midi-jack-server Read / Write
gchar * midi-oss-device Read / Write
gchar * midi-portname Read / Write
gint midi-realtime-prio Read / Write
GstBtNote note Write
gint note-length Read / Write
gint note-velocity Read / Write
gint player-reset-synth Read / Write
gchar * player-timing-source Read / Write
gint program Read / Write
gdouble reverb-damp Read / Write
gboolean reverb-enable Read / Write
gdouble reverb-level Read / Write
gdouble reverb-room-size Read / Write
gdouble reverb-width Read / Write
gint shell-port Read / Write
gchar * shell-prompt Read / Write
gint synth-audio-channels Read / Write
gint synth-audio-groups Read / Write
gint synth-chorus-active Read / Write
gint synth-cpu-cores Read / Write
gint synth-device-id Read / Write
gint synth-dump Read / Write
gint synth-effects-channels Read / Write
gdouble synth-gain Read / Write
gint synth-ladspa-active Read / Write
gchar * synth-midi-bank-select Read / Write
gint synth-midi-channels Read / Write
gint synth-min-note-length Read / Write
gdouble synth-overflow-age Read / Write
gdouble synth-overflow-percussion Read / Write
gdouble synth-overflow-released Read / Write
gdouble synth-overflow-sustained Read / Write
gdouble synth-overflow-volume Read / Write
gint synth-parallel-render Read / Write
gint synth-polyphony Read / Write
gint synth-reverb-active Read / Write
gdouble synth-sample-rate Read / Write
gint synth-threadsafe-api Read / Write
gint synth-verbose Read / Write

Object Hierarchy

    GEnum
    ├── GstBtFluidSynthChorusWaveform
    ╰── GstBtFluidSynthInterpolationMode
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstBtAudioSynth
                        ╰── GstBtFluidSynth

Implemented Interfaces

GstBtFluidSynth implements GstPreset and GstBtTempo.

Description

FluidSynth is a SoundFont 2 capable wavetable synthesizer. Soundpatches are available on sounds.resonance.org. Distributions also have a few soundfonts packaged. The internet offers free patches for download.

When specifying a patch as a relative path, the element looks in common places for the files.

Example launch line

1
gst-launch-1.0 fluidsynth num-buffers=10 note="c-3" ! autoaudiosink
Plays one c-3 tone using the first instrument.
1
gst-launch-1.0 fluidsynth num-buffers=20 instrument-patch="Vintage_Dreams_Waves_v2.sf2" program=2 note="c-3" ! alsasink
Load a specific patch and plays one c-3 tone using the second program.

Functions

Types and Values

enum GstBtFluidSynthInterpolationMode

Synthesis engine interpolation mode.

Members

GSTBT_FLUID_SYNTH_INTERPOLATION_MODE_NONE

no interpolation

 

GSTBT_FLUID_SYNTH_INTERPOLATION_MODE_LINEAR

linear interpolation

 

GSTBT_FLUID_SYNTH_INTERPOLATION_MODE_4THORDER

4th order interpolation

 

GSTBT_FLUID_SYNTH_INTERPOLATION_MODE_7THORDER

7th order interpolation

 

enum GstBtFluidSynthChorusWaveform

Modulation waveform for the chorus effect.

Members

GSTBT_FLUID_SYNTH_CHORUS_MOD_SINE

sine wave

 

GSTBT_FLUID_SYNTH_CHORUS_MOD_TRIANGLE

triangle wave

 

struct GstBtFluidSynth

struct GstBtFluidSynth;

Class instance data.

Property Details

The “audio-alsa-device” property

  “audio-alsa-device”        gchar *

audio.alsa.device.

Flags: Read / Write

Default value: "default"


The “audio-driver” property

  “audio-driver”             gchar *

audio.driver.

Flags: Read / Write

Default value: "jack"


The “audio-file-endian” property

  “audio-file-endian”        gchar *

audio.file.endian.

Flags: Read / Write

Default value: "auto"


The “audio-file-format” property

  “audio-file-format”        gchar *

audio.file.format.

Flags: Read / Write

Default value: "s16"


The “audio-file-name” property

  “audio-file-name”          gchar *

audio.file.name.

Flags: Read / Write

Default value: "fluidsynth.wav"


The “audio-file-type” property

  “audio-file-type”          gchar *

audio.file.type.

Flags: Read / Write

Default value: "auto"


The “audio-input-channels” property

  “audio-input-channels”     gint

audio.input-channels.

Flags: Read / Write

Allowed values: [0,2]

Default value: 0


The “audio-jack-autoconnect” property

  “audio-jack-autoconnect”   gint

audio.jack.autoconnect.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0


The “audio-jack-id” property

  “audio-jack-id”            gchar *

audio.jack.id.

Flags: Read / Write

Default value: "fluidsynth"


The “audio-jack-multi” property

  “audio-jack-multi”         gint

audio.jack.multi.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0


The “audio-jack-server” property

  “audio-jack-server”        gchar *

audio.jack.server.

Flags: Read / Write

Default value: ""


The “audio-oss-device” property

  “audio-oss-device”         gchar *

audio.oss.device.

Flags: Read / Write

Default value: "/dev/dsp"


The “audio-output-channels” property

  “audio-output-channels”    gint

audio.output-channels.

Flags: Read / Write

Allowed values: [2,32]

Default value: 2


The “audio-period-size” property

  “audio-period-size”        gint

audio.period-size.

Flags: Read / Write

Allowed values: [64,8192]

Default value: 64


The “audio-periods” property

  “audio-periods”            gint

audio.periods.

Flags: Read / Write

Allowed values: [2,64]

Default value: 16


The “audio-pulseaudio-adjust-latency” property

  “audio-pulseaudio-adjust-latency” gint

audio.pulseaudio.adjust-latency.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1


The “audio-pulseaudio-device” property

  “audio-pulseaudio-device”  gchar *

audio.pulseaudio.device.

Flags: Read / Write

Default value: "default"


The “audio-pulseaudio-media-role” property

  “audio-pulseaudio-media-role” gchar *

audio.pulseaudio.media-role.

Flags: Read / Write

Default value: "music"


The “audio-pulseaudio-server” property

  “audio-pulseaudio-server”  gchar *

audio.pulseaudio.server.

Flags: Read / Write

Default value: "default"


The “audio-realtime-prio” property

  “audio-realtime-prio”      gint

audio.realtime-prio.

Flags: Read / Write

Allowed values: [0,99]

Default value: 60


The “audio-sample-format” property

  “audio-sample-format”      gchar *

audio.sample-format.

Flags: Read / Write

Default value: "16bits"


The “chorus-count” property

  “chorus-count”             gint

Number of chorus delay lines.

Flags: Read / Write

Allowed values: [1,99]

Default value: 3


The “chorus-depth” property

  “chorus-depth”             gdouble

Chorus depth.

Flags: Read / Write

Allowed values: [0,10]

Default value: 8


The “chorus-enable” property

  “chorus-enable”            gboolean

Chorus enable.

Flags: Read / Write

Default value: TRUE


The “chorus-freq” property

  “chorus-freq”              gdouble

Chorus modulation frequency (Hz).

Flags: Read / Write

Allowed values: [0.3,5]

Default value: 0.3


The “chorus-level” property

  “chorus-level”             gdouble

Output level of each chorus line.

Flags: Read / Write

Allowed values: [0,10]

Default value: 2


The “chorus-waveform” property

  “chorus-waveform”          GstBtFluidSynthChorusWaveform

Chorus waveform type.

Flags: Read / Write

Default value: GSTBT_FLUID_SYNTH_CHORUS_MOD_SINE


The “instrument-patch” property

  “instrument-patch”         gchar *

Path to soundfont intrument patch file.

Flags: Read / Write

Default value: NULL


The “interpolation” property

  “interpolation”            GstBtFluidSynthInterpolationMode

Synthesis Interpolation type.

Flags: Read / Write

Default value: GSTBT_FLUID_SYNTH_INTERPOLATION_MODE_4THORDER


The “midi-alsa-device” property

  “midi-alsa-device”         gchar *

midi.alsa.device.

Flags: Read / Write

Default value: "default"


The “midi-alsa-seq-device” property

  “midi-alsa-seq-device”     gchar *

midi.alsa_seq.device.

Flags: Read / Write

Default value: "default"


The “midi-alsa-seq-id” property

  “midi-alsa-seq-id”         gchar *

midi.alsa_seq.id.

Flags: Read / Write

Default value: "pid"


The “midi-driver” property

  “midi-driver”              gchar *

midi.driver.

Flags: Read / Write

Default value: "alsa_seq"


The “midi-jack-id” property

  “midi-jack-id”             gchar *

midi.jack.id.

Flags: Read / Write

Default value: "fluidsynth-midi"


The “midi-jack-server” property

  “midi-jack-server”         gchar *

midi.jack.server.

Flags: Read / Write

Default value: ""


The “midi-oss-device” property

  “midi-oss-device”          gchar *

midi.oss.device.

Flags: Read / Write

Default value: "/dev/midi"


The “midi-portname” property

  “midi-portname”            gchar *

midi.portname.

Flags: Read / Write

Default value: ""


The “midi-realtime-prio” property

  “midi-realtime-prio”       gint

midi.realtime-prio.

Flags: Read / Write

Allowed values: [0,99]

Default value: 50


The “note” property

  “note”                     GstBtNote

Musical note (e.g. 'c-3', 'd#4').

Flags: Write

Default value: NONE


The “note-length” property

  “note-length”              gint

Length of a note in ticks (buffers).

Flags: Read / Write

Allowed values: [1,100]

Default value: 4


The “note-velocity” property

  “note-velocity”            gint

Velocity of a note.

Flags: Read / Write

Allowed values: [0,127]

Default value: 100


The “player-reset-synth” property

  “player-reset-synth”       gint

player.reset-synth.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1


The “player-timing-source” property

  “player-timing-source”     gchar *

player.timing-source.

Flags: Read / Write

Default value: "sample"


The “program” property

  “program”                  gint

Sound program number.

Flags: Read / Write

Allowed values: [0,16383]

Default value: 0


The “reverb-damp” property

  “reverb-damp”              gdouble

Reverb dampening.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0


The “reverb-enable” property

  “reverb-enable”            gboolean

Reverb enable.

Flags: Read / Write

Default value: TRUE


The “reverb-level” property

  “reverb-level”             gdouble

Reverb level.

Flags: Read / Write

Allowed values: [-30,30]

Default value: 4


The “reverb-room-size” property

  “reverb-room-size”         gdouble

Reverb room size.

Flags: Read / Write

Allowed values: [0,1.2]

Default value: 0.4


The “reverb-width” property

  “reverb-width”             gdouble

Reverb width.

Flags: Read / Write

Allowed values: [0,100]

Default value: 2


The “shell-port” property

  “shell-port”               gint

shell.port.

Flags: Read / Write

Allowed values: [1,65535]

Default value: 9800


The “shell-prompt” property

  “shell-prompt”             gchar *

shell.prompt.

Flags: Read / Write

Default value: ""


The “synth-audio-channels” property

  “synth-audio-channels”     gint

synth.audio-channels.

Flags: Read / Write

Allowed values: [1,128]

Default value: 1


The “synth-audio-groups” property

  “synth-audio-groups”       gint

synth.audio-groups.

Flags: Read / Write

Allowed values: [1,128]

Default value: 1


The “synth-chorus-active” property

  “synth-chorus-active”      gint

synth.chorus.active.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1


The “synth-cpu-cores” property

  “synth-cpu-cores”          gint

synth.cpu-cores.

Flags: Read / Write

Allowed values: [1,256]

Default value: 1


The “synth-device-id” property

  “synth-device-id”          gint

synth.device-id.

Flags: Read / Write

Allowed values: [0,126]

Default value: 0


The “synth-dump” property

  “synth-dump”               gint

synth.dump.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0


The “synth-effects-channels” property

  “synth-effects-channels”   gint

synth.effects-channels.

Flags: Read / Write

Allowed values: [2,2]

Default value: 2


The “synth-gain” property

  “synth-gain”               gdouble

synth.gain.

Flags: Read / Write

Allowed values: [0,10]

Default value: 0.2


The “synth-ladspa-active” property

  “synth-ladspa-active”      gint

synth.ladspa.active.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0


The “synth-midi-bank-select” property

  “synth-midi-bank-select”   gchar *

synth.midi-bank-select.

Flags: Read / Write

Default value: "gs"


The “synth-midi-channels” property

  “synth-midi-channels”      gint

synth.midi-channels.

Flags: Read / Write

Allowed values: [16,256]

Default value: 16


The “synth-min-note-length” property

  “synth-min-note-length”    gint

synth.min-note-length.

Flags: Read / Write

Allowed values: [0,65535]

Default value: 10


The “synth-overflow-age” property

  “synth-overflow-age”       gdouble

synth.overflow.age.

Flags: Read / Write

Allowed values: [-10000,10000]

Default value: 1000


The “synth-overflow-percussion” property

  “synth-overflow-percussion” gdouble

synth.overflow.percussion.

Flags: Read / Write

Allowed values: [-10000,10000]

Default value: 4000


The “synth-overflow-released” property

  “synth-overflow-released”  gdouble

synth.overflow.released.

Flags: Read / Write

Allowed values: [-10000,10000]

Default value: -2000


The “synth-overflow-sustained” property

  “synth-overflow-sustained” gdouble

synth.overflow.sustained.

Flags: Read / Write

Allowed values: [-10000,10000]

Default value: -1000


The “synth-overflow-volume” property

  “synth-overflow-volume”    gdouble

synth.overflow.volume.

Flags: Read / Write

Allowed values: [-10000,10000]

Default value: 500


The “synth-parallel-render” property

  “synth-parallel-render”    gint

synth.parallel-render.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1


The “synth-polyphony” property

  “synth-polyphony”          gint

synth.polyphony.

Flags: Read / Write

Allowed values: [1,65535]

Default value: 256


The “synth-reverb-active” property

  “synth-reverb-active”      gint

synth.reverb.active.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1


The “synth-sample-rate” property

  “synth-sample-rate”        gdouble

synth.sample-rate.

Flags: Read / Write

Allowed values: [8000,96000]

Default value: 44100


The “synth-threadsafe-api” property

  “synth-threadsafe-api”     gint

synth.threadsafe-api.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1


The “synth-verbose” property

  “synth-verbose”            gint

synth.verbose.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0

buzztrax-0.10.2/docs/reference/bt-gst/html/buzztrax-gst.devhelp20000644042355400116100000016651612640736116025160 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/docs/reference/bt-gst/html/buzztrax-gst-GstBMLTransform.html0000644042355400116100000000500212640736116027353 0ustar00ensoniceng00000000000000 GstBmlTransform: GStreamer Buzztrax Reference Manual

GstBmlTransform

GstBmlTransform — buzzmachine wrapper for effects

Description

Wrapper for buzzmachine sound effects.

Functions

Types and Values

buzztrax-0.10.2/docs/reference/bt-gst/html/index.html0000644042355400116100000001447712640736116023034 0ustar00ensoniceng00000000000000 GStreamer Buzztrax Reference Manual: GStreamer Buzztrax Reference Manual

Introduction
GStreamer Buzztrax classes
GstBtAudioSynth — base audio synthesizer
GstBtCombine — combine/mixing module
GstBtDelay — delay line class
GstBtEnvelope — envelope base class
GstBtEnvelopeAD — attack-decay envelope generator
GstBtEnvelopeASDR — attack-decay-sustain-release envelope generator
GstBtEnvelopeD — decay envelope generator
GstBtFilterSVF — state variable filter
GstBtMusicEnums — various enum types
GstBtOscSynth — synthetic waveform oscillator
GstBtOscWave — wavetable oscillator
GstBtToneConversion — helper class for tone unit conversion
GStreamer Buzztrax interfaces
GstBtChildBin — helper interface for multi child gstreamer elements
GstBtPropertyMeta — helper interface for extended gstreamer element meta data
GstBtTempo — helper interface for tempo synced gstreamer elements
GStreamer Buzztrax elements
GstBtAudioDelay — audio echo effect
GstBml — buzzmachine wrapper
BtDec — buzztrax song playback bin
GstBtEBeats — electric drum audio synthesizer
GstBtFluidSynth — FluidSynth GStreamer wrapper
GstBtSidSyn — c64 sid synthesizer
GstBtSimSyn — simple monophonic audio synthesizer
GstBtWaveReplay — wavetable player
GstBtWaveTabSyn — wavetable synthesizer
GStreamer Buzztrax elements subclasses
GstBtSidSynV — c64 sid synthesizer voice
GstBmlSrc — buzzmachine wrapper for generators
GstBmlTransform — buzzmachine wrapper for effects
GstBmlV — helper object for machine voices
plugin — helpers for composition of gobjects
Object Hierarchy
Index
Index of deprecated API
buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-ad_attack=0.25.svg0000644042355400116100000003507512640736116027664 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 attack=0.25 buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtAudioSynth.html0000644042355400116100000001662712640736116024757 0ustar00ensoniceng00000000000000 GstBtAudioSynth: GStreamer Buzztrax Reference Manual

GstBtAudioSynth

GstBtAudioSynth — base audio synthesizer

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstBtAudioSynth
                        ├── GstBtEBeats
                        ├── GstBtFluidSynth
                        ├── GstBtSidSyn
                        ├── GstBtSimSyn
                        ├── GstBtWaveReplay
                        ╰── GstBtWaveTabSyn

Implemented Interfaces

GstBtAudioSynth implements GstPreset and GstBtTempo.

Includes

#include <libgstbuzztrax/audiosynth.h>

Description

Base audio synthesizer to use as a foundation for new synthesizers. Handles tempo, seeking, trick mode playback and format negotiation. The pure virtual process and setup methods must be implemented by the child class. The setup vmethod provides the caps to negotiate. Form them the elemnt can take parameters such as sampling rate or data format.

Functions

Types and Values

struct GstBtAudioSynth

struct GstBtAudioSynth;

Instance data.


struct GstBtAudioSynthClass

struct GstBtAudioSynthClass {
  GstBaseSrcClass parent_class;

  /* virtual functions */
  gboolean (*process) (GstBtAudioSynth * src, GstBuffer * data, GstMapInfo *info);
  void (*setup) (GstBtAudioSynth * src, GstPad * pad, GstCaps * caps);
};

Class structure.

Members

process ()

vmethod for generating a block of audio, return false to indicate that a GAP buffer should be sent

 

setup ()

vmethod for initial processign setup

 
lt-bt_gst_filter-svf_hipass_cut-off=0.5_resonance=10.0.svg0000644042355400116100000007572512640736116033507 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 1 10 100 1000 10000 gnuplot_plot_1 HiPass cut-off=0.5 resonance=10.0 buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtEnvelope.html0000644042355400116100000002205512640736116024435 0ustar00ensoniceng00000000000000 GstBtEnvelope: GStreamer Buzztrax Reference Manual

GstBtEnvelope

GstBtEnvelope — envelope base class

Types and Values

struct GstBtEnvelope

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstControlSource
                ╰── GstTimedValueControlSource
                    ╰── GstInterpolationControlSource
                        ╰── GstBtEnvelope
                            ├── GstBtEnvelopeAD
                            ├── GstBtEnvelopeADSR
                            ╰── GstBtEnvelopeD

Includes

#include <libgstbuzztrax/envelope.h>

Description

Base class for envelopes. The are specialized control sources. Subclsses provide constructors and configure a GstInterpolationControlSource according to the parameters given.

Functions

gstbt_envelope_is_running ()

gboolean
gstbt_envelope_is_running (GstBtEnvelope *self,
                           guint64 offset);

Checks if the end of the envelop has reached. Can be used to skip audio rendering once the end is reached.

Parameters

self

the envelope

 

offset

the current offset

 

Returns

if the envelope is still running


gstbt_envelope_reset ()

void
gstbt_envelope_reset (GstBtEnvelope *self);

Resets the envelope. Call this to to turn off envelopes before playing a song another time.

Parameters

self

the envelope

 

Types and Values

struct GstBtEnvelope

struct GstBtEnvelope {
  guint64 length;
};

Class instance data.

Members

guint64 length;

length of the envelope in samples

 
buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_mul__a*b.svg0000644042355400116100000003615512640736116026700 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Mul: A*B lt-bt_gst_filter-svf_bandstop_cut-off=0.5_resonance=5.0.svg0000644042355400116100000010472112640736116033743 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -88 -86 -84 -82 -80 -78 -76 1 10 100 1000 10000 gnuplot_plot_1 BandStop cut-off=0.5 resonance=5.0 buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_max__max_a,b_.svg0000644042355400116100000003615412640736116027675 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Max: Max(A,B) buzztrax-0.10.2/docs/reference/bt-gst/html/ch04.html0000644042355400116100000000476312640736116022460 0ustar00ensoniceng00000000000000 GStreamer Buzztrax elements subclasses: GStreamer Buzztrax Reference Manual

GStreamer Buzztrax elements subclasses

GstBtSidSynV — c64 sid synthesizer voice
GstBmlSrc — buzzmachine wrapper for generators
GstBmlTransform — buzzmachine wrapper for effects
GstBmlV — helper object for machine voices
plugin — helpers for composition of gobjects
buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-d_0.75.svg0000644042355400116100000003502312640736116026234 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.75 buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtTempo.html0000644042355400116100000003125412640736116023745 0ustar00ensoniceng00000000000000 GstBtTempo: GStreamer Buzztrax Reference Manual

GstBtTempo

GstBtTempo — helper interface for tempo synced gstreamer elements

Functions

Properties

gulong beats-per-minute Read / Write
gulong subticks-per-tick Read / Write
gulong ticks-per-beat Read / Write

Types and Values

Object Hierarchy

    GInterface
    ╰── GstBtTempo

Includes

#include <libgstbuzztrax/tempo.h>

Description

This interface offers three GObject properties to specify a rythmic tempo of the GStreamer pipeline. The tempo can be changed from the application side by calling gstbt_tempo_change_tempo().

GstElements that implement this interface should use the given tempo, to adjust their gst_object_sync_values() cycle.

The difference between the tempo iface and the tempo-tag metadata is that the metadata describes the overall tempo, but the iface allows to change the tempo during playback.

Functions

gstbt_tempo_change_tempo ()

void
gstbt_tempo_change_tempo (GstBtTempo *self,
                          glong beats_per_minute,
                          glong ticks_per_beat,
                          glong subticks_per_tick);

Set all tempo properties at once. Pass -1 to leave a value unchanged.

Parameters

self

a GObject that implements GstBtTempo

 

beats_per_minute

the number of beats in a minute

 

ticks_per_beat

the number of ticks of one beat (measure)

 

subticks_per_tick

the number of subticks within one tick

 

Types and Values

struct GstBtTempoInterface

struct GstBtTempoInterface {
  GTypeInterface parent;

  void (*change_tempo) (GstBtTempo *self, glong beats_per_minute, glong ticks_per_beat, glong subticks_per_tick);
};

Interface structure.

Members

GTypeInterface parent;

parent type

 

change_tempo ()

vmethod for changing the song tempo

 

GstBtTempo

typedef struct _GstBtTempo GstBtTempo;

Opaque interface handle.

Property Details

The “beats-per-minute” property

  “beats-per-minute”         gulong

the number of beats per minute the top level pipeline uses.

Flags: Read / Write

Allowed values: >= 1


The “subticks-per-tick” property

  “subticks-per-tick”        gulong

the number of subticks (for smoothing) per tick the top level pipeline uses.

Flags: Read / Write

Allowed values: >= 1


The “ticks-per-beat” property

  “ticks-per-beat”           gulong

the number of ticks (events) per beat the top level pipeline uses.

Flags: Read / Write

Allowed values: >= 1

buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtPropertyMeta.html0000644042355400116100000003222412640736116025312 0ustar00ensoniceng00000000000000 GstBtPropertyMeta: GStreamer Buzztrax Reference Manual

GstBtPropertyMeta

GstBtPropertyMeta — helper interface for extended gstreamer element meta data

Object Hierarchy

    GInterface
    ╰── GstBtPropertyMeta

Known Implementations

GstBtPropertyMeta is implemented by GstBtSidSyn and GstBtSidSynV.

Includes

#include <libgstbuzztrax/propertymeta.h>

Description

This interface standardises some additional meta-data that is attached to GObject properties.

Furthermore it adds the gstbt_property_meta_describe_property() method that builds a string description of a property value.

Functions

gstbt_property_meta_describe_property ()

gchar *
gstbt_property_meta_describe_property (GstBtPropertyMeta *self,
                                       guint property_id,
                                       const GValue *value);

Formats the gives value as a human readable string. The method is useful to pretty print a property value to be shown in a user interface. It provides a default implementation.

Parameters

self

a GObject that implements GstBtPropertyMeta

 

property_id

the property index

 

value

the current property value

 

Returns

a string with the value in human readable form, free memory when done

Types and Values

struct GstBtPropertyMetaInterface

struct GstBtPropertyMetaInterface {
  GTypeInterface parent;

  gchar *(*describe_property) (GstBtPropertyMeta *self, guint property_id, const GValue *value);
};

Interface structure.

Members

GTypeInterface parent;

parent type

 

describe_property ()

vmethod for returning a human readable property value description

 

gstbt_property_meta_quark

extern GQuark gstbt_property_meta_quark;

Only if this is set to TRUE, there is property meta data for this property..


gstbt_property_meta_quark_min_val

extern GQuark gstbt_property_meta_quark_min_val;

Minimum property value (excluding default and no-value).


gstbt_property_meta_quark_max_val

extern GQuark gstbt_property_meta_quark_max_val;

Maximum property value (excluding default and no-value).


gstbt_property_meta_quark_def_val

extern GQuark gstbt_property_meta_quark_def_val;

Default property value (used initialy).


gstbt_property_meta_quark_no_val

extern GQuark gstbt_property_meta_quark_no_val;

Property value (used in trigger style properties, when there is no current value)


enum GstBtPropertyMetaFlags

Parameter flags to describe their behaviour.

Members

GSTBT_PROPERTY_META_WAVE

parameter value references a wavetable slot

 

GSTBT_PROPERTY_META_STATE

parameter is continuously changing (not used for notes and triggers)

 

GSTBT_PROPERTY_META_TICK_ON_EDIT

need to call tick after editing it

 

GstBtPropertyMeta

typedef struct _GstBtPropertyMeta GstBtPropertyMeta;

Opaque interface handle.

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_mix__a+b.svg0000644042355400116100000003616712640736116026704 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Mix: A+B lt-bt_gst_filter-svf_bandpass_cut-off=0.5_resonance=10.0.svg0000644042355400116100000007714412640736116034010 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 1 10 100 1000 10000 gnuplot_plot_1 BandPass cut-off=0.5 resonance=10.0 lt-bt_gst_filter-svf_lowpass_cut-off=0.5_resonance=10.0.svg0000644042355400116100000011571312640736116033700 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 1 10 100 1000 10000 gnuplot_plot_1 LowPass cut-off=0.5 resonance=10.0 buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_red__brownian__noise.svg0000644042355400116100000003617112640736116031705 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Red (brownian) noise lt-bt_gst_filter-svf_bandpass_cut-off=0.5_resonance=5.0.svg0000644042355400116100000007416712640736116033736 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -150 -140 -130 -120 -110 -100 -90 -80 -70 1 10 100 1000 10000 gnuplot_plot_1 BandPass cut-off=0.5 resonance=5.0 buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-d_0.00.svg0000644042355400116100000003532712640736116026227 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.00 buzztrax-0.10.2/docs/reference/bt-gst/html/right-insensitive.png0000644042355400116100000000056512640736116025211 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME ^IDAT8͒J` /S_$AqrW(>m"]\(49.Nd39{eM#MSIιEiHz|3{̲l3,KkV'@EEQlwyiq]Kh4:mĦ,;ts\aR5/7'Wps׭I,K1=0j0Wg> PU𻤝0 ]?qCҫιg~kA_IENDB`buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_xor__a_b.svg0000644042355400116100000003622412640736116026775 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Xor: A^B buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_min__min_a,b_.svg0000644042355400116100000003630412640736116027666 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Min: Min(A,B) buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_saw.svg0000644042355400116100000003621612640736116026333 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Saw buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_silence.svg0000644042355400116100000003615412640736116027164 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Silence buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_sub__a-b.svg0000644042355400116100000003621612640736116026675 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Sub: A-B buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtWaveTabSyn.html0000644042355400116100000003351012640736116024701 0ustar00ensoniceng00000000000000 GstBtWaveTabSyn: GStreamer Buzztrax Reference Manual

GstBtWaveTabSyn

GstBtWaveTabSyn — wavetable synthesizer

Properties

gdouble attack Read / Write
gdouble decay Read / Write
guint length Read / Write
GstBtNote note Write
guint offset Read / Write
gdouble peak-volume Read / Write
gdouble release Read / Write
gdouble sustain-volume Read / Write
GstBtToneConversionTuning tuning Read / Write
GstBtWaveIndex wave Read / Write
gpointer wave-callbacks Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstBtAudioSynth
                        ╰── GstBtWaveTabSyn

Implemented Interfaces

GstBtWaveTabSyn implements GstPreset and GstBtTempo.

Description

A synth that uses the wavetable osc. I picks a cycle from the selected wavetable entry and repeats it as a osc. The offset parameter allows scanning though the waveform.

Functions

Types and Values

struct GstBtWaveTabSyn

struct GstBtWaveTabSyn;

Class instance data.

Property Details

The “attack” property

  “attack”                   gdouble

Attack of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.1


The “decay” property

  “decay”                    gdouble

Decay of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “length” property

  “length”                   guint

Note length in ticks.

Flags: Read / Write

Allowed values: [1,255]

Default value: 1


The “note” property

  “note”                     GstBtNote

Musical note (e.g. 'c-3', 'd#4').

Flags: Write

Default value: NONE


The “offset” property

  “offset”                   guint

Wave table offset.

Flags: Read / Write

Allowed values: <= 65535

Default value: 0


The “peak-volume” property

  “peak-volume”              gdouble

Highest level of envelope.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.8


The “release” property

  “release”                  gdouble

Release of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “sustain-volume” property

  “sustain-volume”           gdouble

Sustain level of envelope.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.4


The “tuning” property

  “tuning”                   GstBtToneConversionTuning

Harmonic tuning schema.

Flags: Read / Write

Default value: GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT


The “wave” property

  “wave”                     GstBtWaveIndex

Wave index.

Flags: Read / Write

Default value: no wave


The “wave-callbacks” property

  “wave-callbacks”           gpointer

The wave-table access callbacks.

Flags: Read / Write

lt-bt_gst_filter-svf_bandpass_cut-off=0.5_resonance=0.7.svg0000644042355400116100000006053612640736116033733 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -150 -140 -130 -120 -110 -100 -90 -80 1 10 100 1000 10000 gnuplot_plot_1 BandPass cut-off=0.5 resonance=0.7 buzztrax-0.10.2/docs/reference/bt-gst/html/buzztrax-gst-GstBMLSrc.html0000644042355400116100000000473112640736116026137 0ustar00ensoniceng00000000000000 GstBmlSrc: GStreamer Buzztrax Reference Manual

GstBmlSrc

GstBmlSrc — buzzmachine wrapper for generators

Description

Wrapper for buzzmachine sound generators.

Functions

Types and Values

buzztrax-0.10.2/docs/reference/bt-gst/html/up-insensitive.png0000644042355400116100000000056612640736116024521 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEwIIDAT8?/Qϙ?[u$VHTDۈBM+! GstBml: GStreamer Buzztrax Reference Manual

GstBml

GstBml — buzzmachine wrapper

Description

Wrapper for buzzmachine sound generators and effects.

Functions

Types and Values

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-d_0.25.svg0000644042355400116100000003521212640736116026227 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.25 buzztrax-0.10.2/docs/reference/bt-gst/html/pr01.html0000644042355400116100000000364712640736116022504 0ustar00ensoniceng00000000000000 Introduction: GStreamer Buzztrax Reference Manual

Introduction

This module contains experimental code that extends gstreamer. The extensions are required to build a git version of buzztrax.

It also contains some nice audio elements. These could be easily moved to gst-plugin modules, but only with some of the interfaces base and utilty classes.

buzztrax-0.10.2/docs/reference/bt-gst/html/deprecated-api-index.html0000644042355400116100000000301012640736116025656 0ustar00ensoniceng00000000000000 Index of deprecated API: GStreamer Buzztrax Reference Manual

Index of deprecated API

buzztrax-0.10.2/docs/reference/bt-gst/html/up.png0000644042355400116100000000040412640736116022152 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME IDAT81 @D{xa;$]r =JR1, Sd-}0̟oL:m-QO[ k TzMޠL,:ךu!tK; Pp Ot@l/̵*l}IENDB`lt-bt_gst_filter-svf_bandstop_cut-off=0.5_resonance=10.0.svg0000644042355400116100000010614012640736116034014 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/html Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -86 -84 -82 -80 -78 -76 -74 -72 -70 1 10 100 1000 10000 gnuplot_plot_1 BandStop cut-off=0.5 resonance=10.0 buzztrax-0.10.2/docs/reference/bt-gst/html/ch01.html0000644042355400116100000000700012640736116022440 0ustar00ensoniceng00000000000000 GStreamer Buzztrax classes: GStreamer Buzztrax Reference Manual

GStreamer Buzztrax classes

GstBtAudioSynth — base audio synthesizer
GstBtCombine — combine/mixing module
GstBtDelay — delay line class
GstBtEnvelope — envelope base class
GstBtEnvelopeAD — attack-decay envelope generator
GstBtEnvelopeASDR — attack-decay-sustain-release envelope generator
GstBtEnvelopeD — decay envelope generator
GstBtFilterSVF — state variable filter
GstBtMusicEnums — various enum types
GstBtOscSynth — synthetic waveform oscillator
GstBtOscWave — wavetable oscillator
GstBtToneConversion — helper class for tone unit conversion
buzztrax-0.10.2/docs/reference/bt-gst/html/api-index.html0000644042355400116100000021475112640736116023600 0ustar00ensoniceng00000000000000 Index: GStreamer Buzztrax Reference Manual

Index

A

GstBtAudioDelay, struct in GstBtAudioDelay
GstBtAudioDelay:delaytime, object property in GstBtAudioDelay
GstBtAudioDelay:drywet, object property in GstBtAudioDelay
GstBtAudioDelay:feedback, object property in GstBtAudioDelay
GstBtAudioSynth, struct in GstBtAudioSynth
GstBtAudioSynthClass, struct in GstBtAudioSynth

B

BtDec, struct in BtDec

C

GstBtChildBin, struct in GstBtChildBin
GstBtChildBin:children, object property in GstBtChildBin
GstBtChildBinInterface, struct in GstBtChildBin
gstbt_child_bin_add_child, function in GstBtChildBin
gstbt_child_bin_remove_child, function in GstBtChildBin
GstBtCombine, struct in GstBtCombine
GstBtCombine:combine, object property in GstBtCombine
GstBtCombineType, enum in GstBtCombine
gstbt_combine_new, function in GstBtCombine
gstbt_combine_process, function in GstBtCombine
gstbt_combine_trigger, function in GstBtCombine

D

GstBtDelay, struct in GstBtDelay
GstBtDelay:delaytime, object property in GstBtDelay
GSTBT_DELAY_AFTER, macro in GstBtDelay
GSTBT_DELAY_BEFORE, macro in GstBtDelay
gstbt_delay_flush, function in GstBtDelay
gstbt_delay_new, function in GstBtDelay
GSTBT_DELAY_READ, macro in GstBtDelay
gstbt_delay_start, function in GstBtDelay
gstbt_delay_stop, function in GstBtDelay
GSTBT_DELAY_WRITE, macro in GstBtDelay

E

GstBtEBeats, struct in GstBtEBeats
GstBtEBeats:combine, object property in GstBtEBeats
GstBtEBeats:cufoff-curve, object property in GstBtEBeats
GstBtEBeats:cutoff-end, object property in GstBtEBeats
GstBtEBeats:cutoff-start, object property in GstBtEBeats
GstBtEBeats:filter, object property in GstBtEBeats
GstBtEBeats:filter-routing, object property in GstBtEBeats
GstBtEBeats:n-decay, object property in GstBtEBeats
GstBtEBeats:n-vol-curve, object property in GstBtEBeats
GstBtEBeats:n-volume, object property in GstBtEBeats
GstBtEBeats:n-wave, object property in GstBtEBeats
GstBtEBeats:resonance, object property in GstBtEBeats
GstBtEBeats:t-decay, object property in GstBtEBeats
GstBtEBeats:t-vol-curve, object property in GstBtEBeats
GstBtEBeats:t-volume, object property in GstBtEBeats
GstBtEBeats:t1-freq-curve, object property in GstBtEBeats
GstBtEBeats:t1-freq-end, object property in GstBtEBeats
GstBtEBeats:t1-freq-start, object property in GstBtEBeats
GstBtEBeats:t1-wave, object property in GstBtEBeats
GstBtEBeats:t2-freq-curve, object property in GstBtEBeats
GstBtEBeats:t2-freq-end, object property in GstBtEBeats
GstBtEBeats:t2-freq-start, object property in GstBtEBeats
GstBtEBeats:t2-wave, object property in GstBtEBeats
GstBtEBeats:volume, object property in GstBtEBeats
GstBtEBeatsFilterRouting, enum in GstBtEBeats
GstBtEnvelope, struct in GstBtEnvelope
GstBtEnvelopeAD, struct in GstBtEnvelopeAD
GstBtEnvelopeAD:attack, object property in GstBtEnvelopeAD
GstBtEnvelopeAD:decay, object property in GstBtEnvelopeAD
GstBtEnvelopeAD:floor-level, object property in GstBtEnvelopeAD
GstBtEnvelopeAD:peak-level, object property in GstBtEnvelopeAD
GstBtEnvelopeADSR, struct in GstBtEnvelopeADSR
GstBtEnvelopeADSR:attack, object property in GstBtEnvelopeADSR
GstBtEnvelopeADSR:decay, object property in GstBtEnvelopeADSR
GstBtEnvelopeADSR:floor-level, object property in GstBtEnvelopeADSR
GstBtEnvelopeADSR:length, object property in GstBtEnvelopeADSR
GstBtEnvelopeADSR:peak-level, object property in GstBtEnvelopeADSR
GstBtEnvelopeADSR:release, object property in GstBtEnvelopeADSR
GstBtEnvelopeADSR:sustain-level, object property in GstBtEnvelopeADSR
GstBtEnvelopeD, struct in GstBtEnvelopeD
GstBtEnvelopeD:curve, object property in GstBtEnvelopeD
GstBtEnvelopeD:decay, object property in GstBtEnvelopeD
GstBtEnvelopeD:floor-level, object property in GstBtEnvelopeD
GstBtEnvelopeD:peak-level, object property in GstBtEnvelopeD
gstbt_envelope_adsr_new, function in GstBtEnvelopeADSR
gstbt_envelope_adsr_setup, function in GstBtEnvelopeADSR
gstbt_envelope_ad_new, function in GstBtEnvelopeAD
gstbt_envelope_ad_setup, function in GstBtEnvelopeAD
gstbt_envelope_d_new, function in GstBtEnvelopeD
gstbt_envelope_d_setup, function in GstBtEnvelopeD
gstbt_envelope_is_running, function in GstBtEnvelope
gstbt_envelope_reset, function in GstBtEnvelope

F

GstBtFilterSVF, struct in GstBtFilterSVF
GstBtFilterSVF:cut-off, object property in GstBtFilterSVF
GstBtFilterSVF:filter, object property in GstBtFilterSVF
GstBtFilterSVF:resonance, object property in GstBtFilterSVF
GstBtFilterSVFType, enum in GstBtFilterSVF
gstbt_filter_svf_new, function in GstBtFilterSVF
gstbt_filter_svf_process, function in GstBtFilterSVF
gstbt_filter_svf_trigger, function in GstBtFilterSVF
GstBtFluidSynth, struct in GstBtFluidSynth
GstBtFluidSynth:audio-alsa-device, object property in GstBtFluidSynth
GstBtFluidSynth:audio-driver, object property in GstBtFluidSynth
GstBtFluidSynth:audio-file-endian, object property in GstBtFluidSynth
GstBtFluidSynth:audio-file-format, object property in GstBtFluidSynth
GstBtFluidSynth:audio-file-name, object property in GstBtFluidSynth
GstBtFluidSynth:audio-file-type, object property in GstBtFluidSynth
GstBtFluidSynth:audio-input-channels, object property in GstBtFluidSynth
GstBtFluidSynth:audio-jack-autoconnect, object property in GstBtFluidSynth
GstBtFluidSynth:audio-jack-id, object property in GstBtFluidSynth
GstBtFluidSynth:audio-jack-multi, object property in GstBtFluidSynth
GstBtFluidSynth:audio-jack-server, object property in GstBtFluidSynth
GstBtFluidSynth:audio-oss-device, object property in GstBtFluidSynth
GstBtFluidSynth:audio-output-channels, object property in GstBtFluidSynth
GstBtFluidSynth:audio-period-size, object property in GstBtFluidSynth
GstBtFluidSynth:audio-periods, object property in GstBtFluidSynth
GstBtFluidSynth:audio-pulseaudio-adjust-latency, object property in GstBtFluidSynth
GstBtFluidSynth:audio-pulseaudio-device, object property in GstBtFluidSynth
GstBtFluidSynth:audio-pulseaudio-media-role, object property in GstBtFluidSynth
GstBtFluidSynth:audio-pulseaudio-server, object property in GstBtFluidSynth
GstBtFluidSynth:audio-realtime-prio, object property in GstBtFluidSynth
GstBtFluidSynth:audio-sample-format, object property in GstBtFluidSynth
GstBtFluidSynth:chorus-count, object property in GstBtFluidSynth
GstBtFluidSynth:chorus-depth, object property in GstBtFluidSynth
GstBtFluidSynth:chorus-enable, object property in GstBtFluidSynth
GstBtFluidSynth:chorus-freq, object property in GstBtFluidSynth
GstBtFluidSynth:chorus-level, object property in GstBtFluidSynth
GstBtFluidSynth:chorus-waveform, object property in GstBtFluidSynth
GstBtFluidSynth:instrument-patch, object property in GstBtFluidSynth
GstBtFluidSynth:interpolation, object property in GstBtFluidSynth
GstBtFluidSynth:midi-alsa-device, object property in GstBtFluidSynth
GstBtFluidSynth:midi-alsa-seq-device, object property in GstBtFluidSynth
GstBtFluidSynth:midi-alsa-seq-id, object property in GstBtFluidSynth
GstBtFluidSynth:midi-driver, object property in GstBtFluidSynth
GstBtFluidSynth:midi-jack-id, object property in GstBtFluidSynth
GstBtFluidSynth:midi-jack-server, object property in GstBtFluidSynth
GstBtFluidSynth:midi-oss-device, object property in GstBtFluidSynth
GstBtFluidSynth:midi-portname, object property in GstBtFluidSynth
GstBtFluidSynth:midi-realtime-prio, object property in GstBtFluidSynth
GstBtFluidSynth:note, object property in GstBtFluidSynth
GstBtFluidSynth:note-length, object property in GstBtFluidSynth
GstBtFluidSynth:note-velocity, object property in GstBtFluidSynth
GstBtFluidSynth:player-reset-synth, object property in GstBtFluidSynth
GstBtFluidSynth:player-timing-source, object property in GstBtFluidSynth
GstBtFluidSynth:program, object property in GstBtFluidSynth
GstBtFluidSynth:reverb-damp, object property in GstBtFluidSynth
GstBtFluidSynth:reverb-enable, object property in GstBtFluidSynth
GstBtFluidSynth:reverb-level, object property in GstBtFluidSynth
GstBtFluidSynth:reverb-room-size, object property in GstBtFluidSynth
GstBtFluidSynth:reverb-width, object property in GstBtFluidSynth
GstBtFluidSynth:shell-port, object property in GstBtFluidSynth
GstBtFluidSynth:shell-prompt, object property in GstBtFluidSynth
GstBtFluidSynth:synth-audio-channels, object property in GstBtFluidSynth
GstBtFluidSynth:synth-audio-groups, object property in GstBtFluidSynth
GstBtFluidSynth:synth-chorus-active, object property in GstBtFluidSynth
GstBtFluidSynth:synth-cpu-cores, object property in GstBtFluidSynth
GstBtFluidSynth:synth-device-id, object property in GstBtFluidSynth
GstBtFluidSynth:synth-dump, object property in GstBtFluidSynth
GstBtFluidSynth:synth-effects-channels, object property in GstBtFluidSynth
GstBtFluidSynth:synth-gain, object property in GstBtFluidSynth
GstBtFluidSynth:synth-ladspa-active, object property in GstBtFluidSynth
GstBtFluidSynth:synth-midi-bank-select, object property in GstBtFluidSynth
GstBtFluidSynth:synth-midi-channels, object property in GstBtFluidSynth
GstBtFluidSynth:synth-min-note-length, object property in GstBtFluidSynth
GstBtFluidSynth:synth-overflow-age, object property in GstBtFluidSynth
GstBtFluidSynth:synth-overflow-percussion, object property in GstBtFluidSynth
GstBtFluidSynth:synth-overflow-released, object property in GstBtFluidSynth
GstBtFluidSynth:synth-overflow-sustained, object property in GstBtFluidSynth
GstBtFluidSynth:synth-overflow-volume, object property in GstBtFluidSynth
GstBtFluidSynth:synth-parallel-render, object property in GstBtFluidSynth
GstBtFluidSynth:synth-polyphony, object property in GstBtFluidSynth
GstBtFluidSynth:synth-reverb-active, object property in GstBtFluidSynth
GstBtFluidSynth:synth-sample-rate, object property in GstBtFluidSynth
GstBtFluidSynth:synth-threadsafe-api, object property in GstBtFluidSynth
GstBtFluidSynth:synth-verbose, object property in GstBtFluidSynth
GstBtFluidSynthChorusWaveform, enum in GstBtFluidSynth
GstBtFluidSynthInterpolationMode, enum in GstBtFluidSynth

N

GstBtNote, enum in GstBtMusicEnums

O

GstBtOscSynth, struct in GstBtOscSynth
GstBtOscSynth:frequency, object property in GstBtOscSynth
GstBtOscSynth:sample-rate, object property in GstBtOscSynth
GstBtOscSynth:volume, object property in GstBtOscSynth
GstBtOscSynth:wave, object property in GstBtOscSynth
GstBtOscSynthNoiseWave, enum in GstBtOscSynth
GstBtOscSynthTonalWave, enum in GstBtOscSynth
GstBtOscSynthWave, enum in GstBtOscSynth
GstBtOscWave, struct in GstBtOscWave
GstBtOscWave:duration, object property in GstBtOscWave
GstBtOscWave:frequency, object property in GstBtOscWave
GstBtOscWave:wave, object property in GstBtOscWave
GstBtOscWave:wave-callbacks, object property in GstBtOscWave
GstBtOscWave:wave-level, object property in GstBtOscWave
gstbt_osc_synth_new, function in GstBtOscSynth
gstbt_osc_synth_process, function in GstBtOscSynth
gstbt_osc_synth_trigger, function in GstBtOscSynth
gstbt_osc_wave_new, function in GstBtOscWave
gstbt_osc_wave_setup, function in GstBtOscWave

P

GstBtPropertyMeta, struct in GstBtPropertyMeta
GstBtPropertyMetaFlags, enum in GstBtPropertyMeta
GstBtPropertyMetaInterface, struct in GstBtPropertyMeta
gstbt_property_meta_describe_property, function in GstBtPropertyMeta
gstbt_property_meta_quark, variable in GstBtPropertyMeta
gstbt_property_meta_quark_def_val, variable in GstBtPropertyMeta
gstbt_property_meta_quark_max_val, variable in GstBtPropertyMeta
gstbt_property_meta_quark_min_val, variable in GstBtPropertyMeta
gstbt_property_meta_quark_no_val, variable in GstBtPropertyMeta

S

GstBtSidSyn, struct in GstBtSidSyn
GstBtSidSyn:band-pass, object property in GstBtSidSyn
GstBtSidSyn:children, object property in GstBtSidSyn
GstBtSidSyn:chip, object property in GstBtSidSyn
GstBtSidSyn:cut-off, object property in GstBtSidSyn
GstBtSidSyn:hi-pass, object property in GstBtSidSyn
GstBtSidSyn:low-pass, object property in GstBtSidSyn
GstBtSidSyn:resonance, object property in GstBtSidSyn
GstBtSidSyn:tuning, object property in GstBtSidSyn
GstBtSidSyn:voice3-off, object property in GstBtSidSyn
GstBtSidSyn:volume, object property in GstBtSidSyn
GstBtSidSynChip, enum in GstBtSidSyn
GstBtSidSynEffect, enum in GstBtSidSynV
GstBtSidSynV, struct in GstBtSidSynV
GstBtSidSynV:attack, object property in GstBtSidSynV
GstBtSidSynV:decay, object property in GstBtSidSynV
GstBtSidSynV:effect-type, object property in GstBtSidSynV
GstBtSidSynV:effect-value, object property in GstBtSidSynV
GstBtSidSynV:fiter-voice, object property in GstBtSidSynV
GstBtSidSynV:note, object property in GstBtSidSynV
GstBtSidSynV:pulse-width, object property in GstBtSidSynV
GstBtSidSynV:release, object property in GstBtSidSynV
GstBtSidSynV:ringmod, object property in GstBtSidSynV
GstBtSidSynV:sustain, object property in GstBtSidSynV
GstBtSidSynV:sync, object property in GstBtSidSynV
GstBtSidSynV:test, object property in GstBtSidSynV
GstBtSidSynV:wave, object property in GstBtSidSynV
GstBtSidSynWave, enum in GstBtSidSynV
GstBtSimSyn, struct in GstBtSimSyn
GstBtSimSyn:attack, object property in GstBtSimSyn
GstBtSimSyn:cut-off, object property in GstBtSimSyn
GstBtSimSyn:decay, object property in GstBtSimSyn
GstBtSimSyn:filter, object property in GstBtSimSyn
GstBtSimSyn:note, object property in GstBtSimSyn
GstBtSimSyn:resonance, object property in GstBtSimSyn
GstBtSimSyn:tuning, object property in GstBtSimSyn
GstBtSimSyn:volume, object property in GstBtSimSyn
GstBtSimSyn:wave, object property in GstBtSimSyn

T

GstBtTempo, struct in GstBtTempo
GstBtTempo:beats-per-minute, object property in GstBtTempo
GstBtTempo:subticks-per-tick, object property in GstBtTempo
GstBtTempo:ticks-per-beat, object property in GstBtTempo
GstBtTempoInterface, struct in GstBtTempo
gstbt_tempo_change_tempo, function in GstBtTempo
GstBtToneConversion, struct in GstBtToneConversion
GstBtToneConversion:tuning, object property in GstBtToneConversion
GstBtToneConversionTuning, enum in GstBtToneConversion
gstbt_tone_conversion_new, function in GstBtToneConversion
gstbt_tone_conversion_note_number_2_string, function in GstBtToneConversion
gstbt_tone_conversion_note_number_offset, function in GstBtToneConversion
gstbt_tone_conversion_note_string_2_number, function in GstBtToneConversion
gstbt_tone_conversion_translate_from_number, function in GstBtToneConversion
gstbt_tone_conversion_translate_from_string, function in GstBtToneConversion
GstBtTriggerSwitch, enum in GstBtMusicEnums

W

GstBtWaveIndex, typedef in GstBtMusicEnums
GstBtWaveReplay, struct in GstBtWaveReplay
GstBtWaveReplay:wave, object property in GstBtWaveReplay
GstBtWaveReplay:wave-callbacks, object property in GstBtWaveReplay
GstBtWaveReplay:wave-level, object property in GstBtWaveReplay
GstBtWaveTabSyn, struct in GstBtWaveTabSyn
GstBtWaveTabSyn:attack, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:decay, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:length, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:note, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:offset, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:peak-volume, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:release, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:sustain-volume, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:tuning, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:wave, object property in GstBtWaveTabSyn
GstBtWaveTabSyn:wave-callbacks, object property in GstBtWaveTabSyn
buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_combine_and__a_b.svg0000644042355400116100000003621112640736116026723 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 And: A&B buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtEBeats.html0000644042355400116100000006574312640736116024036 0ustar00ensoniceng00000000000000 GstBtEBeats: GStreamer Buzztrax Reference Manual

GstBtEBeats

GstBtEBeats — electric drum audio synthesizer

Properties

GstBtCombineType combine Read / Write
gdouble cufoff-curve Read / Write
gdouble cutoff-end Read / Write
gdouble cutoff-start Read / Write
GstBtFilterSVFType filter Read / Write
GstBtEBeatsFilterRouting filter-routing Read / Write
gdouble n-decay Read / Write
gdouble n-vol-curve Read / Write
gdouble n-volume Read / Write
GstBtOscSynthNoiseWave n-wave Read / Write
gdouble resonance Read / Write
gdouble t-decay Read / Write
gdouble t-vol-curve Read / Write
gdouble t-volume Read / Write
gdouble t1-freq-curve Read / Write
gdouble t1-freq-end Read / Write
gdouble t1-freq-start Read / Write
GstBtOscSynthTonalWave t1-wave Read / Write
gdouble t2-freq-curve Read / Write
gdouble t2-freq-end Read / Write
gdouble t2-freq-start Read / Write
GstBtOscSynthTonalWave t2-wave Read / Write
guint volume Write

Types and Values

Object Hierarchy

    GEnum
    ╰── GstBtEBeatsFilterRouting
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstBtAudioSynth
                        ╰── GstBtEBeats

Implemented Interfaces

GstBtEBeats implements GstPreset and GstBtTempo.

Description

A drum synthesizer with two tonal and one noise oscillator (GstBtOscSynth), plus decay envelopes (GstBtEnvelopeD) for tonal transitions and volumes. The tonal oscillators can be mixed through various “combine” modes. The noise part is then mixed with the tonal parts.

Finally one can apply a filter (GstBtFilterSVF) to either the tonal mix, the noise or both. The “cut-off” is also controlled by a decay envelope and the decay is the same as the one from the tonal osc, noise osc or the max of both depending on the (“filter-routing”).

The synthesizer uses a trigger parameter (“volume”) to be start a tone that also controls the overall volume.

Example launch line

1
gst-launch-1.0 ebeats num-buffers=10 volume=100 ! autoaudiosink
Render a drum tone.

Functions

Types and Values

struct GstBtEBeats

struct GstBtEBeats;

Class instance data.


enum GstBtEBeatsFilterRouting

The filter routing modes configure to which parts of the signal to apply the filter.

Members

GSTBT_E_BEATS_FILTER_ROUTING_T_N

apply filter at the end to both tonal and noise parts

 

GSTBT_E_BEATS_FILTER_ROUTING_T

apply filter only to tonal parts

 

GSTBT_E_BEATS_FILTER_ROUTING_N

apply filter only to noise parts

 

Property Details

The “combine” property

  “combine”                  GstBtCombineType

Type of combine operation.

Flags: Read / Write

Default value: Mix: A+B


The “cufoff-curve” property

  “cufoff-curve”             gdouble

Curve of the envelope, 0.5=linear.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5


The “cutoff-end” property

  “cutoff-end”               gdouble

Final audio filter cut-off frequency.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.2


The “cutoff-start” property

  “cutoff-start”             gdouble

Initial audio filter cut-off frequency.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.8


The “filter” property

  “filter”                   GstBtFilterSVFType

Type of audio filter.

Flags: Read / Write

Default value: LowPass


The “filter-routing” property

  “filter-routing”           GstBtEBeatsFilterRouting

Configuration to which parts of the signal to apply the filter.

Flags: Read / Write

Default value: Tonal+Noise


The “n-decay” property

  “n-decay”                  gdouble

Decay of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “n-vol-curve” property

  “n-vol-curve”              gdouble

Curve of the envelope, 0.5=linear.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5


The “n-volume” property

  “n-volume”                 gdouble

Highest level of the envelope.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.8


The “n-wave” property

  “n-wave”                   GstBtOscSynthNoiseWave

Noise oscillator waveform.

Flags: Read / Write

Default value: White noise


The “resonance” property

  “resonance”                gdouble

Audio filter resonance.

Flags: Read / Write

Allowed values: [0.7,25]

Default value: 0.8


The “t-decay” property

  “t-decay”                  gdouble

Decay of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “t-vol-curve” property

  “t-vol-curve”              gdouble

Curve of the envelope, 0.5=linear.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5


The “t-volume” property

  “t-volume”                 gdouble

Highest level of the envelope.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.8


The “t1-freq-curve” property

  “t1-freq-curve”            gdouble

Curve of the envelope, 0.5=linear.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5


The “t1-freq-end” property

  “t1-freq-end”              gdouble

Final frequency of tone.

Flags: Read / Write

Allowed values: [1,1000]

Default value: 10


The “t1-freq-start” property

  “t1-freq-start”            gdouble

Initial frequency of tone.

Flags: Read / Write

Allowed values: [1,10000]

Default value: 200


The “t1-wave” property

  “t1-wave”                  GstBtOscSynthTonalWave

Tonal oscillator waveform.

Flags: Read / Write

Default value: Sine


The “t2-freq-curve” property

  “t2-freq-curve”            gdouble

Curve of the envelope, 0.5=linear.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5


The “t2-freq-end” property

  “t2-freq-end”              gdouble

Final frequency of tone.

Flags: Read / Write

Allowed values: [1,1000]

Default value: 30


The “t2-freq-start” property

  “t2-freq-start”            gdouble

Initial frequency of tone.

Flags: Read / Write

Allowed values: [1,10000]

Default value: 210


The “t2-wave” property

  “t2-wave”                  GstBtOscSynthTonalWave

Tonal oscillator waveform.

Flags: Read / Write

Default value: Sine


The “volume” property

  “volume”                   guint

Tone volume.

Flags: Write

Allowed values: <= 255

Default value: 0

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-d_0.50.svg0000644042355400116100000003506512640736116026233 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.50 buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtAudioDelay.html0000644042355400116100000001745212640736116024705 0ustar00ensoniceng00000000000000 GstBtAudioDelay: GStreamer Buzztrax Reference Manual

GstBtAudioDelay

GstBtAudioDelay — audio echo effect

Properties

guint delaytime Read / Write
guint drywet Read / Write
guint feedback Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseTransform
                    ╰── GstBtAudioDelay

Implemented Interfaces

GstBtAudioDelay implements GstBtTempo.

Description

Example launch line

Echo effect with controllable effect-ratio, delay-time and feedback.

gst-launch-1.0 filesrc location="melo1.ogg" ! decodebin ! audioconvert ! audiodelay drywet=50 delaytime=25 feedback=75 ! autoaudiosink
gst-launch-1.0 autoaudiosrc ! audiodelay delaytime=25 feedback=75 ! autoaudiosink

In the latter example the echo is applied to the input signal of the soundcard (like a microphone).

Functions

Types and Values

struct GstBtAudioDelay

struct GstBtAudioDelay;

Class instance data.

Property Details

The “delaytime” property

  “delaytime”                guint

Time difference between two echos as milliseconds.

Flags: Read / Write

Allowed values: [1,1000]

Default value: 100


The “drywet” property

  “drywet”                   guint

Intensity of effect (0 none -> 100 full).

Flags: Read / Write

Allowed values: <= 100

Default value: 50


The “feedback” property

  “feedback”                 guint

Echo feedback in percent.

Flags: Read / Write

Allowed values: <= 99

Default value: 50

buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtSimSyn.html0000644042355400116100000003262612640736116024107 0ustar00ensoniceng00000000000000 GstBtSimSyn: GStreamer Buzztrax Reference Manual

GstBtSimSyn

GstBtSimSyn — simple monophonic audio synthesizer

Properties

gdouble attack Read / Write
gdouble cut-off Read / Write
gdouble decay Read / Write
GstBtFilterSVFType filter Read / Write
GstBtNote note Write
gdouble resonance Read / Write
GstBtToneConversionTuning tuning Read / Write
gdouble volume Read / Write
GstBtOscSynthWave wave Read / Write

Types and Values

struct GstBtSimSyn

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstBtAudioSynth
                        ╰── GstBtSimSyn

Implemented Interfaces

GstBtSimSyn implements GstPreset and GstBtTempo.

Description

Simple monophonic audio synthesizer with a single oscillator (GstBtOscSynth) , an attack-decay envelope (GstBtEnvelopeAD) and a state-variable filter (GstBtFilterSVF).

Example launch line

1
gst-launch-1.0 simsyn num-buffers=10 note="c-4" ! autoaudiosink
Render a sine wave tone.

Functions

Types and Values

struct GstBtSimSyn

struct GstBtSimSyn;

Class instance data.

Property Details

The “attack” property

  “attack”                   gdouble

Attack of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.001


The “cut-off” property

  “cut-off”                  gdouble

Audio filter cut-off frequency.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.8


The “decay” property

  “decay”                    gdouble

Decay of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “filter” property

  “filter”                   GstBtFilterSVFType

Type of audio filter.

Flags: Read / Write

Default value: LowPass


The “note” property

  “note”                     GstBtNote

Musical note (e.g. 'c-3', 'd#4').

Flags: Write

Default value: NONE


The “resonance” property

  “resonance”                gdouble

Audio filter resonance.

Flags: Read / Write

Allowed values: [0.7,25]

Default value: 0.8


The “tuning” property

  “tuning”                   GstBtToneConversionTuning

Harmonic tuning schema.

Flags: Read / Write

Default value: GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT


The “volume” property

  “volume”                   gdouble

Highest level of the envelope.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.8


The “wave” property

  “wave”                     GstBtOscSynthWave

Oscillator waveform.

Flags: Read / Write

Default value: Sine

buzztrax-0.10.2/docs/reference/bt-gst/html/buzztrax-gst-plugin.html0000644042355400116100000000464112640736116025675 0ustar00ensoniceng00000000000000 plugin: GStreamer Buzztrax Reference Manual

plugin

plugin — helpers for composition of gobjects

Description

Helper functions to compose gobjects.

Functions

Types and Values

buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_envelope-ad_attack=0.75.svg0000644042355400116100000003507512640736116027671 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 attack=0.75 buzztrax-0.10.2/docs/reference/bt-gst/html/lt-bt_gst_osc-synth_blue_noise.svg0000644042355400116100000003615712640736116027671 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Blue noise buzztrax-0.10.2/docs/reference/bt-gst/html/GstBtEnvelopeADSR.html0000644042355400116100000003351012640736116025105 0ustar00ensoniceng00000000000000 GstBtEnvelopeASDR: GStreamer Buzztrax Reference Manual

GstBtEnvelopeASDR

GstBtEnvelopeASDR — attack-decay-sustain-release envelope generator

Properties

gdouble attack Read / Write
gdouble decay Read / Write
gdouble floor-level Read / Write
guint length Read / Write
gdouble peak-level Read / Write
gdouble release Read / Write
gdouble sustain-level Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstControlSource
                ╰── GstTimedValueControlSource
                    ╰── GstInterpolationControlSource
                        ╰── GstBtEnvelope
                            ╰── GstBtEnvelopeADSR

Includes

#include <libgstbuzztrax/envelope-adsr.h>

Description

Classic attack-decay-sustain-release envelope.

Functions

gstbt_envelope_adsr_new ()

GstBtEnvelopeADSR *
gstbt_envelope_adsr_new (void);

Create a new instance

Returns

the new instance or NULL in case of an error


gstbt_envelope_adsr_setup ()

void
gstbt_envelope_adsr_setup (GstBtEnvelopeADSR *self,
                           gint samplerate,
                           GstClockTime ticktime);

Initialize the envelope for a new cycle.

Parameters

self

the envelope

 

samplerate

the audio sampling rate

 

ticktime

clocktime for one tick

 

Types and Values

struct GstBtEnvelopeADSR

struct GstBtEnvelopeADSR;

Class instance data.

Property Details

The “attack” property

  “attack”                   gdouble

Attack of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.1


The “decay” property

  “decay”                    gdouble

Decay of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “floor-level” property

  “floor-level”              gdouble

Lowest level of the envelope.

Flags: Read / Write

Allowed values: >= 0

Default value: 0


The “length” property

  “length”                   guint

Note length in ticks.

Flags: Read / Write

Allowed values: [1,255]

Default value: 1


The “peak-level” property

  “peak-level”               gdouble

Highest level of envelope.

Flags: Read / Write

Allowed values: >= 0

Default value: 1.79769e+308


The “release” property

  “release”                  gdouble

Release of the envelope in seconds.

Flags: Read / Write

Allowed values: [0.001,4]

Default value: 0.5


The “sustain-level” property

  “sustain-level”            gdouble

Sustain level of envelope.

Flags: Read / Write

Allowed values: >= 0

Default value: 8.98847e+307

buzztrax-0.10.2/docs/reference/bt-gst/buzztrax-gst.types0000644042355400116100000000152312640736116023631 0ustar00ensoniceng00000000000000bt_dec_get_type gstbt_audio_delay_get_type gstbt_audio_synth_get_type gstbt_child_bin_get_type gstbt_combine_get_type gstbt_combine_type_get_type gstbt_delay_get_type gstbt_e_beats_get_type gstbt_envelope_ad_get_type gstbt_envelope_adsr_get_type gstbt_envelope_d_get_type gstbt_envelope_get_type gstbt_filter_svf_get_type gstbt_filter_svf_type_get_type gstbt_fluid_synth_get_type gstbt_note_get_type gstbt_osc_synth_get_type gstbt_osc_synth_noise_wave_get_type gstbt_osc_synth_tonal_wave_get_type gstbt_osc_synth_wave_get_type gstbt_osc_wave_get_type gstbt_property_meta_get_type gstbt_sid_syn_get_type gstbt_sid_synv_get_type gstbt_sim_syn_get_type gstbt_tempo_get_type gstbt_tone_conversion_get_type gstbt_tone_conversion_tuning_get_type gstbt_trigger_switch_get_type gstbt_wave_index_get_type gstbt_wave_replay_get_type gstbt_wave_tab_syn_get_type buzztrax-0.10.2/docs/reference/bt-gst/buzztrax-gst-sections.txt0000644042355400116100000002304712640736116025136 0ustar00ensoniceng00000000000000
audiodelay GstBtAudioDelay GstBtAudioDelay GSTBT_AUDIO_DELAY GSTBT_AUDIO_DELAY_CLASS GSTBT_AUDIO_DELAY_GET_CLASS GSTBT_IS_AUDIO_DELAY GSTBT_IS_AUDIO_DELAY_CLASS GSTBT_TYPE_AUDIO_DELAY GstBtAudioDelayClass gstbt_audio_delay_get_type
audiosynth GstBtAudioSynth GstBtAudioSynth GstBtAudioSynthClass GSTBT_AUDIO_SYNTH GSTBT_AUDIO_SYNTH_CLASS GSTBT_AUDIO_SYNTH_GET_CLASS GSTBT_IS_AUDIO_SYNTH GSTBT_IS_AUDIO_SYNTH_CLASS GSTBT_TYPE_AUDIO_SYNTH gstbt_audio_synth_get_type
bt-dec BtDec BtDec BT_DEC BT_DEC_CLASS BT_DEC_GET_CLASS BT_IS_BIN BT_IS_BIN_CLASS BT_TYPE_DEC BtDecClass bt_dec_get_type
childbin GstBtChildBin GstBtChildBinInterface gstbt_child_bin_add_child gstbt_child_bin_remove_child GstBtChildBin GSTBT_CHILD_BIN GSTBT_CHILD_BIN_GET_INTERFACE GSTBT_IS_CHILD_BIN GSTBT_TYPE_CHILD_BIN gstbt_child_bin_get_type
combine GstBtCombine GstBtCombineType GstBtCombine gstbt_combine_new gstbt_combine_trigger gstbt_combine_process GSTBT_COMBINE GSTBT_COMBINE_CLASS GSTBT_COMBINE_GET_CLASS GSTBT_IS_COMBINE GSTBT_IS_COMBINE_CLASS GSTBT_TYPE_COMBINE GSTBT_TYPE_COMBINE_TYPE GstBtCombineClass gstbt_combine_get_type gstbt_combine_type_get_type
delay GstBtDelay GstBtDelay gstbt_delay_new gstbt_delay_start gstbt_delay_flush gstbt_delay_stop GSTBT_DELAY_BEFORE GSTBT_DELAY_AFTER GSTBT_DELAY_READ GSTBT_DELAY_WRITE GSTBT_DELAY GSTBT_DELAY_CLASS GSTBT_DELAY_GET_CLASS GSTBT_IS_DELAY GSTBT_IS_DELAY_CLASS GSTBT_TYPE_DELAY GstBtDelayClass gstbt_delay_get_type
ebeats GstBtEBeats GstBtEBeats GstBtEBeatsFilterRouting GSTBT_E_BEATS GSTBT_E_BEATS_CLASS GSTBT_E_BEATS_GET_CLASS GSTBT_IS_E_BEATS GSTBT_IS_E_BEATS_CLASS GSTBT_TYPE_E_BEATS GSTBT_TYPE_E_BEATS_FILTER_ROUTING_TYPE GstBtEBeatsClass gstbt_e_beats_get_type
envelope GstBtEnvelope GstBtEnvelope gstbt_envelope_is_running gstbt_envelope_reset GSTBT_ENVELOPE GSTBT_ENVELOPE_CLASS GSTBT_ENVELOPE_GET_CLASS GSTBT_IS_ENVELOPE GSTBT_IS_ENVELOPE_CLASS GSTBT_TYPE_ENVELOPE GstBtEnvelopeClass gstbt_envelope_get_type
envelope-ad GstBtEnvelopeAD GstBtEnvelopeAD gstbt_envelope_ad_new gstbt_envelope_ad_setup GSTBT_ENVELOPE_AD GSTBT_ENVELOPE_AD_CLASS GSTBT_ENVELOPE_AD_GET_CLASS GSTBT_IS_ENVELOPE_AD GSTBT_IS_ENVELOPE_AD_CLASS GSTBT_TYPE_ENVELOPE_AD GstBtEnvelopeADClass gstbt_envelope_ad_get_type
envelope-adsr GstBtEnvelopeADSR GstBtEnvelopeADSR gstbt_envelope_adsr_new gstbt_envelope_adsr_setup GSTBT_ENVELOPE_ADSR GSTBT_ENVELOPE_ADSR_CLASS GSTBT_ENVELOPE_ADSR_GET_CLASS GSTBT_IS_ENVELOPE_ADSR GSTBT_IS_ENVELOPE_ADSR_CLASS GSTBT_TYPE_ENVELOPE_ADSR GstBtEnvelopeADSRClass gstbt_envelope_adsr_get_type
envelope-d GstBtEnvelopeD GstBtEnvelopeD gstbt_envelope_d_new gstbt_envelope_d_setup GSTBT_ENVELOPE_D GSTBT_ENVELOPE_D_CLASS GSTBT_ENVELOPE_D_GET_CLASS GSTBT_IS_ENVELOPE_D GSTBT_IS_ENVELOPE_D_CLASS GSTBT_TYPE_ENVELOPE_D GstBtEnvelopeDClass gstbt_envelope_d_get_type
filter-svf GstBtFilterSVF GstBtFilterSVFType GstBtFilterSVF gstbt_filter_svf_new gstbt_filter_svf_trigger gstbt_filter_svf_process GSTBT_FILTER_SVF GSTBT_FILTER_SVF_CLASS GSTBT_FILTER_SVF_GET_CLASS GSTBT_IS_FILTER_SVF GSTBT_IS_FILTER_SVF_CLASS GSTBT_TYPE_FILTER_SVF GSTBT_TYPE_FILTER_SVF_TYPE GstBtFilterSVFClass gstbt_filter_svf_get_type gstbt_filter_svf_type_get_type
fluidsynth GstBtFluidSynth GstBtFluidSynthInterpolationMode GstBtFluidSynthChorusWaveform GstBtFluidSynth GSTBT_FLUID_SYNTH GSTBT_FLUID_SYNTH_CLASS GSTBT_FLUID_SYNTH_GET_CLASS GSTBT_IS_FLUID_SYNTH GSTBT_IS_FLUID_SYNTH_CLASS GSTBT_TYPE_FLUID_SYNTH GstBtFluidSynthClass gstbt_fluid_synth_get_type
bml bml BML BMLData BML_VERSION GstBML GST_BML GST_BML_CLASS GstBMLClass GstBMLMachineTypes GstBMLParameterTypes GstBMLPropertyIDs gstbml_preset_delete_preset gstbml_preset_finalize gstbml_preset_get_meta gstbml_preset_get_preset_names gstbml_preset_load_preset gstbml_preset_rename_preset gstbml_preset_save_preset gstbml_preset_set_meta
gstbmlsrc GstBMLSrc GST_BML_SRC GST_BML_SRC_CLASS GST_BML_SRC_GET_CLASS GST_IS_BML_SRC GST_IS_BML_SRC_CLASS GstBMLSrc GstBMLSrcClass bmln_src_get_type bmlw_src_get_type
gstbmltransform GstBMLTransform GST_BML_TRANSFORM GST_BML_TRANSFORM_CLASS GST_BML_TRANSFORM_GET_CLASS GST_IS_BML_TRANSFORM GST_IS_BML_TRANSFORM_CLASS GstBMLTransform GstBMLTransformClass bmln_transform_get_type bmlw_transform_get_type
gstbmlv GstBMLV GST_BMLV GST_BMLV_CLASS GST_BMLV_GET_CLASS GstBMLV GstBMLVClass bmln_v_get_type bmlw_v_get_type
musicenums GstBtTriggerSwitch GstBtNote GstBtWaveIndex GSTBT_TYPE_NOTE GSTBT_TYPE_TRIGGER_SWITCH GSTBT_TYPE_WAVE_INDEX gstbt_note_get_type gstbt_trigger_switch_get_type gstbt_wave_index_get_type
osc-synth GstBtOscSynth GstBtOscSynthWave GstBtOscSynthNoiseWave GstBtOscSynthTonalWave GstBtOscSynth gstbt_osc_synth_new gstbt_osc_synth_trigger gstbt_osc_synth_process GSTBT_IS_OSC_SYNTH GSTBT_IS_OSC_SYNTH_CLASS GSTBT_OSC_SYNTH GSTBT_OSC_SYNTH_CLASS GSTBT_OSC_SYNTH_GET_CLASS GSTBT_TYPE_OSC_SYNTH GSTBT_TYPE_OSC_SYNTH_NOISE_WAVE GSTBT_TYPE_OSC_SYNTH_TONAL_WAVE GSTBT_TYPE_OSC_SYNTH_WAVE GstBtOscSynthClass gstbt_osc_synth_get_type gstbt_osc_synth_noise_wave_get_type gstbt_osc_synth_tonal_wave_get_type gstbt_osc_synth_wave_get_type
osc-wave GstBtOscWave GstBtOscWave gstbt_osc_wave_setup gstbt_osc_wave_new GSTBT_IS_OSC_WAVE GSTBT_IS_OSC_WAVE_CLASS GSTBT_OSC_WAVE GSTBT_OSC_WAVE_CLASS GSTBT_OSC_WAVE_GET_CLASS GSTBT_TYPE_OSC_WAVE GstBtOscWaveClass gstbt_osc_wave_get_type
plugin bt_g_param_spec_override_range bt_g_param_spec_clone bt_g_param_spec_clone_as
propertymeta GstBtPropertyMeta GstBtPropertyMetaInterface gstbt_property_meta_describe_property gstbt_property_meta_quark gstbt_property_meta_quark_min_val gstbt_property_meta_quark_max_val gstbt_property_meta_quark_def_val gstbt_property_meta_quark_no_val GstBtPropertyMetaFlags GstBtPropertyMeta GSTBT_IS_PROPERTY_META GSTBT_PROPERTY_META GSTBT_PROPERTY_META_GET_INTERFACE GSTBT_TYPE_PROPERTY_META gstbt_property_meta_get_type
sidsyn GstBtSidSyn GstBtSidSyn GstBtSidSynChip GSTBT_IS_SID_SYN GSTBT_IS_SID_SYN_CLASS GSTBT_SID_SYN GSTBT_SID_SYN_CLASS GSTBT_SID_SYN_GET_CLASS GSTBT_TYPE_SID_SYN GstBtSidSynClass gstbt_sid_syn_get_type gstbt_sid_syn_chip_get_type
sidsynv GstBtSidSynV GstBtSidSynWave GstBtSidSynEffect GstBtSidSynV GSTBT_IS_SID_SYNV GSTBT_IS_SID_SYNV_CLASS GSTBT_SID_SYNV GSTBT_SID_SYNV_CLASS GSTBT_SID_SYNV_GET_CLASS GSTBT_TYPE_SID_SYNV GstBtSidSynVClass gstbt_sid_synv_get_type
simsyn GstBtSimSyn GstBtSimSyn GSTBT_IS_SIM_SYN GSTBT_IS_SIM_SYN_CLASS GSTBT_SIM_SYN GSTBT_SIM_SYN_CLASS GSTBT_SIM_SYN_GET_CLASS GSTBT_TYPE_SIM_SYN GstBtSimSynClass gstbt_sim_syn_get_type
tempo GstBtTempo GstBtTempoInterface gstbt_tempo_change_tempo GstBtTempo GSTBT_IS_TEMPO GSTBT_TEMPO GSTBT_TEMPO_GET_INTERFACE GSTBT_TYPE_TEMPO gstbt_tempo_get_type
toneconversion GstBtToneConversion GstBtToneConversionTuning GstBtToneConversion gstbt_tone_conversion_new gstbt_tone_conversion_translate_from_string gstbt_tone_conversion_translate_from_number gstbt_tone_conversion_note_string_2_number gstbt_tone_conversion_note_number_2_string gstbt_tone_conversion_note_number_offset GSTBT_IS_TONE_CONVERSION GSTBT_IS_TONE_CONVERSION_CLASS GSTBT_TONE_CONVERSION GSTBT_TONE_CONVERSION_CLASS GSTBT_TONE_CONVERSION_GET_CLASS GSTBT_TYPE_TONE_CONVERSION GSTBT_TYPE_TONE_CONVERSION_TUNING GstBtToneConversionClass gstbt_tone_conversion_get_type gstbt_tone_conversion_tuning_get_type
wavereplay GstBtWaveReplay GstBtWaveReplay GSTBT_IS_WAVE_REPLAY GSTBT_IS_WAVE_REPLAY_CLASS GSTBT_TYPE_WAVE_REPLAY GSTBT_WAVE_REPLAY GSTBT_WAVE_REPLAY_CLASS GSTBT_WAVE_REPLAY_GET_CLASS GstBtWaveReplayClass gstbt_wave_replay_get_type
wavetabsyn GstBtWaveTabSyn GstBtWaveTabSyn GSTBT_IS_WAVE_TAB_SYN GSTBT_IS_WAVE_TAB_SYN_CLASS GSTBT_TYPE_WAVE_TAB_SYN GSTBT_WAVE_TAB_SYN GSTBT_WAVE_TAB_SYN_CLASS GSTBT_WAVE_TAB_SYN_GET_CLASS GstBtWaveTabSynClass gstbt_wave_tab_syn_get_type
buzztrax-0.10.2/docs/reference/bt-gst/Makefile.am0000644042355400116100000000700612566602705022120 0ustar00ensoniceng00000000000000## Process this file with automake to produce Makefile.in # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE=buzztrax-gst # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml # Some parts are dynamic if FLUIDSYNTH_SUPPORT FLUIDSYNTH_LA = $(top_builddir)/libgstfluidsynth.la FLUIDSYNTH_IGNORE_H = else FLUIDSYNTH_LA = FLUIDSYNTH_IGNORE_H = fluidsynth.h endif # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR=$(top_srcdir)/src/lib/gst $(top_srcdir)/src/gst # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS=--type-init-func="extern void gst_init(gint *,gchar***);gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS=--rebuild-types # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml MKDB_OPTIONS=--sgml-mode --name-space=gstbt --source-suffixes=c,cc,h # Extra options to supply to gtkdoc-mktmpl # e.g. MKTMPL_OPTIONS=--only-section-tmpl MKTMPL_OPTIONS= # Extra options to supply to gtkdoc-fixref. Not normally needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB= $(top_srcdir)/src/lib/gst/*.h $(top_srcdir)/src/gst/*/*.h CFILE_GLOB= $(top_srcdir)/src/lib/gst/*.c $(top_srcdir)/src/gst/*/*.c # Header files to ignore when scanning. # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h # FIXME: this does not support path and thus is ambigous IGNORE_HFILES=gstdirectcontrolbinding.h \ $(BML_IGNORE_H) gstbmlorc.h gstbmlorc-dist.h \ $(top_srcdir)/src/gst/sidsyn/envelope.h extfilt.h filter.h pot.h siddefs.h sidemu.h spline.h voice.h wave.h \ $(FLUIDSYNTH_IGNORE_H) # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES:=$(wildcard images/*.svg) # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files= # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbuzztrax-gst.la \ $(top_builddir)/libbuzztraxaudio.la \ $(top_builddir)/libbuzztraxdec.la \ $(top_builddir)/libgstbml.la \ $(FLUIDSYNTH_LA) \ $(top_builddir)/libgstsidsyn.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) # This includes the standard gtk-doc make rules, copied by gtkdocize. include $(top_srcdir)/gtk-doc.make # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += $(DOC_MODULE).types # Comment this out if you want your docs-status tested during 'make check' if ENABLE_GTK_DOC TESTS_ENVIRONMENT = \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) TESTS = $(GTKDOC_CHECK) endif buzztrax-0.10.2/docs/reference/bt-gst/buzztrax-gst-docs.xml0000644042355400116100000000642112566434662024225 0ustar00ensoniceng00000000000000 ]> GStreamer Buzztrax Reference Manual Introduction This module contains experimental code that extends gstreamer. The extensions are required to build a git version of buzztrax. It also contains some nice audio elements. These could be easily moved to gst-plugin modules, but only with some of the interfaces base and utilty classes. GStreamer Buzztrax classes GStreamer Buzztrax interfaces GStreamer Buzztrax elements GStreamer Buzztrax elements subclasses Object Hierarchy Index Index of deprecated API buzztrax-0.10.2/docs/reference/bt-gst/Makefile.in0000644042355400116100000012621512640575013022127 0ustar00ensoniceng00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 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@ # -*- mode: makefile -*- #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \ $(top_srcdir)/test-driver subdir = docs/reference/bt-gst ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/orc.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac 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 = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ ALSA_DEPS_CFLAGS = @ALSA_DEPS_CFLAGS@ ALSA_DEPS_LIBS = @ALSA_DEPS_LIBS@ ALSA_DOC_SECTIONS = @ALSA_DOC_SECTIONS@ ALSA_DOC_TYPES = @ALSA_DOC_TYPES@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ ASPELL = @ASPELL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASE_DEPS_CFLAGS = @BASE_DEPS_CFLAGS@ BASE_DEPS_LIBS = @BASE_DEPS_LIBS@ BMLHOST_CCASFLAGS = @BMLHOST_CCASFLAGS@ BMLHOST_CFLAGS = @BMLHOST_CFLAGS@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BT_CFLAGS = @BT_CFLAGS@ BT_DISABLE_DEPRECATED = @BT_DISABLE_DEPRECATED@ BT_INCLUDEDIR = @BT_INCLUDEDIR@ BT_LDFLAGS = @BT_LDFLAGS@ BT_LIBDIR = @BT_LIBDIR@ BT_LIBS = @BT_LIBS@ BT_MAJORMINOR = @BT_MAJORMINOR@ BT_MAJOR_VERSION = @BT_MAJOR_VERSION@ BT_MICRO_VERSION = @BT_MICRO_VERSION@ BT_MINOR_VERSION = @BT_MINOR_VERSION@ BT_RELEASE_DATE = @BT_RELEASE_DATE@ BT_RELEASE_YEAR = @BT_RELEASE_YEAR@ BT_VERSION = @BT_VERSION@ BT_VERSION_INFO = @BT_VERSION_INFO@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@ FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIRDIR = @GIRDIR@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@ GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@ GREP = @GREP@ GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GSF_DEPS_CFLAGS = @GSF_DEPS_CFLAGS@ GSF_DEPS_LIBS = @GSF_DEPS_LIBS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ GST_PLUGIN_CFLAGS = @GST_PLUGIN_CFLAGS@ GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ GST_PLUGIN_LIBS = @GST_PLUGIN_LIBS@ GST_PREFIX = @GST_PREFIX@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_PREFIX = @GTK_PREFIX@ GUDEV_DEPS_CFLAGS = @GUDEV_DEPS_CFLAGS@ GUDEV_DEPS_LIBS = @GUDEV_DEPS_LIBS@ GUDEV_DOC_SECTIONS = @GUDEV_DOC_SECTIONS@ GUDEV_DOC_TYPES = @GUDEV_DOC_TYPES@ GUI_DEPS_CFLAGS = @GUI_DEPS_CFLAGS@ GUI_DEPS_LIBS = @GUI_DEPS_LIBS@ G_IR_COMPILER = @G_IR_COMPILER@ G_IR_GENERATE = @G_IR_GENERATE@ G_IR_SCANNER = @G_IR_SCANNER@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LINUX_INPUT_DOC_SECTIONS = @LINUX_INPUT_DOC_SECTIONS@ LINUX_INPUT_DOC_TYPES = @LINUX_INPUT_DOC_TYPES@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ ORC_LIBS = @ORC_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_ORIGIN = @PACKAGE_ORIGIN@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SCROLLKEEPER_BUILD_REQUIRED = @SCROLLKEEPER_BUILD_REQUIRED@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TYPELIBDIR = @TYPELIBDIR@ UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ UPDATE_ICON_CACHE = @UPDATE_ICON_CACHE@ UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ XFONT_PATH = @XFONT_PATH@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bcov_path = @bcov_path@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ lcov_path = @lcov_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ scrollkeeper_config = @scrollkeeper_config@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ valgrind_path = @valgrind_path@ with_desktop_dir = @with_desktop_dir@ xvfb_path = @xvfb_path@ # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE = buzztrax-gst # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml @FLUIDSYNTH_SUPPORT_FALSE@FLUIDSYNTH_LA = # Some parts are dynamic @FLUIDSYNTH_SUPPORT_TRUE@FLUIDSYNTH_LA = $(top_builddir)/libgstfluidsynth.la @FLUIDSYNTH_SUPPORT_FALSE@FLUIDSYNTH_IGNORE_H = fluidsynth.h @FLUIDSYNTH_SUPPORT_TRUE@FLUIDSYNTH_IGNORE_H = # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR = $(top_srcdir)/src/lib/gst $(top_srcdir)/src/gst # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS = --type-init-func="extern void gst_init(gint *,gchar***);gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS = --rebuild-types # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml MKDB_OPTIONS = --sgml-mode --name-space=gstbt --source-suffixes=c,cc,h # Extra options to supply to gtkdoc-mktmpl # e.g. MKTMPL_OPTIONS=--only-section-tmpl MKTMPL_OPTIONS = # Extra options to supply to gtkdoc-fixref. Not normally needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB = $(top_srcdir)/src/lib/gst/*.h $(top_srcdir)/src/gst/*/*.h CFILE_GLOB = $(top_srcdir)/src/lib/gst/*.c $(top_srcdir)/src/gst/*/*.c # Header files to ignore when scanning. # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h # FIXME: this does not support path and thus is ambigous IGNORE_HFILES = gstdirectcontrolbinding.h \ $(BML_IGNORE_H) gstbmlorc.h gstbmlorc-dist.h \ $(top_srcdir)/src/gst/sidsyn/envelope.h extfilt.h filter.h pot.h siddefs.h sidemu.h spline.h voice.h wave.h \ $(FLUIDSYNTH_IGNORE_H) # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES := $(wildcard images/*.svg) # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbuzztrax-gst.la \ $(top_builddir)/libbuzztraxaudio.la \ $(top_builddir)/libbuzztraxdec.la \ $(top_builddir)/libgstbml.la \ $(FLUIDSYNTH_LA) \ $(top_builddir)/libgstsidsyn.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt # This includes the standard gtk-doc make rules, copied by gtkdocize. # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) $(DOC_MODULE).types DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test @GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # Comment this out if you want your docs-status tested during 'make check' @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) @ENABLE_GTK_DOC_TRUE@TESTS = $(GTKDOC_CHECK) all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(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) --foreign docs/reference/bt-gst/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/reference/bt-gst/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_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am @ENABLE_GTK_DOC_FALSE@all-local: all-am: Makefile all-local installdirs: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: check-am install-am install-strip .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool clean-local cscopelist-am ctags-am \ dist-hook distclean distclean-generic distclean-libtool \ distclean-local distdir 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 maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags-am uninstall uninstall-am uninstall-local gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc @ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs @HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" @HAVE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local 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: buzztrax-0.10.2/docs/reference/bt-gst/images/0000755042355400116100000000000012640736116021323 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_or__a_b.svg0000644042355400116100000003615712564132166027113 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Or: A|B buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_pink_noise.svg0000644042355400116100000003615712560475534030211 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Pink noise buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_sample_and_hold.svg0000644042355400116100000003647412560475534031166 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Sample and Hold lt-bt_gst_filter-svf_hipass_cut-off=0.5_resonance=5.0.svg0000644042355400116100000006461312560742374033732 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -180 -160 -140 -120 -100 -80 -60 1 10 100 1000 10000 gnuplot_plot_1 HiPass cut-off=0.5 resonance=5.0 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_violet_noise.svg0000644042355400116100000003616112560475534030545 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Violet noise lt-bt_gst_filter-svf_lowpass_cut-off=0.5_resonance=0.7.svg0000644042355400116100000010764712564126623034137 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -104 -102 -100 -98 -96 -94 -92 -90 -88 -86 -84 1 10 100 1000 10000 gnuplot_plot_1 LowPass cut-off=0.5 resonance=0.7 lt-bt_gst_filter-svf_hipass_cut-off=0.5_resonance=0.7.svg0000644042355400116100000006576612564126623033743 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 1 10 100 1000 10000 gnuplot_plot_1 HiPass cut-off=0.5 resonance=0.7 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_square.svg0000644042355400116100000003615312560475534027347 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Square lt-bt_gst_filter-svf_lowpass_cut-off=0.5_resonance=5.0.svg0000644042355400116100000011460612560742374034131 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -110 -105 -100 -95 -90 -85 -80 -75 -70 1 10 100 1000 10000 gnuplot_plot_1 LowPass cut-off=0.5 resonance=5.0 lt-bt_gst_filter-svf_bandstop_cut-off=0.5_resonance=0.7.svg0000644042355400116100000012046512564126623034252 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -94 -92 -90 -88 -86 -84 -82 -80 1 10 100 1000 10000 gnuplot_plot_1 BandStop cut-off=0.5 resonance=0.7 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_white_noise.svg0000644042355400116100000003624112560475534030362 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 White noise buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_sine.svg0000644042355400116100000003622712560475534027007 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Sine buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_white_gaussian_noise.svg0000644042355400116100000003624312560475534032256 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 White Gaussian noise buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_triangle.svg0000644042355400116100000003622312560475534027652 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Triangle buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-ad_attack=0.50.svg0000644042355400116100000003507412566414510030160 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 attack=0.50 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-d_1.00.svg0000644042355400116100000003450712560475534026535 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 1.00 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-ad_attack=0.25.svg0000644042355400116100000003507512566414510030163 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 attack=0.25 lt-bt_gst_filter-svf_hipass_cut-off=0.5_resonance=10.0.svg0000644042355400116100000007572512564126623034011 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 1 10 100 1000 10000 gnuplot_plot_1 HiPass cut-off=0.5 resonance=10.0 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_mul__a*b.svg0000644042355400116100000003615512564132166027201 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Mul: A*B lt-bt_gst_filter-svf_bandstop_cut-off=0.5_resonance=5.0.svg0000644042355400116100000010472112560742374034250 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -88 -86 -84 -82 -80 -78 -76 1 10 100 1000 10000 gnuplot_plot_1 BandStop cut-off=0.5 resonance=5.0 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_max__max_a,b_.svg0000644042355400116100000003615412564132166030176 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Max: Max(A,B) buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-d_0.75.svg0000644042355400116100000003502312560475534026542 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.75 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_mix__a+b.svg0000644042355400116100000003616712564132166027205 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Mix: A+B lt-bt_gst_filter-svf_bandpass_cut-off=0.5_resonance=10.0.svg0000644042355400116100000007714412564126623034312 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 1 10 100 1000 10000 gnuplot_plot_1 BandPass cut-off=0.5 resonance=10.0 lt-bt_gst_filter-svf_lowpass_cut-off=0.5_resonance=10.0.svg0000644042355400116100000011571312564126623034202 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 1 10 100 1000 10000 gnuplot_plot_1 LowPass cut-off=0.5 resonance=10.0 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_red__brownian__noise.svg0000644042355400116100000003617112560475534032213 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Red (brownian) noise lt-bt_gst_filter-svf_bandpass_cut-off=0.5_resonance=5.0.svg0000644042355400116100000007416712560742374034243 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -150 -140 -130 -120 -110 -100 -90 -80 -70 1 10 100 1000 10000 gnuplot_plot_1 BandPass cut-off=0.5 resonance=5.0 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-d_0.00.svg0000644042355400116100000003532712560475534026535 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.00 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_xor__a_b.svg0000644042355400116100000003622412564132166027276 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Xor: A^B buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_min__min_a,b_.svg0000644042355400116100000003630412564132166030167 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Min: Min(A,B) buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_saw.svg0000644042355400116100000003621612560475534026641 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Saw buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_silence.svg0000644042355400116100000003615412560475534027472 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Silence buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_sub__a-b.svg0000644042355400116100000003621612564132166027176 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Sub: A-B lt-bt_gst_filter-svf_bandpass_cut-off=0.5_resonance=0.7.svg0000644042355400116100000006053612564126623034235 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -150 -140 -130 -120 -110 -100 -90 -80 1 10 100 1000 10000 gnuplot_plot_1 BandPass cut-off=0.5 resonance=0.7 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-d_0.25.svg0000644042355400116100000003521212560475534026535 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.25 lt-bt_gst_filter-svf_bandstop_cut-off=0.5_resonance=10.0.svg0000644042355400116100000010614012564126623034316 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-gst/images Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -86 -84 -82 -80 -78 -76 -74 -72 -70 1 10 100 1000 10000 gnuplot_plot_1 BandStop cut-off=0.5 resonance=10.0 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_combine_and__a_b.svg0000644042355400116100000003621112564132166027224 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 And: A&B buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-d_0.50.svg0000644042355400116100000003506512560475534026541 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 0.50 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_envelope-ad_attack=0.75.svg0000644042355400116100000003507512566414510030170 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 0 0.2 0.4 0.6 0.8 1 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 attack=0.75 buzztrax-0.10.2/docs/reference/bt-gst/images/lt-bt_gst_osc-synth_blue_noise.svg0000644042355400116100000003615712560475534030177 0ustar00ensoniceng00000000000000 Gnuplot Produced by GNUPLOT 4.6 patchlevel 4 -30000 -20000 -10000 0 10000 20000 30000 0 20 40 60 80 100 120 140 160 180 200 gnuplot_plot_1 Blue noise buzztrax-0.10.2/docs/reference/bt-cmd/0000755042355400116100000000000012640736116020024 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-cmd/buzztrax-cmd-overrides.txt0000644042355400116100000000000012144654421025202 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-cmd/buzztrax-cmd-docs.xml0000644042355400116100000000622612144654421024131 0ustar00ensoniceng00000000000000 %version-entities; ]> Buzztrax Bt-Cmd Reference Manual for Buzztrax &BT_VERSION;. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-cmd/. Introduction Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch. The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures. Overview User Application API Reference The classes described in this chapter are all part of end user application code. Please make sure you have read section conventions before reading further. User Application Command Line Reference Appendix Object Hierarchy API Index Index of deprecated API buzztrax-0.10.2/docs/reference/bt-cmd/html/0000755042355400116100000000000012640736116020770 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-cmd/html/buzztrax-cmd-btcmd.html0000644042355400116100000001214712640736116025404 0ustar00ensoniceng00000000000000 btcmd: Buzztrax Bt-Cmd Reference Manual

btcmd

btcmd — buzztrax commandline tool

Includes

#include "bt-cmd.h"

Description

Implements the body of the buzztrax commandline tool.

You can try to run the uninstalled program via

1
libtool --mode=execute buzztrax-cmd --command=info --input-file=<filename>

to enable debug output add:

1
2
--gst-debug="*:2,bt-*:3" for not-so-much-logdata or
--gst-debug="*:2,bt-*:4" for a-lot-of-log-data

Example songs can be found in ./test/songs/.

Functions

Types and Values

See Also

BtCmdApplication

buzztrax-0.10.2/docs/reference/bt-cmd/html/home.png0000644042355400116100000000040012640736116022420 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME &IDAT8ҽ Aߞf`n v`6`/`Yܡ`f&k$,} 0b+ԸaQW~b O e{y N[L}.piBzmm o.I]7^[;%:VIENDB`buzztrax-0.10.2/docs/reference/bt-cmd/html/BtCmdApplication.html0000644042355400116100000004041212640736116025034 0ustar00ensoniceng00000000000000 BtCmdApplication: Buzztrax Bt-Cmd Reference Manual

BtCmdApplication

BtCmdApplication — class for a commandline based buzztrax tool application

Properties

gboolean quiet Write

Types and Values

Object Hierarchy

    GObject
    ╰── BtApplication
        ╰── BtCmdApplication

Includes

#include "bt-cmd.h"

Description

This class implements the body of the buzztrax commandline tool. It provides application level function like play, convert and encode songs.

Functions

bt_cmd_application_new ()

BtCmdApplication *
bt_cmd_application_new (gboolean quiet);

Create a new instance

Parameters

quiet

do not output on stdout

 

Returns

the new instance or NULL in case of an error


bt_cmd_application_play ()

gboolean
bt_cmd_application_play (const BtCmdApplication *self,
                         const gchar *input_file_name);

load and play the file of the supplied name

Parameters

self

the application instance to run

 

input_file_name

the file to play

 

Returns

TRUE for success


bt_cmd_application_info ()

gboolean
bt_cmd_application_info (const BtCmdApplication *self,
                         const gchar *input_file_name,
                         const gchar *output_file_name);

load the file of the supplied name and print information about it to stdout.

Parameters

self

the application instance to run

 

input_file_name

the file to print information about

 

output_file_name

the file to put informations from the input_file_name. If the given file_name is NULL, stdout is used to print the informations.

 

Returns

TRUE for success


bt_cmd_application_convert ()

gboolean
bt_cmd_application_convert (const BtCmdApplication *self,
                            const gchar *input_file_name,
                            const gchar *output_file_name);

Load the file of the supplied name and convert it into a buzztrax song file. The type of the input file is automatically determined.

Parameters

self

the application instance to run

 

input_file_name

the file to read in

 

output_file_name

the file to generate

 

Returns

TRUE for success


bt_cmd_application_encode ()

gboolean
bt_cmd_application_encode (const BtCmdApplication *self,
                           const gchar *input_file_name,
                           const gchar *output_file_name);

Load the file of the supplied name and encode it as an audio file. The type of the output file is automatically determined from the filename extension.

Parameters

self

the application instance to run

 

input_file_name

the file to read in

 

output_file_name

the file to generate

 

Returns

TRUE for success

Types and Values

struct BtCmdApplication

struct BtCmdApplication;

BtApplication subclass for the commandline application

Property Details

The “quiet” property

  “quiet”                    gboolean

tell wheter the app should do output or not.

Flags: Write

Default value: FALSE

buzztrax-0.10.2/docs/reference/bt-cmd/html/left-insensitive.png0000644042355400116100000000061312640736116024766 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEƫqIDAT8͒NQ@pds`*4@W@ A!Ԇ@6^ 5hxIH R`sQp̙339B|sKEQTK@۝΁i^~Wʆ`0TJ6TcYn6A ƀ~߱>}ǭs; lYkwr 5U= /" "uU=ɲlArDzp5I4^E+P3Ɯq_p ̥iUYp=#IENDB`buzztrax-0.10.2/docs/reference/bt-cmd/html/buzztrax-cmd-ops.html0000644042355400116100000000773212640736116025120 0ustar00ensoniceng00000000000000 buzztrax-cmd: Buzztrax Bt-Cmd Reference Manual

buzztrax-cmd

buzztrax-cmd — work with buzztrax songs

Synopsis

buzztrax-cmd [options...]

Description

buzztrax-cmd can be used to inspect, play and convert buzztrax songs from the commandline.

Invocation

buzztrax-cmd takes a mandatory argument that specifies the command and extra options depending on the command.

Options

-q, --quiet

Be quiet (no verbose ouput when running)

-c, --command command-name

The command to exeute, one of: info, play, convert, encode

-i, --input-file song-filename

The input filename. This should be a song file buzztrax can handle.

-o, --output-file song-filename

The output filename. Depending on the command this is the result of the file-format conversion or the song-rendering.

-h, --help

Print brief help and exit.

--version

Print version and exit.

buzztrax-0.10.2/docs/reference/bt-cmd/html/right.png0000644042355400116100000000040512640736116022612 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME!GIDAT8үa?MIdEr,-hAIl ry}sX6 !9#D r$-Br$G"$;WZ&!cq \`軀O=QoufIENDB`buzztrax-0.10.2/docs/reference/bt-cmd/html/left.png0000644042355400116100000000040612640736116022430 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME,`m;IDAT8үa?DAPY\$[p+IIMlf('}Mpy{_ޥ}^q xZ <=Yj) <04\~+Pl#",Qϑp Iǐlsw>[/]_i03IENDB`buzztrax-0.10.2/docs/reference/bt-cmd/html/style.css0000644042355400116100000002115412640736116022645 0ustar00ensoniceng00000000000000body { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.informaltable table { border-collapse: separate; border-spacing: 1em 0.3em; border: none; } div.informaltable table td, div.informaltable table th { vertical-align: top; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } /* code listings */ .listing_code .programlisting .normal, .listing_code .programlisting .normal a, .listing_code .programlisting .number, .listing_code .programlisting .cbracket, .listing_code .programlisting .symbol { color: #555753; } .listing_code .programlisting .comment, .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ .listing_code .programlisting .function, .listing_code .programlisting .function a, .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ .listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ .listing_code .programlisting .keyword, .listing_code .programlisting .usertype, .listing_code .programlisting .type, .listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } buzztrax-0.10.2/docs/reference/bt-cmd/html/index.html0000644042355400116100000000477312640736116023000 0ustar00ensoniceng00000000000000 Buzztrax Bt-Cmd Reference Manual: Buzztrax Bt-Cmd Reference Manual

for Buzztrax 0.11.0. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-cmd/.


Introduction
I. Overview
II. User Application API Reference
btcmd — buzztrax commandline tool
BtCmdApplication — class for a commandline based buzztrax tool application
III. User Application Command Line Reference
buzztrax-cmd — work with buzztrax songs
IV. Appendix
Object Hierarchy
API Index
Index of deprecated API
buzztrax-0.10.2/docs/reference/bt-cmd/html/objecttree.html0000644042355400116100000000373212640736116024011 0ustar00ensoniceng00000000000000 Object Hierarchy: Buzztrax Bt-Cmd Reference Manual

Object Hierarchy

    GObject
    ╰── BtApplication
        ╰── BtCmdApplication
buzztrax-0.10.2/docs/reference/bt-cmd/html/api-index-deprecated.html0000644042355400116100000000303012640736116025626 0ustar00ensoniceng00000000000000 Index of deprecated API: Buzztrax Bt-Cmd Reference Manual

Index of deprecated API

buzztrax-0.10.2/docs/reference/bt-cmd/html/uibtcmd.html0000644042355400116100000000463512640736116023315 0ustar00ensoniceng00000000000000 User Application API Reference: Buzztrax Bt-Cmd Reference Manual

User Application API Reference


Abstract

The classes described in this chapter are all part of end user application code. Please make sure you have read section conventions before reading further.

Table of Contents

btcmd — buzztrax commandline tool
BtCmdApplication — class for a commandline based buzztrax tool application
buzztrax-0.10.2/docs/reference/bt-cmd/html/right-insensitive.png0000644042355400116100000000056512640736116025157 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME ^IDAT8͒J` /S_$AqrW(>m"]\(49.Nd39{eM#MSIιEiHz|3{̲l3,KkV'@EEQlwyiq]Kh4:mĦ,;ts\aR5/7'Wps׭I,K1=0j0Wg> PU𻤝0 ]?qCҫιg~kA_IENDB`buzztrax-0.10.2/docs/reference/bt-cmd/html/buzztrax-cmd.devhelp20000644042355400116100000000347612640736116025067 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/docs/reference/bt-cmd/html/up-insensitive.png0000644042355400116100000000056612640736116024467 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEwIIDAT8?/Qϙ?[u$VHTDۈBM+! Introduction: Buzztrax Bt-Cmd Reference Manual

Introduction

Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch.

The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures.

buzztrax-0.10.2/docs/reference/bt-cmd/html/up.png0000644042355400116100000000040412640736116022120 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME IDAT81 @D{xa;$]r =JR1, Sd-}0̟oL:m-QO[ k TzMޠL,:ךu!tK; Pp Ot@l/̵*l}IENDB`buzztrax-0.10.2/docs/reference/bt-cmd/html/api-index.html0000644042355400116100000000677712640736116023555 0ustar00ensoniceng00000000000000 API Index: Buzztrax Bt-Cmd Reference Manual buzztrax-0.10.2/docs/reference/bt-cmd/html/pt02.html0000644042355400116100000000365312640736116022452 0ustar00ensoniceng00000000000000 Part IV. Appendix: Buzztrax Bt-Cmd Reference Manual

Part IV. Appendix

buzztrax-0.10.2/docs/reference/bt-cmd/html/pt01.html0000644042355400116100000000310312640736116022437 0ustar00ensoniceng00000000000000 Part I. Overview: Buzztrax Bt-Cmd Reference Manual

Part I. Overview

buzztrax-0.10.2/docs/reference/bt-cmd/html/uibtcmdopts.html0000644042355400116100000000360612640736116024220 0ustar00ensoniceng00000000000000 User Application Command Line Reference: Buzztrax Bt-Cmd Reference Manual

User Application Command Line Reference


Table of Contents

buzztrax-cmd — work with buzztrax songs
buzztrax-0.10.2/docs/reference/bt-cmd/buzztrax-cmd.xml0000644042355400116100000000467712144654421023213 0ustar00ensoniceng00000000000000 the buzztrax project Development and documentation. buzztrax buzztrax-cmd 1 Buzztrax Manual Pages buzztrax-cmd work with buzztrax songs buzztrax-cmd options Description buzztrax-cmd can be used to inspect, play and convert buzztrax songs from the commandline. Invocation buzztrax-cmd takes a mandatory argument that specifies the command and extra options depending on the command. Options , Be quiet (no verbose ouput when running) , command-name The command to exeute, one of: info, play, convert, encode , song-filename The input filename. This should be a song file buzztrax can handle. , song-filename The output filename. Depending on the command this is the result of the file-format conversion or the song-rendering. , Print brief help and exit. Print version and exit. buzztrax-0.10.2/docs/reference/bt-cmd/Makefile.am0000644042355400116100000000530012461664600022055 0ustar00ensoniceng00000000000000## Process this file with automake to produce Makefile.in # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE=buzztrax-cmd # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR=$(top_srcdir)/src/ui/cmd # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS=--type-init-func="gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS=--deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS=--sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ \ --extra-dir=.. # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB=$(top_srcdir)/src/ui/cmd/*.h CFILE_GLOB=$(top_srcdir)/src/ui/cmd/*.c # Header files to ignore when scanning. IGNORE_HFILES= # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = buzztrax-cmd.xml # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/ui/cmd \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbtcmd.la \ $(top_builddir)/libbuzztrax-core.la \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) # -Wl,--no-as-needed # include generic part include $(top_srcdir)/gtk-doc.make if ENABLE_GTK_DOC if ENABLE_MAN man_MANS = \ buzztrax-cmd.1 %.1 : %.xml @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< BUILT_EXTRA_DIST = $(man_MANS) endif endif # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += \ $(DOC_MODULE).types \ $(content_files) # Comment this out if you want your docs-status tested during 'make check' if ENABLE_GTK_DOC TESTS_ENVIRONMENT = \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) TESTS = $(GTKDOC_CHECK) endif buzztrax-0.10.2/docs/reference/bt-cmd/Makefile.in0000644042355400116100000013040712640575013022073 0ustar00ensoniceng00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 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@ # -*- mode: makefile -*- #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \ $(top_srcdir)/test-driver subdir = docs/reference/bt-cmd ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/orc.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac 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 = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ ALSA_DEPS_CFLAGS = @ALSA_DEPS_CFLAGS@ ALSA_DEPS_LIBS = @ALSA_DEPS_LIBS@ ALSA_DOC_SECTIONS = @ALSA_DOC_SECTIONS@ ALSA_DOC_TYPES = @ALSA_DOC_TYPES@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ ASPELL = @ASPELL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASE_DEPS_CFLAGS = @BASE_DEPS_CFLAGS@ BASE_DEPS_LIBS = @BASE_DEPS_LIBS@ BMLHOST_CCASFLAGS = @BMLHOST_CCASFLAGS@ BMLHOST_CFLAGS = @BMLHOST_CFLAGS@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BT_CFLAGS = @BT_CFLAGS@ BT_DISABLE_DEPRECATED = @BT_DISABLE_DEPRECATED@ BT_INCLUDEDIR = @BT_INCLUDEDIR@ BT_LDFLAGS = @BT_LDFLAGS@ BT_LIBDIR = @BT_LIBDIR@ BT_LIBS = @BT_LIBS@ BT_MAJORMINOR = @BT_MAJORMINOR@ BT_MAJOR_VERSION = @BT_MAJOR_VERSION@ BT_MICRO_VERSION = @BT_MICRO_VERSION@ BT_MINOR_VERSION = @BT_MINOR_VERSION@ BT_RELEASE_DATE = @BT_RELEASE_DATE@ BT_RELEASE_YEAR = @BT_RELEASE_YEAR@ BT_VERSION = @BT_VERSION@ BT_VERSION_INFO = @BT_VERSION_INFO@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@ FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIRDIR = @GIRDIR@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@ GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@ GREP = @GREP@ GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GSF_DEPS_CFLAGS = @GSF_DEPS_CFLAGS@ GSF_DEPS_LIBS = @GSF_DEPS_LIBS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ GST_PLUGIN_CFLAGS = @GST_PLUGIN_CFLAGS@ GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ GST_PLUGIN_LIBS = @GST_PLUGIN_LIBS@ GST_PREFIX = @GST_PREFIX@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_PREFIX = @GTK_PREFIX@ GUDEV_DEPS_CFLAGS = @GUDEV_DEPS_CFLAGS@ GUDEV_DEPS_LIBS = @GUDEV_DEPS_LIBS@ GUDEV_DOC_SECTIONS = @GUDEV_DOC_SECTIONS@ GUDEV_DOC_TYPES = @GUDEV_DOC_TYPES@ GUI_DEPS_CFLAGS = @GUI_DEPS_CFLAGS@ GUI_DEPS_LIBS = @GUI_DEPS_LIBS@ G_IR_COMPILER = @G_IR_COMPILER@ G_IR_GENERATE = @G_IR_GENERATE@ G_IR_SCANNER = @G_IR_SCANNER@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LINUX_INPUT_DOC_SECTIONS = @LINUX_INPUT_DOC_SECTIONS@ LINUX_INPUT_DOC_TYPES = @LINUX_INPUT_DOC_TYPES@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ ORC_LIBS = @ORC_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_ORIGIN = @PACKAGE_ORIGIN@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SCROLLKEEPER_BUILD_REQUIRED = @SCROLLKEEPER_BUILD_REQUIRED@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TYPELIBDIR = @TYPELIBDIR@ UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ UPDATE_ICON_CACHE = @UPDATE_ICON_CACHE@ UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ XFONT_PATH = @XFONT_PATH@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bcov_path = @bcov_path@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ lcov_path = @lcov_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ scrollkeeper_config = @scrollkeeper_config@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ valgrind_path = @valgrind_path@ with_desktop_dir = @with_desktop_dir@ xvfb_path = @xvfb_path@ # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE = buzztrax-cmd # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR = $(top_srcdir)/src/ui/cmd # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS = --type-init-func="gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS = --deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS = --sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ \ --extra-dir=.. # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB = $(top_srcdir)/src/ui/cmd/*.h CFILE_GLOB = $(top_srcdir)/src/ui/cmd/*.c # Header files to ignore when scanning. IGNORE_HFILES = # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = buzztrax-cmd.xml # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/ui/cmd \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbtcmd.la \ $(top_builddir)/libbuzztrax-core.la \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) $(DOC_MODULE).types \ $(content_files) DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test @GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # -Wl,--no-as-needed # include generic part @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@man_MANS = \ @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@ buzztrax-cmd.1 @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@BUILT_EXTRA_DIST = $(man_MANS) # Comment this out if you want your docs-status tested during 'make check' @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) @ENABLE_GTK_DOC_TRUE@TESTS = $(GTKDOC_CHECK) all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(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) --foreign docs/reference/bt-cmd/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/reference/bt-cmd/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_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am @ENABLE_GTK_DOC_FALSE@all-local: all-am: Makefile $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(man1dir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local uninstall-man uninstall-man: uninstall-man1 .MAKE: check-am install-am install-strip .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool clean-local cscopelist-am ctags-am \ dist-hook distclean distclean-generic distclean-libtool \ distclean-local distdir 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-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags-am uninstall uninstall-am uninstall-local \ uninstall-man uninstall-man1 gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc @ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs @HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" @HAVE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@%.1 : %.xml @ENABLE_GTK_DOC_TRUE@@ENABLE_MAN_TRUE@ @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< # 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: buzztrax-0.10.2/docs/reference/bt-cmd/buzztrax-cmd.types0000644042355400116100000000011112640736116023535 0ustar00ensoniceng00000000000000#include "core/core.h" #include "bt-cmd.h" bt_cmd_application_get_type buzztrax-0.10.2/docs/reference/bt-cmd/buzztrax-cmd-sections.txt0000644042355400116100000000152112640736116025043 0ustar00ensoniceng00000000000000# :mode=html: # please add section in the alpahbetical order using the following template #
# btxxx # BtXxx # #
"bt-cmd.h"
btcmdapplication BtCmdApplication BtCmdApplication bt_cmd_application_new bt_cmd_application_play bt_cmd_application_info bt_cmd_application_convert bt_cmd_application_encode BtCmdApplicationClass BT_CMD_APPLICATION BT_IS_CMD_APPLICATION BT_CMD_APPLICATION_CLASS BT_IS_CMD_APPLICATION_CLASS BT_CMD_APPLICATION_GET_CLASS BT_TYPE_CMD_APPLICATION bt_cmd_application_get_type BtCmdApplicationPrivate
btcmd btcmd GST_CAT_DEFAULT # gettext extras _ N_ bindtextdomain dgettext gettext textdomain
buzztrax-0.10.2/docs/reference/bt-ic/0000755042355400116100000000000012640736116017654 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-ic/buzztrax-ic-sections.txt.in0000644042355400116100000001406512442120044025122 0ustar00ensoniceng00000000000000# $Id: buzztrax-ic-sections.txt 3552 2011-08-19 13:23:12Z ensonic $ # :mode=html: # please add section in the alpahbetical order using the following template #
# btxxx # BtXxx # #
libbtic/ic.h
bticabsrangecontrol BtIcAbsRangeControl BtIcAbsRangeControl btic_abs_range_control_new BtIcAbsRangeControlClass BTIC_ABS_RANGE_CONTROL BTIC_IS_ABS_RANGE_CONTROL BTIC_TYPE_ABS_RANGE_CONTROL BTIC_ABS_RANGE_CONTROL_CLASS BTIC_IS_ABS_RANGE_CONTROL_CLASS BTIC_ABS_RANGE_CONTROL_GET_CLASS BtIcAbsRangeControlPrivate btic_abs_range_control_get_type
bticcontrol BtIcControl BtIcControl BtIcControlClass BTIC_CONTROL BTIC_IS_CONTROL BTIC_TYPE_CONTROL BTIC_CONTROL_CLASS BTIC_IS_CONTROL_CLASS BTIC_CONTROL_GET_CLASS BtIcControlPrivate btic_control_get_type
bticdevice BtIcDevice BtIcDevice btic_device_add_control btic_device_get_control_by_id btic_device_get_control_by_name btic_device_has_controls btic_device_start btic_device_stop btic_device_virtual_start btic_device_virtual_stop BtIcDeviceClass BTIC_DEVICE BTIC_IS_DEVICE BTIC_TYPE_DEVICE BTIC_DEVICE_CLASS BTIC_IS_DEVICE_CLASS BTIC_DEVICE_GET_CLASS BtIcDevicePrivate btic_device_get_type
@ALSA_DOC_SECTIONS@
@ALSA_DOC_SECTIONS@bticaseqdevice @ALSA_DOC_SECTIONS@BtIcASeqDevice @ALSA_DOC_SECTIONS@BtIcASeqDevice @ALSA_DOC_SECTIONS@btic_aseq_device_new @ALSA_DOC_SECTIONS@ @ALSA_DOC_SECTIONS@BtIcASeqDeviceClass @ALSA_DOC_SECTIONS@BTIC_ASEQ_DEVICE @ALSA_DOC_SECTIONS@BTIC_IS_ASEQ_DEVICE @ALSA_DOC_SECTIONS@BTIC_TYPE_ASEQ_DEVICE @ALSA_DOC_SECTIONS@BTIC_ASEQ_DEVICE_CLASS @ALSA_DOC_SECTIONS@BTIC_IS_ASEQ_DEVICE_CLASS @ALSA_DOC_SECTIONS@BTIC_ASEQ_DEVICE_GET_CLASS @ALSA_DOC_SECTIONS@BtIcASeqDevicePrivate @ALSA_DOC_SECTIONS@btic_aseq_device_get_type @ALSA_DOC_SECTIONS@
@ALSA_DOC_SECTIONS@
@ALSA_DOC_SECTIONS@bticaseqdiscoverer @ALSA_DOC_SECTIONS@BtIcASeqDiscoverer @ALSA_DOC_SECTIONS@BtIcASeqDiscoverer @ALSA_DOC_SECTIONS@btic_aseq_discoverer_new @ALSA_DOC_SECTIONS@ @ALSA_DOC_SECTIONS@BtIcASeqDiscovererClass @ALSA_DOC_SECTIONS@BTIC_ASEQ_DISCOVERER @ALSA_DOC_SECTIONS@BTIC_IS_ASEQ_DISCOVERER @ALSA_DOC_SECTIONS@BTIC_TYPE_ASEQ_DISCOVERER @ALSA_DOC_SECTIONS@BTIC_ASEQ_DISCOVERER_CLASS @ALSA_DOC_SECTIONS@BTIC_IS_ASEQ_DISCOVERER_CLASS @ALSA_DOC_SECTIONS@BTIC_ASEQ_DISCOVERER_GET_CLASS @ALSA_DOC_SECTIONS@BtIcASeqDiscovererPrivate @ALSA_DOC_SECTIONS@btic_aseq_discoverer_get_type @ALSA_DOC_SECTIONS@
@GUDEV_DOC_SECTIONS@
@GUDEV_DOC_SECTIONS@bticgudevdiscoverer @GUDEV_DOC_SECTIONS@BtIcGudevDiscoverer @GUDEV_DOC_SECTIONS@BtIcGudevDiscoverer @GUDEV_DOC_SECTIONS@btic_gudev_discoverer_new @GUDEV_DOC_SECTIONS@ @GUDEV_DOC_SECTIONS@BtIcGudevDiscovererClass @GUDEV_DOC_SECTIONS@BTIC_GUDEV_DISCOVERER @GUDEV_DOC_SECTIONS@BTIC_IS_GUDEV_DISCOVERER @GUDEV_DOC_SECTIONS@BTIC_TYPE_GUDEV_DISCOVERER @GUDEV_DOC_SECTIONS@BTIC_GUDEV_DISCOVERER_CLASS @GUDEV_DOC_SECTIONS@BTIC_IS_GUDEV_DISCOVERER_CLASS @GUDEV_DOC_SECTIONS@BTIC_GUDEV_DISCOVERER_GET_CLASS @GUDEV_DOC_SECTIONS@BtIcGudevDiscovererPrivate @GUDEV_DOC_SECTIONS@btic_gudev_discoverer_get_type @GUDEV_DOC_SECTIONS@
@LINUX_INPUT_DOC_SECTIONS@
@LINUX_INPUT_DOC_SECTIONS@bticinputdevice @LINUX_INPUT_DOC_SECTIONS@BtIcInputDevice @LINUX_INPUT_DOC_SECTIONS@BtIcInputDevice @LINUX_INPUT_DOC_SECTIONS@btic_input_device_new @LINUX_INPUT_DOC_SECTIONS@ @LINUX_INPUT_DOC_SECTIONS@BtIcInputDeviceClass @LINUX_INPUT_DOC_SECTIONS@BTIC_INPUT_DEVICE @LINUX_INPUT_DOC_SECTIONS@BTIC_IS_INPUT_DEVICE @LINUX_INPUT_DOC_SECTIONS@BTIC_TYPE_INPUT_DEVICE @LINUX_INPUT_DOC_SECTIONS@BTIC_INPUT_DEVICE_CLASS @LINUX_INPUT_DOC_SECTIONS@BTIC_IS_INPUT_DEVICE_CLASS @LINUX_INPUT_DOC_SECTIONS@BTIC_INPUT_DEVICE_GET_CLASS @LINUX_INPUT_DOC_SECTIONS@BtIcInputDevicePrivate @LINUX_INPUT_DOC_SECTIONS@btic_input_device_get_type @LINUX_INPUT_DOC_SECTIONS@
bticlearn BtIcLearn BtIcLearn btic_learn_start btic_learn_stop btic_learn_register_learned_control btic_learn_load_controller_map btic_learn_store_controller_map btic_learn_virtual_start btic_learn_virtual_stop btic_learn_virtual_register_learned_control BtIcLearnInterface BTIC_LEARN BTIC_IS_LEARN BTIC_TYPE_LEARN BTIC_LEARN_GET_INTERFACE btic_learn_get_type
bticmididevice BtIcMidiDevice BtIcMidiDevice btic_midi_device_new BtIcMidiDeviceClass BTIC_MIDI_DEVICE BTIC_IS_MIDI_DEVICE BTIC_TYPE_MIDI_DEVICE BTIC_MIDI_DEVICE_CLASS BTIC_IS_MIDI_DEVICE_CLASS BTIC_MIDI_DEVICE_GET_CLASS BtIcMidiDevicePrivate btic_midi_device_get_type
bticregistry BtIcRegistry BtIcRegistry btic_registry_new btic_registry_add_device btic_registry_get_device_by_name btic_registry_remove_device_by_udi BtIcRegistryClass BTIC_REGISTRY BTIC_IS_REGISTRY BTIC_TYPE_REGISTRY BTIC_REGISTRY_CLASS BTIC_IS_REGISTRY_CLASS BTIC_REGISTRY_GET_CLASS BtIcRegistryPrivate btic_registry_get_type
btictriggercontrol BtIcTriggerControl BtIcTriggerControl btic_trigger_control_new BtIcTriggerControlClass BTIC_TRIGGER_CONTROL BTIC_IS_TRIGGER_CONTROL BTIC_TYPE_TRIGGER_CONTROL BTIC_TRIGGER_CONTROL_CLASS BTIC_IS_TRIGGER_CONTROL_CLASS BTIC_TRIGGER_CONTROL_GET_CLASS BtIcTriggerControlPrivate btic_trigger_control_get_type
libbtic libbtic btic_init_get_option_group btic_init_check btic_init btic_major_version btic_micro_version btic_minor_version BTIC_MAJOR_VERSION BTIC_MICRO_VERSION BTIC_MINOR_VERSION # gstreamer extras GST_CAT_DEFAULT # gettext extras _ N_ gettext dgettext textdomain bindtextdomain
buzztrax-0.10.2/docs/reference/bt-ic/buzztrax-ic-overrides.txt0000644042355400116100000000000012144654421024662 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-ic/html/0000755042355400116100000000000012640736116020620 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-ic/html/libbtic.html0000644042355400116100000001014612640736116023120 0ustar00ensoniceng00000000000000 Interaction Controller Reference: Buzztrax Bt-Ic Reference Manual

Interaction Controller Reference


Abstract

The interaction controler library provides unifies access to (hardware) controlers that are suitable for interaction with parameters in sound generatros and effects.

Table of Contents

libbtic — interaction controller library of the buzztrax application framework
BtIcRegistry — buzztraxs interaction controller registry
BtIcASeqDiscoverer — alsa based device discovery
BtIcGudevDiscoverer — gudev based device discovery
BtIcDevice — buzztraxs interaction controller device
BtIcASeqDevice — buzztraxs interaction controller alsa sequencer device
BtIcInputDevice — buzztraxs interaction controller input device
BtIcMidiDevice — buzztraxs interaction controller midi device
BtIcControl — buzztraxs interaction controller single control
BtIcAbsRangeControl — buzztraxs interaction controller single absolute range control
BtIcTriggerControl — buzztraxs interaction controller single trigger control
BtIcLearn — interface for devices with learn function
buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcControl.html0000644042355400116100000001635412640736116023701 0ustar00ensoniceng00000000000000 BtIcControl: Buzztrax Bt-Ic Reference Manual

BtIcControl

BtIcControl — buzztraxs interaction controller single control

Properties

gboolean bound Read / Write
BtIcDevice * device Read / Write / Construct Only
guint id Read / Write / Construct Only
gchar * name Read / Write

Types and Values

struct BtIcControl

Object Hierarchy

    GObject
    ╰── BtIcControl
        ├── BtIcAbsRangeControl
        ╰── BtIcTriggerControl

Includes

#include <libbtic/ic.h>

Description

Abstract base class for controls.

Functions

Types and Values

struct BtIcControl

struct BtIcControl;

buzztraxs interaction controller single control

Property Details

The “bound” property

  “bound”                    gboolean

wheter a control is in use.

Flags: Read / Write

Default value: FALSE


The “device” property

  “device”                   BtIcDevice *

parent device object.

Flags: Read / Write / Construct Only


The “id” property

  “id”                       guint

control id (for lookups).

Flags: Read / Write / Construct Only

Default value: 0


The “name” property

  “name”                     gchar *

control name.

Flags: Read / Write

Default value: NULL

buzztrax-0.10.2/docs/reference/bt-ic/html/home.png0000644042355400116100000000040012640736116022250 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME &IDAT8ҽ Aߞf`n v`6`/`Yܡ`f&k$,} 0b+ԸaQW~b O e{y N[L}.piBzmm o.I]7^[;%:VIENDB`buzztrax-0.10.2/docs/reference/bt-ic/html/left-insensitive.png0000644042355400116100000000061312640736116024616 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEƫqIDAT8͒NQ@pds`*4@W@ A!Ԇ@6^ 5hxIH R`sQp̙339B|sKEQTK@۝΁i^~Wʆ`0TJ6TcYn6A ƀ~߱>}ǭs; lYkwr 5U= /" "uU=ɲlArDzp5I4^E+P3Ɯq_p ̥iUYp=#IENDB`buzztrax-0.10.2/docs/reference/bt-ic/html/right.png0000644042355400116100000000040512640736116022442 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME!GIDAT8үa?MIdEr,-hAIl ry}sX6 !9#D r$-Br$G"$;WZ&!cq \`軀O=QoufIENDB`buzztrax-0.10.2/docs/reference/bt-ic/html/left.png0000644042355400116100000000040612640736116022260 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME,`m;IDAT8үa?DAPY\$[p+IIMlf('}Mpy{_ޥ}^q xZ <=Yj) <04\~+Pl#",Qϑp Iǐlsw>[/]_i03IENDB`buzztrax-0.10.2/docs/reference/bt-ic/html/style.css0000644042355400116100000002115412640736116022475 0ustar00ensoniceng00000000000000body { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.informaltable table { border-collapse: separate; border-spacing: 1em 0.3em; border: none; } div.informaltable table td, div.informaltable table th { vertical-align: top; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } /* code listings */ .listing_code .programlisting .normal, .listing_code .programlisting .normal a, .listing_code .programlisting .number, .listing_code .programlisting .cbracket, .listing_code .programlisting .symbol { color: #555753; } .listing_code .programlisting .comment, .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ .listing_code .programlisting .function, .listing_code .programlisting .function a, .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ .listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ .listing_code .programlisting .keyword, .listing_code .programlisting .usertype, .listing_code .programlisting .type, .listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } buzztrax-0.10.2/docs/reference/bt-ic/html/index.html0000644042355400116100000001037412640736116022622 0ustar00ensoniceng00000000000000 Buzztrax Bt-Ic Reference Manual: Buzztrax Bt-Ic Reference Manual

for Buzztrax 0.10.2. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-ic/.


Introduction
I. Overview
II. Interaction Controller Reference
libbtic — interaction controller library of the buzztrax application framework
BtIcRegistry — buzztraxs interaction controller registry
BtIcASeqDiscoverer — alsa based device discovery
BtIcGudevDiscoverer — gudev based device discovery
BtIcDevice — buzztraxs interaction controller device
BtIcASeqDevice — buzztraxs interaction controller alsa sequencer device
BtIcInputDevice — buzztraxs interaction controller input device
BtIcMidiDevice — buzztraxs interaction controller midi device
BtIcControl — buzztraxs interaction controller single control
BtIcAbsRangeControl — buzztraxs interaction controller single absolute range control
BtIcTriggerControl — buzztraxs interaction controller single trigger control
BtIcLearn — interface for devices with learn function
III. Appendix
Object Hierarchy
API Index
Index of deprecated API
Index of new API in 0.6
Index of new API in 0.9
Annotation Glossary
buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcGudevDiscoverer.html0000644042355400116100000001163412640736116025355 0ustar00ensoniceng00000000000000 BtIcGudevDiscoverer: Buzztrax Bt-Ic Reference Manual

BtIcGudevDiscoverer

BtIcGudevDiscoverer — gudev based device discovery

Types and Values

Object Hierarchy

    GObject
    ╰── BtIcGudevDiscoverer

Includes

#include <libbtic/ic.h>

Description

Discover input and midi devices using gudev.

Functions

btic_gudev_discoverer_new ()

BtIcGudevDiscoverer *
btic_gudev_discoverer_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtIcGudevDiscoverer

struct BtIcGudevDiscoverer;

gudev based device discovery for buzztraxs interaction controller

buzztrax-0.10.2/docs/reference/bt-ic/html/buzztrax-ic-libbtic.html0000644042355400116100000002633612640736116025410 0ustar00ensoniceng00000000000000 libbtic: Buzztrax Bt-Ic Reference Manual

libbtic

libbtic — interaction controller library of the buzztrax application framework

Types and Values

extern const guint btic_major_version
extern const guint btic_micro_version
extern const guint btic_minor_version

Includes

#include <libbtic/ic.h>

Description

The library offers an abstraction of hardware controllers that can be bound to ui controls.

Functions

btic_init_get_option_group ()

GOptionGroup *
btic_init_get_option_group (void);

Returns a GOptionGroup with libbtic's argument specifications. The group is set up to use standard GOption callbacks, so when using this group in combination with GOption parsing methods, all argument parsing and initialization is automated.

This function is useful if you want to integrate libbtic with other libraries that use GOption (see g_option_context_add_group() ).

[skip]

Returns

a pointer to a GOption group. Should be dereferenced after use.

[transfer full]


btic_init_check ()

gboolean
btic_init_check (gint *argc,
                 gchar **argv[],
                 GError **err);

Initializes the Buzztrax interaction controller library.

This function will return FALSE if Buzztrax interaction controller could not be initialized for some reason. If you want your program to fail fatally, use btic_init() instead.

Parameters

argc

pointer to application's argc

 

argv

pointer to application's argv

 

err

pointer to a GError to which a message will be posted on error

 

Returns

TRUE if Buzztrax interaction controller could be initialized.


btic_init ()

void
btic_init (gint *argc,
           gchar **argv[]);

Initializes the Buzztrax Interaction Controller library.

This function will terminate your program if it was unable to initialize the core for some reason. If you want your program to fall back, use btic_init_check() instead.

WARNING: This function does not work in the same way as corresponding functions in other glib-style libraries, such as gtk_init(). In particular, unknown command line options cause this function to abort program execution.

Parameters

argc

pointer to application's argc

 

argv

pointer to application's argv

 

Types and Values

btic_major_version

extern const guint btic_major_version;

buzztrax version stamp, major part; determined from BTIC_MAJOR_VERSION


btic_micro_version

extern const guint btic_micro_version;

buzztrax version stamp, micro part; determined from BTIC_MICRO_VERSION


btic_minor_version

extern const guint btic_minor_version;

buzztrax version stamp, minor part; determined from BTIC_MINOR_VERSION

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcAbsRangeControl.html0000644042355400116100000002573312640736116025305 0ustar00ensoniceng00000000000000 BtIcAbsRangeControl: Buzztrax Bt-Ic Reference Manual

BtIcAbsRangeControl

BtIcAbsRangeControl — buzztraxs interaction controller single absolute range control

Properties

glong def Read / Write / Construct Only
glong max Read / Write / Construct Only
glong min Read / Write / Construct Only
glong value Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── BtIcControl
        ╰── BtIcAbsRangeControl

Includes

#include <libbtic/ic.h>

Description

Absolute range control. The state of the hardware control can be read from BtIcAbsRangeControl:value.

Functions

btic_abs_range_control_new ()

BtIcAbsRangeControl *
btic_abs_range_control_new (const BtIcDevice *device,
                            const gchar *name,
                            guint id,
                            glong min,
                            glong max,
                            glong def);

Create a new instance

Parameters

device

the device it belongs to

 

name

human readable name

 

id

unique identifier per device

 

min

minimum value

 

max

maximum value

 

def

default value

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtIcAbsRangeControl

struct BtIcAbsRangeControl;

buzztraxs interaction controller single trigger control

Property Details

The “def” property

  “def”                      glong

default control value.

Flags: Read / Write / Construct Only

Default value: 0


The “max” property

  “max”                      glong

maximum control value.

Flags: Read / Write / Construct Only

Default value: 9223372036854775807


The “min” property

  “min”                      glong

minimum control value.

Flags: Read / Write / Construct Only

Default value: -9223372036854775808


The “value” property

  “value”                    glong

control value.

Flags: Read / Write

Default value: 0

buzztrax-0.10.2/docs/reference/bt-ic/html/objecttree.html0000644042355400116100000000656512640736116023650 0ustar00ensoniceng00000000000000 Object Hierarchy: Buzztrax Bt-Ic Reference Manual

Object Hierarchy

    GObject
    ├── BtIcControl
       ├── BtIcAbsRangeControl
       ╰── BtIcTriggerControl
    ├── BtIcDevice
       ├── BtIcASeqDevice
       ├── BtIcInputDevice
       ╰── BtIcMidiDevice
    ├── BtIcASeqDiscoverer
    ├── BtIcGudevDiscoverer
    ╰── BtIcRegistry
    GInterface
    ╰── BtIcLearn
buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcDevice.html0000644042355400116100000005450112640736116023454 0ustar00ensoniceng00000000000000 BtIcDevice: Buzztrax Bt-Ic Reference Manual

BtIcDevice

BtIcDevice — buzztraxs interaction controller device

Properties

gpointer controls Read
gchar * name Read / Write / Construct Only
gchar * udi Read / Write / Construct Only

Types and Values

struct BtIcDevice

Object Hierarchy

    GObject
    ╰── BtIcDevice
        ├── BtIcASeqDevice
        ├── BtIcInputDevice
        ╰── BtIcMidiDevice

Includes

#include <libbtic/ic.h>

Description

Abstract base class for control devices. Subclasses will provide functionality to query capabilities and register BtIcControl instances. They will also read from the device and trigger the change events on their controls (via value property). To activate reading from a device, the application needs to call btic_device_start(). The device is activates on the first such call. Each activation is counted and thus should be paired with a call to btic_device_stop() to stop the device on the last call.

This baseclass manages the added controls. They can be queried by calling btic_device_get_control_by_id() or iterating the list in BtIcDevice::controls.

Functions

btic_device_add_control ()

void
btic_device_add_control (const BtIcDevice *self,
                         const BtIcControl *control);

Add the given control to the list that the device manages. Takes ownership of the control.

Parameters

self

the device

 

control

new control

 

btic_device_get_control_by_id ()

BtIcControl *
btic_device_get_control_by_id (const BtIcDevice *self,
                               guint id);

Look up a control by id .

Parameters

self

the device

 

id

the control id

 

Returns

the found instance or NULL. This does not increase the ref-count!.

[transfer none]

Since: 0.6


btic_device_get_control_by_name ()

BtIcControl *
btic_device_get_control_by_name (const BtIcDevice *self,
                                 const gchar *name);

Look up a control by name .

Parameters

self

the device

 

name

the control name

 

Returns

the found instance or NULL.

[transfer full]

Since: 0.9


btic_device_has_controls ()

gboolean
btic_device_has_controls (const BtIcDevice *self);

Check if the device has controls. This is useful to check after device creation. One reason for not having any controls could also be missing read-permissions on the device node.

Parameters

self

the device

 

Since: 0.6


btic_device_start ()

gboolean
btic_device_start (const BtIcDevice *self);

Starts the io-loop for the device. This can be called multiple times and must be paired by an equal amount of btic_device_stop() calls.

Parameters

self

the BtIcDevice instance to use

 

Returns

TRUE for success


btic_device_stop ()

gboolean
btic_device_stop (const BtIcDevice *self);

Stops the io-loop for the device. This must be called as often as the device has been started using btic_device_start().

Parameters

self

the BtIcDevice instance to use

 

Returns

TRUE for success


btic_device_virtual_start ()

gboolean
(*btic_device_virtual_start) (gconstpointer self);

Subclasses will override this methods with a function that counts start calls and runs the device-io for starts>0.

Parameters

self

device instance

 

Returns

TRUE for success


btic_device_virtual_stop ()

gboolean
(*btic_device_virtual_stop) (gconstpointer self);

Subclasses will override this methods with a function that counts stop calls and stops the device-io for starts==0.

Parameters

self

device instance

 

Returns

TRUE for success

Types and Values

struct BtIcDevice

struct BtIcDevice;

buzztraxs interaction controller device

Property Details

The “controls” property

  “controls”                 gpointer

A copy of the list of device controls.

Flags: Read


The “name” property

  “name”                     gchar *

device name.

Flags: Read / Write / Construct Only

Default value: NULL


The “udi” property

  “udi”                      gchar *

device udi.

Flags: Read / Write / Construct Only

Default value: NULL

buzztrax-0.10.2/docs/reference/bt-ic/html/api-index-0-9.html0000644042355400116100000000467412640736116023702 0ustar00ensoniceng00000000000000 Index of new API in 0.9: Buzztrax Bt-Ic Reference Manual

Index of new API in 0.9

D

btic_device_get_control_by_name, function in BtIcDevice

R

btic_registry_get_device_by_name, function in BtIcRegistry
buzztrax-0.10.2/docs/reference/bt-ic/html/api-index-deprecated.html0000644042355400116100000000322112640736116025460 0ustar00ensoniceng00000000000000 Index of deprecated API: Buzztrax Bt-Ic Reference Manual

Index of deprecated API

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcLearn.html0000644042355400116100000005211412640736116023314 0ustar00ensoniceng00000000000000 BtIcLearn: Buzztrax Bt-Ic Reference Manual

BtIcLearn

BtIcLearn — interface for devices with learn function

Properties

gchar * device-controlchange Read / Write

Types and Values

Object Hierarchy

    GInterface
    ╰── BtIcLearn

Known Implementations

BtIcLearn is implemented by BtIcASeqDevice and BtIcMidiDevice.

Includes

#include <libbtic/ic.h>

Description

An interface which all devices which support interactive learning of controls should implement.

The interface comes with an implementation for caching the learned controls. The implementor needs to call btic_learn_load_controller_map() after construction and btic_learn_store_controller_map() when a control got added. The cache files are stored under user-data-dir/buzztrax/controller-maps, e.g. ~/.local/share/buzztrax/controller-maps/.

Functions

btic_learn_start ()

gboolean
btic_learn_start (const BtIcLearn *self);

Starts the device if needed and enables the learn function. Starts emission of notify::devide-controlchange signals.

Parameters

self

the device which implements the BtIcLearn interface

 

Returns

TRUE for success


btic_learn_stop ()

gboolean
btic_learn_stop (const BtIcLearn *self);

Eventually stops the device and disables the learn function. Stops emission of notify::devide-controlchange signals.

Parameters

self

the device which implements the BtIcLearn interface

 

Returns

TRUE for success


btic_learn_register_learned_control ()

BtIcControl *
btic_learn_register_learned_control (const BtIcLearn *self,
                                     const gchar *name);

Registers the last detected control with name name .

Parameters

self

the device which implements the BtIcLearn interface

 

name

the name under which to register the control

 

Returns

the new BtIcControl on success or NULL.

[transfer full]


btic_learn_load_controller_map ()

gboolean
btic_learn_load_controller_map (const BtIcLearn *self);

Create initial set of controls from a stored control map. Interface implementations should call this from their GObjectClass.constructed() function.

Parameters

self

the device

 

Returns

TRUE for success


btic_learn_store_controller_map ()

gboolean
btic_learn_store_controller_map (const BtIcLearn *self);

Store a map of all controls to disk. Interface implementations should call this from their btic_learn_register_learned_control() function after they registered a new control.

Parameters

self

the device

 

Returns

TRUE for success


btic_learn_virtual_start ()

gboolean
(*btic_learn_virtual_start) (gconstpointer self);

Subclasses will override this methods with a function which enables the learning mode on this device.

Parameters

self

device instance

 

Returns

TRUE for success


btic_learn_virtual_stop ()

gboolean
(*btic_learn_virtual_stop) (gconstpointer self);

Subclasses will override this methods with a function which disables the learning mode on this device.

Parameters

self

device instance

 

Returns

TRUE for success


btic_learn_virtual_register_learned_control ()

BtIcControl *
(*btic_learn_virtual_register_learned_control)
                               (gconstpointer self,
                                const gchar *name);

Subclasses will override this methods with a function which registers the last control which was detected in learn mode.

Parameters

self

device instance

 

name

the name under which to register the control

 

Returns

TRUE for success

Types and Values

BtIcLearn

typedef struct _BtIcLearn BtIcLearn;

interface for devices which implement a learn-function

Property Details

The “device-controlchange” property

  “device-controlchange”     gchar *

get the last detected control.

Flags: Read / Write

Default value: NULL

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcInputDevice.html0000644042355400116100000001710112640736116024467 0ustar00ensoniceng00000000000000 BtIcInputDevice: Buzztrax Bt-Ic Reference Manual

BtIcInputDevice

BtIcInputDevice — buzztraxs interaction controller input device

Properties

gchar * devnode Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── BtIcDevice
        ╰── BtIcInputDevice

Includes

#include <libbtic/ic.h>

Description

Event handling for input devices (joystick,hdaps,wiimote).

Functions

btic_input_device_new ()

BtIcInputDevice *
btic_input_device_new (const gchar *udi,
                       const gchar *name,
                       const gchar *devnode);

Create a new instance

Parameters

udi

the udi of the device

 

name

human readable name

 

devnode

device node in filesystem

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtIcInputDevice

struct BtIcInputDevice;

buzztraxs interaction controller registry

Property Details

The “devnode” property

  “devnode”                  gchar *

device node path.

Flags: Read / Write / Construct Only

Default value: NULL

buzztrax-0.10.2/docs/reference/bt-ic/html/right-insensitive.png0000644042355400116100000000056512640736116025007 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME ^IDAT8͒J` /S_$AqrW(>m"]\(49.Nd39{eM#MSIιEiHz|3{̲l3,KkV'@EEQlwyiq]Kh4:mĦ,;ts\aR5/7'Wps׭I,K1=0j0Wg> PU𻤝0 ]?qCҫιg~kA_IENDB`buzztrax-0.10.2/docs/reference/bt-ic/html/api-index-0-6.html0000644042355400116100000000440412640736116023666 0ustar00ensoniceng00000000000000 Index of new API in 0.6: Buzztrax Bt-Ic Reference Manual

Index of new API in 0.6

D

btic_device_get_control_by_id, function in BtIcDevice
btic_device_has_controls, function in BtIcDevice
buzztrax-0.10.2/docs/reference/bt-ic/html/annotation-glossary.html0000644042355400116100000000446212640736116025527 0ustar00ensoniceng00000000000000 Annotation Glossary: Buzztrax Bt-Ic Reference Manual

Annotation Glossary

S

skip

Exposed in C code, not necessarily available in other languages.

T

transfer full

Free data after the code is done.

transfer none

Don't free data after the code is done.

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcMidiDevice.html0000644042355400116100000001760512640736116024263 0ustar00ensoniceng00000000000000 BtIcMidiDevice: Buzztrax Bt-Ic Reference Manual

BtIcMidiDevice

BtIcMidiDevice — buzztraxs interaction controller midi device

Properties

gchar * devnode Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── BtIcDevice
        ╰── BtIcMidiDevice

Implemented Interfaces

BtIcMidiDevice implements BtIcLearn.

Includes

#include <libbtic/ic.h>

Description

Event handling for midi devices.

Functions

btic_midi_device_new ()

BtIcMidiDevice *
btic_midi_device_new (const gchar *udi,
                      const gchar *name,
                      const gchar *devnode);

Create a new instance

Parameters

udi

the udi of the device

 

name

human readable name

 

devnode

device node in filesystem

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtIcMidiDevice

struct BtIcMidiDevice;

buzztraxs interaction controller registry

Property Details

The “devnode” property

  “devnode”                  gchar *

device node path.

Flags: Read / Write / Construct Only

Default value: NULL

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcTriggerControl.html0000644042355400116100000001732112640736116025220 0ustar00ensoniceng00000000000000 BtIcTriggerControl: Buzztrax Bt-Ic Reference Manual

BtIcTriggerControl

BtIcTriggerControl — buzztraxs interaction controller single trigger control

Properties

gboolean value Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── BtIcControl
        ╰── BtIcTriggerControl

Includes

#include <libbtic/ic.h>

Description

Trigger control. The state of the hardware control can be read from BtIcTriggerControl:value.

Functions

btic_trigger_control_new ()

BtIcTriggerControl *
btic_trigger_control_new (const BtIcDevice *device,
                          const gchar *name,
                          guint id);

Create a new instance

Parameters

device

the device it belongs to

 

name

human readable name

 

id

unique identifier per device

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtIcTriggerControl

struct BtIcTriggerControl;

buzztraxs interaction controller single trigger control

Property Details

The “value” property

  “value”                    gboolean

control value.

Flags: Read / Write

Default value: FALSE

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcRegistry.html0000644042355400116100000002446612640736116024074 0ustar00ensoniceng00000000000000 BtIcRegistry: Buzztrax Bt-Ic Reference Manual

BtIcRegistry

BtIcRegistry — buzztraxs interaction controller registry

Properties

Types and Values

struct BtIcRegistry

Object Hierarchy

    GObject
    ╰── BtIcRegistry

Includes

#include <libbtic/ic.h>

Description

Manages a dynamic list of controller devices. It uses a discoverer helper to scan devices. Right now GUdev is supported.

Functions

btic_registry_new ()

BtIcRegistry *
btic_registry_new (void);

Create a new instance

Returns

the new instance


btic_registry_add_device ()

void
btic_registry_add_device (BtIcDevice *device);

Add the given device to the registry.

Only to be used by discoverers.

Parameters

device

new device

 

btic_registry_get_device_by_name ()

BtIcDevice *
btic_registry_get_device_by_name (const gchar *name);

Find the device identified by the given name in the registry.

Parameters

name

device name

 

Returns

a ref to the device or NULL.

[transfer full]

Since: 0.9


btic_registry_remove_device_by_udi ()

void
btic_registry_remove_device_by_udi (const gchar *udi);

Remove device identified by the given udi from the registry.

Only to be used by discoverers.

Parameters

udi

device id

 

Types and Values

struct BtIcRegistry

struct BtIcRegistry;

buzztraxs interaction controller registry

Property Details

The “devices” property

  “devices”                  gpointer

A copy of the list of control devices.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-ic/html/up-insensitive.png0000644042355400116100000000056612640736116024317 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEwIIDAT8?/Qϙ?[u$VHTDۈBM+! Introduction: Buzztrax Bt-Ic Reference Manual

Introduction

Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch.

The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures.

buzztrax-0.10.2/docs/reference/bt-ic/html/up.png0000644042355400116100000000040412640736116021750 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME IDAT81 @D{xa;$]r =JR1, Sd-}0̟oL:m-QO[ k TzMޠL,:ךu!tK; Pp Ot@l/̵*l}IENDB`buzztrax-0.10.2/docs/reference/bt-ic/html/api-index.html0000644042355400116100000004325212640736116023372 0ustar00ensoniceng00000000000000 API Index: Buzztrax Bt-Ic Reference Manual

API Index

A

BtIcAbsRangeControl, struct in BtIcAbsRangeControl
BtIcAbsRangeControl:def, object property in BtIcAbsRangeControl
BtIcAbsRangeControl:max, object property in BtIcAbsRangeControl
BtIcAbsRangeControl:min, object property in BtIcAbsRangeControl
BtIcAbsRangeControl:value, object property in BtIcAbsRangeControl
btic_abs_range_control_new, function in BtIcAbsRangeControl
BtIcASeqDevice, struct in BtIcASeqDevice
BtIcASeqDevice:client, object property in BtIcASeqDevice
BtIcASeqDevice:port, object property in BtIcASeqDevice
BtIcASeqDiscoverer, struct in BtIcASeqDiscoverer
btic_aseq_device_new, function in BtIcASeqDevice
btic_aseq_discoverer_new, function in BtIcASeqDiscoverer

C

BtIcControl, struct in BtIcControl
BtIcControl:bound, object property in BtIcControl
BtIcControl:device, object property in BtIcControl
BtIcControl:id, object property in BtIcControl
BtIcControl:name, object property in BtIcControl

D

BtIcDevice, struct in BtIcDevice
BtIcDevice:controls, object property in BtIcDevice
BtIcDevice:name, object property in BtIcDevice
BtIcDevice:udi, object property in BtIcDevice
btic_device_add_control, function in BtIcDevice
btic_device_get_control_by_id, function in BtIcDevice
btic_device_get_control_by_name, function in BtIcDevice
btic_device_has_controls, function in BtIcDevice
btic_device_start, function in BtIcDevice
btic_device_stop, function in BtIcDevice
btic_device_virtual_start, user_function in BtIcDevice
btic_device_virtual_stop, user_function in BtIcDevice

G

BtIcGudevDiscoverer, struct in BtIcGudevDiscoverer
btic_gudev_discoverer_new, function in BtIcGudevDiscoverer

I

btic_init, function in libbtic
btic_init_check, function in libbtic
btic_init_get_option_group, function in libbtic
BtIcInputDevice, struct in BtIcInputDevice
BtIcInputDevice:devnode, object property in BtIcInputDevice
btic_input_device_new, function in BtIcInputDevice

L

BtIcLearn, struct in BtIcLearn
BtIcLearn:device-controlchange, object property in BtIcLearn
btic_learn_load_controller_map, function in BtIcLearn
btic_learn_register_learned_control, function in BtIcLearn
btic_learn_start, function in BtIcLearn
btic_learn_stop, function in BtIcLearn
btic_learn_store_controller_map, function in BtIcLearn
btic_learn_virtual_register_learned_control, user_function in BtIcLearn
btic_learn_virtual_start, user_function in BtIcLearn
btic_learn_virtual_stop, user_function in BtIcLearn

M

btic_major_version, variable in libbtic
btic_micro_version, variable in libbtic
BtIcMidiDevice, struct in BtIcMidiDevice
BtIcMidiDevice:devnode, object property in BtIcMidiDevice
btic_midi_device_new, function in BtIcMidiDevice
btic_minor_version, variable in libbtic

R

BtIcRegistry, struct in BtIcRegistry
BtIcRegistry:devices, object property in BtIcRegistry
btic_registry_add_device, function in BtIcRegistry
btic_registry_get_device_by_name, function in BtIcRegistry
btic_registry_new, function in BtIcRegistry
btic_registry_remove_device_by_udi, function in BtIcRegistry

T

BtIcTriggerControl, struct in BtIcTriggerControl
BtIcTriggerControl:value, object property in BtIcTriggerControl
btic_trigger_control_new, function in BtIcTriggerControl
buzztrax-0.10.2/docs/reference/bt-ic/html/buzztrax-ic.devhelp20000644042355400116100000002116712640736116024544 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/docs/reference/bt-ic/html/pt02.html0000644042355400116100000000426512640736116022302 0ustar00ensoniceng00000000000000 Part III. Appendix: Buzztrax Bt-Ic Reference Manual buzztrax-0.10.2/docs/reference/bt-ic/html/pt01.html0000644042355400116100000000310212640736116022266 0ustar00ensoniceng00000000000000 Part I. Overview: Buzztrax Bt-Ic Reference Manual

Part I. Overview

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcASeqDevice.html0000644042355400116100000002175512640736116024233 0ustar00ensoniceng00000000000000 BtIcASeqDevice: Buzztrax Bt-Ic Reference Manual

BtIcASeqDevice

BtIcASeqDevice — buzztraxs interaction controller alsa sequencer device

Properties

gint client Read / Write / Construct Only
gint port Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── BtIcDevice
        ╰── BtIcASeqDevice

Implemented Interfaces

BtIcASeqDevice implements BtIcLearn.

Includes

#include <libbtic/ic.h>

Description

Event handling for alsa sequencer devices.

Functions

btic_aseq_device_new ()

BtIcASeqDevice *
btic_aseq_device_new (const gchar *udi,
                      const gchar *name,
                      gint client,
                      gint port);

Create a new instance

Parameters

udi

the udi of the device

 

name

human readable name

 

client

alsa sequencer client id

 

port

alsa sequencer port id

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtIcASeqDevice

struct BtIcASeqDevice;

buzztraxs interaction controller registry

Property Details

The “client” property

  “client”                   gint

alsa sequencer client id.

Flags: Read / Write / Construct Only

Allowed values: >= 0

Default value: 0


The “port” property

  “port”                     gint

alsa sequencer port id.

Flags: Read / Write / Construct Only

Allowed values: >= 0

Default value: 0

buzztrax-0.10.2/docs/reference/bt-ic/html/BtIcASeqDiscoverer.html0000644042355400116100000001157712640736116025142 0ustar00ensoniceng00000000000000 BtIcASeqDiscoverer: Buzztrax Bt-Ic Reference Manual

BtIcASeqDiscoverer

BtIcASeqDiscoverer — alsa based device discovery

Types and Values

Object Hierarchy

    GObject
    ╰── BtIcASeqDiscoverer

Includes

#include <libbtic/ic.h>

Description

Discover midi devices using alsa sequencer.

Functions

btic_aseq_discoverer_new ()

BtIcASeqDiscoverer *
btic_aseq_discoverer_new (void);

Create a new instance

Returns

the new instance

Types and Values

struct BtIcASeqDiscoverer

struct BtIcASeqDiscoverer;

alsa based device discovery for buzztraxs interaction controller

buzztrax-0.10.2/docs/reference/bt-ic/Makefile.am0000644042355400116100000000512212461664641021714 0ustar00ensoniceng00000000000000## Process this file with automake to produce Makefile.in # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE=buzztrax-ic # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR=$(top_srcdir)/src/lib/ic # Extra options to pass to gtkdoc-scangobj. Not normally needed. #SCANGOBJ_OPTIONS="" # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS=--deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS=--sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ \ --extra-dir=.. # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB=$(top_srcdir)/src/lib/ic/*.h CFILE_GLOB=$(top_srcdir)/src/lib/ic/*.c if USE_LINUX_INPUT LINUX_INPUT_FILES= else LINUX_INPUT_FILES=input-device.h endif if USE_ALSA ALSA_FILES= else ALSA_FILES=aseq-discoverer.h aseq-device.h endif if USE_GUDEV GUDEV_FILES= else GUDEV_FILES=gudev-discoverer.h endif # Header files to ignore when scanning. IGNORE_HFILES=ic_private.h \ $(ALSA_FILES) \ $(GUDEV_FILES) \ $(LINUX_INPUT_FILES) # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) # include generic part include $(top_srcdir)/gtk-doc.make # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += $(DOC_MODULE).types # Comment this out if you want your docs-status tested during 'make check' if ENABLE_GTK_DOC TESTS_ENVIRONMENT = \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) TESTS = $(GTKDOC_CHECK) endif buzztrax-0.10.2/docs/reference/bt-ic/buzztrax-ic.types0000644042355400116100000000073612640736116023232 0ustar00ensoniceng00000000000000#include "config.h" #include "ic/ic.h" #include "ic/aseq-device.h" #include "ic/aseq-discoverer.h" #include "ic/gudev-discoverer.h" #include "ic/input-device.h" #include "ic/midi-device.h" btic_control_get_type btic_device_get_type btic_aseq_device_get_type btic_aseq_discoverer_get_type btic_gudev_discoverer_get_type btic_input_device_get_type btic_learn_get_type btic_midi_device_get_type btic_registry_get_type btic_abs_range_control_get_type btic_trigger_control_get_type buzztrax-0.10.2/docs/reference/bt-ic/buzztrax-ic-sections.txt0000644042355400116100000001136512640736116024532 0ustar00ensoniceng00000000000000# $Id: buzztrax-ic-sections.txt 3552 2011-08-19 13:23:12Z ensonic $ # :mode=html: # please add section in the alpahbetical order using the following template #
# btxxx # BtXxx # #
libbtic/ic.h
bticabsrangecontrol BtIcAbsRangeControl BtIcAbsRangeControl btic_abs_range_control_new BtIcAbsRangeControlClass BTIC_ABS_RANGE_CONTROL BTIC_IS_ABS_RANGE_CONTROL BTIC_TYPE_ABS_RANGE_CONTROL BTIC_ABS_RANGE_CONTROL_CLASS BTIC_IS_ABS_RANGE_CONTROL_CLASS BTIC_ABS_RANGE_CONTROL_GET_CLASS BtIcAbsRangeControlPrivate btic_abs_range_control_get_type
bticcontrol BtIcControl BtIcControl BtIcControlClass BTIC_CONTROL BTIC_IS_CONTROL BTIC_TYPE_CONTROL BTIC_CONTROL_CLASS BTIC_IS_CONTROL_CLASS BTIC_CONTROL_GET_CLASS BtIcControlPrivate btic_control_get_type
bticdevice BtIcDevice BtIcDevice btic_device_add_control btic_device_get_control_by_id btic_device_get_control_by_name btic_device_has_controls btic_device_start btic_device_stop btic_device_virtual_start btic_device_virtual_stop BtIcDeviceClass BTIC_DEVICE BTIC_IS_DEVICE BTIC_TYPE_DEVICE BTIC_DEVICE_CLASS BTIC_IS_DEVICE_CLASS BTIC_DEVICE_GET_CLASS BtIcDevicePrivate btic_device_get_type
bticaseqdevice BtIcASeqDevice BtIcASeqDevice btic_aseq_device_new BtIcASeqDeviceClass BTIC_ASEQ_DEVICE BTIC_IS_ASEQ_DEVICE BTIC_TYPE_ASEQ_DEVICE BTIC_ASEQ_DEVICE_CLASS BTIC_IS_ASEQ_DEVICE_CLASS BTIC_ASEQ_DEVICE_GET_CLASS BtIcASeqDevicePrivate btic_aseq_device_get_type
bticaseqdiscoverer BtIcASeqDiscoverer BtIcASeqDiscoverer btic_aseq_discoverer_new BtIcASeqDiscovererClass BTIC_ASEQ_DISCOVERER BTIC_IS_ASEQ_DISCOVERER BTIC_TYPE_ASEQ_DISCOVERER BTIC_ASEQ_DISCOVERER_CLASS BTIC_IS_ASEQ_DISCOVERER_CLASS BTIC_ASEQ_DISCOVERER_GET_CLASS BtIcASeqDiscovererPrivate btic_aseq_discoverer_get_type
bticgudevdiscoverer BtIcGudevDiscoverer BtIcGudevDiscoverer btic_gudev_discoverer_new BtIcGudevDiscovererClass BTIC_GUDEV_DISCOVERER BTIC_IS_GUDEV_DISCOVERER BTIC_TYPE_GUDEV_DISCOVERER BTIC_GUDEV_DISCOVERER_CLASS BTIC_IS_GUDEV_DISCOVERER_CLASS BTIC_GUDEV_DISCOVERER_GET_CLASS BtIcGudevDiscovererPrivate btic_gudev_discoverer_get_type
bticinputdevice BtIcInputDevice BtIcInputDevice btic_input_device_new BtIcInputDeviceClass BTIC_INPUT_DEVICE BTIC_IS_INPUT_DEVICE BTIC_TYPE_INPUT_DEVICE BTIC_INPUT_DEVICE_CLASS BTIC_IS_INPUT_DEVICE_CLASS BTIC_INPUT_DEVICE_GET_CLASS BtIcInputDevicePrivate btic_input_device_get_type
bticlearn BtIcLearn BtIcLearn btic_learn_start btic_learn_stop btic_learn_register_learned_control btic_learn_load_controller_map btic_learn_store_controller_map btic_learn_virtual_start btic_learn_virtual_stop btic_learn_virtual_register_learned_control BtIcLearnInterface BTIC_LEARN BTIC_IS_LEARN BTIC_TYPE_LEARN BTIC_LEARN_GET_INTERFACE btic_learn_get_type
bticmididevice BtIcMidiDevice BtIcMidiDevice btic_midi_device_new BtIcMidiDeviceClass BTIC_MIDI_DEVICE BTIC_IS_MIDI_DEVICE BTIC_TYPE_MIDI_DEVICE BTIC_MIDI_DEVICE_CLASS BTIC_IS_MIDI_DEVICE_CLASS BTIC_MIDI_DEVICE_GET_CLASS BtIcMidiDevicePrivate btic_midi_device_get_type
bticregistry BtIcRegistry BtIcRegistry btic_registry_new btic_registry_add_device btic_registry_get_device_by_name btic_registry_remove_device_by_udi BtIcRegistryClass BTIC_REGISTRY BTIC_IS_REGISTRY BTIC_TYPE_REGISTRY BTIC_REGISTRY_CLASS BTIC_IS_REGISTRY_CLASS BTIC_REGISTRY_GET_CLASS BtIcRegistryPrivate btic_registry_get_type
btictriggercontrol BtIcTriggerControl BtIcTriggerControl btic_trigger_control_new BtIcTriggerControlClass BTIC_TRIGGER_CONTROL BTIC_IS_TRIGGER_CONTROL BTIC_TYPE_TRIGGER_CONTROL BTIC_TRIGGER_CONTROL_CLASS BTIC_IS_TRIGGER_CONTROL_CLASS BTIC_TRIGGER_CONTROL_GET_CLASS BtIcTriggerControlPrivate btic_trigger_control_get_type
libbtic libbtic btic_init_get_option_group btic_init_check btic_init btic_major_version btic_micro_version btic_minor_version BTIC_MAJOR_VERSION BTIC_MICRO_VERSION BTIC_MINOR_VERSION # gstreamer extras GST_CAT_DEFAULT # gettext extras _ N_ gettext dgettext textdomain bindtextdomain
buzztrax-0.10.2/docs/reference/bt-ic/Makefile.in0000644042355400116100000012512412640575013021723 0ustar00ensoniceng00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 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@ # -*- mode: makefile -*- #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \ $(srcdir)/buzztrax-ic.types.in \ $(srcdir)/buzztrax-ic-sections.txt.in \ $(top_srcdir)/test-driver subdir = docs/reference/bt-ic ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/orc.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac 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 = buzztrax-ic.types buzztrax-ic-sections.txt CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ ALSA_DEPS_CFLAGS = @ALSA_DEPS_CFLAGS@ ALSA_DEPS_LIBS = @ALSA_DEPS_LIBS@ ALSA_DOC_SECTIONS = @ALSA_DOC_SECTIONS@ ALSA_DOC_TYPES = @ALSA_DOC_TYPES@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ ASPELL = @ASPELL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASE_DEPS_CFLAGS = @BASE_DEPS_CFLAGS@ BASE_DEPS_LIBS = @BASE_DEPS_LIBS@ BMLHOST_CCASFLAGS = @BMLHOST_CCASFLAGS@ BMLHOST_CFLAGS = @BMLHOST_CFLAGS@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BT_CFLAGS = @BT_CFLAGS@ BT_DISABLE_DEPRECATED = @BT_DISABLE_DEPRECATED@ BT_INCLUDEDIR = @BT_INCLUDEDIR@ BT_LDFLAGS = @BT_LDFLAGS@ BT_LIBDIR = @BT_LIBDIR@ BT_LIBS = @BT_LIBS@ BT_MAJORMINOR = @BT_MAJORMINOR@ BT_MAJOR_VERSION = @BT_MAJOR_VERSION@ BT_MICRO_VERSION = @BT_MICRO_VERSION@ BT_MINOR_VERSION = @BT_MINOR_VERSION@ BT_RELEASE_DATE = @BT_RELEASE_DATE@ BT_RELEASE_YEAR = @BT_RELEASE_YEAR@ BT_VERSION = @BT_VERSION@ BT_VERSION_INFO = @BT_VERSION_INFO@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@ FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIRDIR = @GIRDIR@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@ GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@ GREP = @GREP@ GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GSF_DEPS_CFLAGS = @GSF_DEPS_CFLAGS@ GSF_DEPS_LIBS = @GSF_DEPS_LIBS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ GST_PLUGIN_CFLAGS = @GST_PLUGIN_CFLAGS@ GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ GST_PLUGIN_LIBS = @GST_PLUGIN_LIBS@ GST_PREFIX = @GST_PREFIX@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_PREFIX = @GTK_PREFIX@ GUDEV_DEPS_CFLAGS = @GUDEV_DEPS_CFLAGS@ GUDEV_DEPS_LIBS = @GUDEV_DEPS_LIBS@ GUDEV_DOC_SECTIONS = @GUDEV_DOC_SECTIONS@ GUDEV_DOC_TYPES = @GUDEV_DOC_TYPES@ GUI_DEPS_CFLAGS = @GUI_DEPS_CFLAGS@ GUI_DEPS_LIBS = @GUI_DEPS_LIBS@ G_IR_COMPILER = @G_IR_COMPILER@ G_IR_GENERATE = @G_IR_GENERATE@ G_IR_SCANNER = @G_IR_SCANNER@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LINUX_INPUT_DOC_SECTIONS = @LINUX_INPUT_DOC_SECTIONS@ LINUX_INPUT_DOC_TYPES = @LINUX_INPUT_DOC_TYPES@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ ORC_LIBS = @ORC_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_ORIGIN = @PACKAGE_ORIGIN@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SCROLLKEEPER_BUILD_REQUIRED = @SCROLLKEEPER_BUILD_REQUIRED@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TYPELIBDIR = @TYPELIBDIR@ UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ UPDATE_ICON_CACHE = @UPDATE_ICON_CACHE@ UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ XFONT_PATH = @XFONT_PATH@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bcov_path = @bcov_path@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ lcov_path = @lcov_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ scrollkeeper_config = @scrollkeeper_config@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ valgrind_path = @valgrind_path@ with_desktop_dir = @with_desktop_dir@ xvfb_path = @xvfb_path@ # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE = buzztrax-ic # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR = $(top_srcdir)/src/lib/ic # Extra options to pass to gtkdoc-scangobj. Not normally needed. #SCANGOBJ_OPTIONS="" # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS = --deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS = --sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ \ --extra-dir=.. # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB = $(top_srcdir)/src/lib/ic/*.h CFILE_GLOB = $(top_srcdir)/src/lib/ic/*.c @USE_LINUX_INPUT_FALSE@LINUX_INPUT_FILES = input-device.h @USE_LINUX_INPUT_TRUE@LINUX_INPUT_FILES = @USE_ALSA_FALSE@ALSA_FILES = aseq-discoverer.h aseq-device.h @USE_ALSA_TRUE@ALSA_FILES = @USE_GUDEV_FALSE@GUDEV_FILES = gudev-discoverer.h @USE_GUDEV_TRUE@GUDEV_FILES = # Header files to ignore when scanning. IGNORE_HFILES = ic_private.h \ $(ALSA_FILES) \ $(GUDEV_FILES) \ $(LINUX_INPUT_FILES) # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt # include generic part # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) $(DOC_MODULE).types DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test @GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # Comment this out if you want your docs-status tested during 'make check' @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) @ENABLE_GTK_DOC_TRUE@TESTS = $(GTKDOC_CHECK) all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(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) --foreign docs/reference/bt-ic/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/reference/bt-ic/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_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): buzztrax-ic.types: $(top_builddir)/config.status $(srcdir)/buzztrax-ic.types.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ buzztrax-ic-sections.txt: $(top_builddir)/config.status $(srcdir)/buzztrax-ic-sections.txt.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am @ENABLE_GTK_DOC_FALSE@all-local: all-am: Makefile all-local installdirs: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: check-am install-am install-strip .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool clean-local cscopelist-am ctags-am \ dist-hook distclean distclean-generic distclean-libtool \ distclean-local distdir 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 maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags-am uninstall uninstall-am uninstall-local gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc @ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs @HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" @HAVE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local 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: buzztrax-0.10.2/docs/reference/bt-ic/buzztrax-ic-docs.xml0000644042355400116100000000771212527430177023617 0ustar00ensoniceng00000000000000 %version-entities; ]> Buzztrax Bt-Ic Reference Manual for Buzztrax &BT_VERSION;. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-ic/. Introduction Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch. The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures. Overview Interaction Controller Reference The interaction controler library provides unifies access to (hardware) controlers that are suitable for interaction with parameters in sound generatros and effects. Appendix Object Hierarchy API Index Index of deprecated API Index of new API in 0.6 Index of new API in 0.9 buzztrax-0.10.2/docs/reference/bt-ic/buzztrax-ic.types.in0000644042355400116100000000115612461665461023641 0ustar00ensoniceng00000000000000#include "config.h" #include "ic/ic.h" @ALSA_DOC_TYPES@#include "ic/aseq-device.h" @ALSA_DOC_TYPES@#include "ic/aseq-discoverer.h" @GUDEV_DOC_TYPES@#include "ic/gudev-discoverer.h" @LINUX_INPUT_DOC_TYPES@#include "ic/input-device.h" #include "ic/midi-device.h" btic_control_get_type btic_device_get_type @ALSA_DOC_TYPES@btic_aseq_device_get_type @ALSA_DOC_TYPES@btic_aseq_discoverer_get_type @GUDEV_DOC_TYPES@btic_gudev_discoverer_get_type @LINUX_INPUT_DOC_TYPES@btic_input_device_get_type btic_learn_get_type btic_midi_device_get_type btic_registry_get_type btic_abs_range_control_get_type btic_trigger_control_get_type buzztrax-0.10.2/docs/reference/bt-core/0000755042355400116100000000000012640736116020211 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-core/buzztrax-core.types.in0000644042355400116100000000164012640575004024521 0ustar00ensoniceng00000000000000#include "core/core.h" #include "core/persistence.h" #include "core/song-io-native-bzt.h" #include "core/song-io-native-xml.h" #include "core/song-io-native.h" #include "core/songio/bsl/song-io-buzz.h" bt_application_get_type bt_audio_session_get_type bt_child_proxy_get_type bt_cmd_pattern_get_type bt_machine_get_type bt_parameter_group_get_type bt_pattern_get_type bt_pattern_control_source_get_type bt_persistence_get_type bt_processor_machine_get_type bt_sequence_get_type bt_settings_get_type bt_setup_get_type bt_sink_bin_get_type bt_sink_bin_mode_get_type bt_sink_bin_record_format_get_type bt_sink_machine_get_type bt_song_get_type bt_song_info_get_type bt_song_io_get_type bt_song_io_buzz_get_type bt_song_io_native_bzt_get_type bt_song_io_native_get_type bt_song_io_native_xml_get_type bt_source_machine_get_type bt_value_group_get_type bt_wave_get_type bt_wavelevel_get_type bt_wavetable_get_type bt_wire_get_type buzztrax-0.10.2/docs/reference/bt-core/buzztrax-core-sections.txt0000644042355400116100000003741312640736116025426 0ustar00ensoniceng00000000000000# :mode=html: # please add section in the alpahbetical order using the following template #
# btxxx # BtXxx # #
libbtcore/core.h
btapplication BtApplication BtApplication BT_APPLICATION BT_APPLICATION_CLASS BT_APPLICATION_GET_CLASS BT_IS_APPLICATION BT_IS_APPLICATION_CLASS BT_TYPE_APPLICATION BtApplicationClass BtApplicationPrivate bt_application_get_type
btaudiosession BtAudioSession BtAudioSession bt_audio_session_new BT_AUDIO_SESSION BT_AUDIO_SESSION_CLASS BT_AUDIO_SESSION_GET_CLASS BT_IS_AUDIO_SESSION BT_IS_AUDIO_SESSION_CLASS BT_TYPE_AUDIO_SESSION BtAudioSessionClass BtAudioSessionPrivate bt_audio_session_get_type
btchildproxy BtChildProxy BtChildProxy BtChildProxyInterface bt_child_proxy_get bt_child_proxy_get_child_by_index bt_child_proxy_get_child_by_name bt_child_proxy_get_children_count bt_child_proxy_get_property bt_child_proxy_get_valist bt_child_proxy_lookup bt_child_proxy_set bt_child_proxy_set_property bt_child_proxy_set_valist BT_CHILD_PROXY BT_CHILD_PROXY_GET_INTERFACE BT_IS_CHILD_PROXY BT_TYPE_CHILD_PROXY bt_child_proxy_get_type
btcmdpattern BtCmdPattern BtCmdPattern BtPatternCmd bt_cmd_pattern_new BT_IS_CMD_PATTERN BT_IS_CMD_PATTERN_CLASS BT_CMD_PATTERN BT_CMD_PATTERN_CLASS BT_CMD_PATTERN_GET_CLASS BT_TYPE_CMD_PATTERN BT_TYPE_PATTERN_CMD BtCmdPatternClass BtCmdPatternPrivate bt_pattern_cmd_get_type bt_cmd_pattern_get_type
btmachine BtMachine BtMachine BtMachineClass BtMachineState bt_machine_activate_adder bt_machine_activate_spreader bt_machine_add_pattern bt_machine_bind_parameter_control bt_machine_bind_poly_parameter_control bt_machine_enable_input_gain bt_machine_enable_input_post_level bt_machine_enable_input_pre_level bt_machine_enable_output_gain bt_machine_enable_output_post_level bt_machine_enable_output_pre_level bt_machine_get_global_param_group bt_machine_get_pattern_by_index bt_machine_get_pattern_by_name bt_machine_get_prefs_param_group bt_machine_get_unique_pattern_name bt_machine_get_voice_param_group bt_machine_get_wire_by_dst_machine bt_machine_handles_waves bt_machine_has_active_adder bt_machine_has_active_spreader bt_machine_has_patterns bt_machine_is_polyphonic bt_machine_randomize_parameters bt_machine_remove_pattern bt_machine_reset_parameters bt_machine_set_param_defaults bt_machine_unbind_parameter_control bt_machine_unbind_parameter_controls bt_machine_get_pattern_by_id bt_machine_dbg_dump_global_controller_queue bt_machine_dbg_dump_voice_controller_queue bt_machine_dbg_print_parts bt_machine_get_element_list BT_IS_MACHINE BT_IS_MACHINE_CLASS BT_MACHINE BT_MACHINE_CLASS BT_MACHINE_GET_CLASS BT_TYPE_MACHINE BT_TYPE_MACHINE_STATE BtMachinePrivate bt_machine_get_type bt_machine_state_get_type
btparametergroup BtParameterGroup BtParameterGroup bt_parameter_group_describe_param_value bt_parameter_group_get_param_details bt_parameter_group_get_param_index bt_parameter_group_get_param_name bt_parameter_group_get_param_no_value bt_parameter_group_get_param_parent bt_parameter_group_get_param_spec bt_parameter_group_get_param_type bt_parameter_group_get_trigger_param_index bt_parameter_group_get_wave_param_index bt_parameter_group_is_param_no_value bt_parameter_group_is_param_trigger bt_parameter_group_new bt_parameter_group_randomize_values bt_parameter_group_reset_values bt_parameter_group_set_param_default bt_parameter_group_set_param_defaults bt_parameter_group_set_param_value BT_IS_PARAMETER_GROUP BT_IS_PARAMETER_GROUP_CLASS BT_PARAMETER_GROUP BT_PARAMETER_GROUP_CLASS BT_PARAMETER_GROUP_GET_CLASS BT_TYPE_PARAMETER_GROUP BtParameterGroupClass BtParameterGroupPrivate bt_parameter_group_get_type
btpattern BtPattern BtPattern bt_pattern_blend_columns bt_pattern_clear_columns bt_pattern_copy bt_pattern_delete_row bt_pattern_flip_columns bt_pattern_get_global_event bt_pattern_get_global_event_data bt_pattern_get_global_group bt_pattern_get_group_by_parameter_group bt_pattern_get_voice_event bt_pattern_get_voice_event_data bt_pattern_get_voice_group bt_pattern_get_wire_event bt_pattern_get_wire_event_data bt_pattern_get_wire_group bt_pattern_insert_row bt_pattern_new bt_pattern_randomize_columns bt_pattern_range_randomize_columns bt_pattern_serialize_columns bt_pattern_set_global_event bt_pattern_set_voice_event bt_pattern_set_wire_event bt_pattern_test_global_event bt_pattern_test_tick bt_pattern_test_voice_event bt_pattern_test_wire_event BT_IS_PATTERN BT_IS_PATTERN_CLASS BT_PATTERN BT_PATTERN_CLASS BT_PATTERN_GET_CLASS BT_TYPE_PATTERN BtPatternClass BtPatternPrivate bt_pattern_get_type
btpatterncontrolsource BtPatternControlSource BtPatternControlSource bt_pattern_control_source_new BT_IS_PATTERN_CONTROL_SOURCE BT_IS_PATTERN_CONTROL_SOURCE_CLASS BT_PATTERN_CONTROL_SOURCE BT_PATTERN_CONTROL_SOURCE_CLASS BT_PATTERN_CONTROL_SOURCE_GET_CLASS BT_TYPE_PATTERN_CONTROL_SOURCE BtPatternControlSourceClass BtPatternControlSourcePrivate bt_pattern_control_source_get_type
btpersistence BtPersistence BtPersistence BtPersistenceInterface bt_persistence_collect_hashtable_entries bt_persistence_load bt_persistence_load_hashtable bt_persistence_save bt_persistence_save_hashtable bt_persistence_save_list BT_IS_PERSISTENCE BT_PERSISTENCE BT_PERSISTENCE_GET_INTERFACE BT_TYPE_PERSISTENCE bt_persistence_get_type
btprocessormachine BtProcessorMachine BtProcessorMachine BtProcessorMachinePatternIndex bt_processor_machine_new BT_IS_PROCESSOR_MACHINE BT_IS_PROCESSOR_MACHINE_CLASS BT_PROCESSOR_MACHINE BT_PROCESSOR_MACHINE_CLASS BT_PROCESSOR_MACHINE_GET_CLASS BT_TYPE_PROCESSOR_MACHINE BtProcessorMachineClass bt_processor_machine_get_type
btsequence BtSequence BtSequence bt_sequence_add_track bt_sequence_delete_full_rows bt_sequence_delete_rows bt_sequence_get_label bt_sequence_get_loop_length bt_sequence_get_machine bt_sequence_get_pattern bt_sequence_get_tick_by_pattern bt_sequence_get_track_by_machine bt_sequence_insert_full_rows bt_sequence_insert_rows bt_sequence_is_pattern_used bt_sequence_limit_play_pos bt_sequence_move_track_left bt_sequence_move_track_right bt_sequence_new bt_sequence_remove_track_by_ix bt_sequence_remove_track_by_machine bt_sequence_set_label bt_sequence_set_pattern bt_sequence_set_pattern_quick BT_IS_SEQUENCE BT_IS_SEQUENCE_CLASS BT_SEQUENCE BT_SEQUENCE_CLASS BT_SEQUENCE_GET_CLASS BT_TYPE_SEQUENCE BtSequenceClass BtSequencePrivate bt_sequence_get_type
btsettings BtSettings BtSettings bt_settings_determine_audiosink_name bt_settings_parse_ic_playback_spec bt_settings_format_ic_playback_spec bt_settings_make BT_IS_SETTINGS BT_IS_SETTINGS_CLASS BT_SETTINGS BT_SETTINGS_CLASS BT_SETTINGS_GET_CLASS BT_TYPE_SETTINGS BtSettingsClass BtSettingsPrivate bt_settings_get_type
btsetup BtSetup BtSetup bt_setup_add_machine bt_setup_add_wire bt_setup_get_machine_by_id bt_setup_get_machine_by_type bt_setup_get_machines_by_type bt_setup_get_unique_machine_id bt_setup_get_wire_by_dst_machine bt_setup_get_wire_by_machines bt_setup_get_wire_by_src_machine bt_setup_get_wires_by_dst_machine bt_setup_get_wires_by_src_machine bt_setup_new bt_setup_remember_missing_machine bt_setup_remove_machine bt_setup_remove_wire BT_IS_SETUP BT_IS_SETUP_CLASS BT_SETUP BT_SETUP_CLASS BT_SETUP_GET_CLASS BT_TYPE_SETUP BtSetupClass BtSetupPrivate bt_setup_get_type
btsinkbin BtSinkBin BtSinkBin BtSinkBinMode BtSinkBinRecordFormat bt_sink_bin_is_record_format_supported BT_IS_SINK_BIN BT_IS_SINK_BIN_CLASS BT_SINK_BIN BT_SINK_BIN_CLASS BT_SINK_BIN_GET_CLASS BT_TYPE_SINK_BIN BT_TYPE_SINK_BIN_MODE BT_TYPE_SINK_BIN_RECORD_FORMAT BtSinkBinClass BtSinkBinPrivate bt_sink_bin_get_type bt_sink_bin_mode_get_type bt_sink_bin_record_format_get_type
btsinkmachine BtSinkMachine BtSinkMachine BtSinkMachinePatternIndex bt_sink_machine_new BT_IS_SINK_MACHINE BT_IS_SINK_MACHINE_CLASS BT_SINK_MACHINE BT_SINK_MACHINE_CLASS BT_SINK_MACHINE_GET_CLASS BT_TYPE_SINK_MACHINE BtSinkMachineClass bt_sink_machine_get_type
btsong BtSong BtSong BtSongClass bt_song_continue bt_song_new bt_song_pause bt_song_play bt_song_stop bt_song_update_playback_position bt_song_write_to_highlevel_dot_file bt_song_write_to_lowlevel_dot_file BT_IS_SONG BT_IS_SONG_CLASS BT_SONG BT_SONG_CLASS BT_SONG_GET_CLASS BT_TYPE_SONG BtSongPrivate bt_song_get_type
btsonginfo BtSongInfo BtSongInfo bt_song_info_new bt_song_info_get_change_dts_in_local_tz bt_song_info_get_seconds_since_last_saved bt_song_info_tick_to_time bt_song_info_time_to_tick bt_song_info_time_to_m_s_ms bt_song_info_tick_to_m_s_ms BT_IS_SONG_INFO BT_IS_SONG_INFO_CLASS BT_SONG_INFO BT_SONG_INFO_CLASS BT_SONG_INFO_GET_CLASS BT_TYPE_SONG_INFO BtSongInfoClass BtSongInfoPrivate bt_song_info_get_type
btsongio BtSongIO BT_SONG_IO_ERROR BT_SONG_IO_MODULE_INFO_MAX_FORMATS BtSongIO BtSongIOClass BtSongIOError BtSongIOFormatInfo BtSongIOInit BtSongIOModuleInfo bt_song_io_from_data bt_song_io_from_file bt_song_io_get_module_info_list bt_song_io_load bt_song_io_save bt_song_io_virtual_load bt_song_io_virtual_save BT_IS_SONG_IO BT_IS_SONG_IO_CLASS BT_SONG_IO BT_SONG_IO_CLASS BT_SONG_IO_GET_CLASS BT_TYPE_SONG_IO BtSongIOPrivate bt_song_io_get_type bt_song_io_error_quark
btsongionative BtSongIONative BtSongIONative BtSongIONativeClass bt_song_io_native_module_info BT_IS_SONG_IO_NATIVE BT_IS_SONG_IO_NATIVE_CLASS BT_SONG_IO_NATIVE BT_SONG_IO_NATIVE_CLASS BT_SONG_IO_NATIVE_GET_CLASS BT_TYPE_SONG_IO_NATIVE bt_song_io_native_get_type
btsongionativebzt BtSongIONativeBZT BtSongIONativeBZT BtSongIONativeBZTClass bt_song_io_native_bzt_copy_from_uri bt_song_io_native_bzt_copy_to_fd BT_IS_SONG_IO_NATIVE_BZT BT_IS_SONG_IO_NATIVE_BZT_CLASS BT_SONG_IO_NATIVE_BZT BT_SONG_IO_NATIVE_BZT_CLASS BT_SONG_IO_NATIVE_BZT_GET_CLASS BT_TYPE_SONG_IO_NATIVE_BZT BtSongIONativeBZTPrivate bt_song_io_native_bzt_get_type
btsongionativexml BtSongIONativeXML BtSongIONativeXML BtSongIONativeXMLClass BT_IS_SONG_IO_NATIVE_XML BT_IS_SONG_IO_NATIVE_XML_CLASS BT_SONG_IO_NATIVE_XML BT_SONG_IO_NATIVE_XML_CLASS BT_SONG_IO_NATIVE_XML_GET_CLASS BT_TYPE_SONG_IO_NATIVE_XML bt_song_io_native_xml_get_type
btsongiobuzz BtSongIOBuzz BtSongIOBuzz BmxCompressionValues BmxMachSection BmxMachineAttributes BmxParaSection BmxParameter BmxSectionEntry BtSongIOBuzzClass BT_IS_SONG_IO_BUZZ BT_IS_SONG_IO_BUZZ_CLASS BT_SONG_IO_BUZZ BT_SONG_IO_BUZZ_CLASS BT_SONG_IO_BUZZ_GET_CLASS BT_TYPE_SONG_IO_BUZZ BtSongIOBuzzPrivate bt_song_io_buzz_get_type
btsourcemachine BtSourceMachine BtSourceMachine BtSourceMachinePatternIndex bt_source_machine_new BT_IS_SOURCE_MACHINE BT_IS_SOURCE_MACHINE_CLASS BT_SOURCE_MACHINE BT_SOURCE_MACHINE_CLASS BT_SOURCE_MACHINE_GET_CLASS BT_TYPE_SOURCE_MACHINE BtSourceMachineClass bt_source_machine_get_type
btvaluegroup BtValueGroup BtValueGroup bt_value_group_blend_column bt_value_group_blend_columns bt_value_group_copy bt_value_group_clear_column bt_value_group_clear_columns bt_value_group_delete_full_row bt_value_group_delete_row bt_value_group_deserialize_column bt_value_group_flip_column bt_value_group_flip_columns bt_value_group_get_event bt_value_group_get_event_data bt_value_group_insert_full_row bt_value_group_insert_row bt_value_group_new bt_value_group_randomize_column bt_value_group_randomize_columns bt_value_group_range_randomize_column bt_value_group_range_randomize_columns bt_value_group_serialize_column bt_value_group_serialize_columns bt_value_group_set_event bt_value_group_test_event bt_value_group_test_tick BT_IS_VALUE_GROUP BT_IS_VALUE_GROUP_CLASS BT_TYPE_VALUE_GROUP BT_VALUE_GROUP BT_VALUE_GROUP_CLASS BT_VALUE_GROUP_GET_CLASS BtValueGroupClass BtValueGroupPrivate bt_value_group_get_type
btwave BtWave BtWave BtWaveLoopMode bt_wave_add_wavelevel bt_wave_get_level_by_index bt_wave_new BT_IS_WAVE BT_IS_WAVE_CLASS BT_TYPE_WAVE BT_TYPE_WAVE_LOOP_MODE BT_WAVE BT_WAVE_CLASS BT_WAVE_GET_CLASS BtWaveClass BtWavePrivate bt_wave_get_type bt_wave_loop_mode_get_type
btwavelevel BtWavelevel BT_WAVELEVEL_DEFAULT_ROOT_NOTE BtWavelevel bt_wavelevel_new BT_IS_WAVELEVEL BT_IS_WAVELEVEL_CLASS BT_TYPE_WAVELEVEL BT_WAVELEVEL BT_WAVELEVEL_CLASS BT_WAVELEVEL_GET_CLASS BtWavelevelClass BtWavelevelPrivate bt_wavelevel_get_type
btwavetable BtWavetable BtWavetable bt_wavetable_add_wave bt_wavetable_get_wave_by_index bt_wavetable_new bt_wavetable_remember_missing_wave bt_wavetable_remove_wave BT_IS_WAVETABLE BT_IS_WAVETABLE_CLASS BT_TYPE_WAVETABLE BT_WAVETABLE BT_WAVETABLE_CLASS BT_WAVETABLE_GET_CLASS BtWavetableClass BtWavetablePrivate bt_wavetable_get_type
btwire BtWire BT_WIRE_MAX_NUM_PARAMS BtWire bt_wire_get_param_group bt_wire_new bt_wire_reconnect bt_wire_can_link bt_wire_dbg_print_parts bt_wire_get_element_list BT_IS_WIRE BT_IS_WIRE_CLASS BT_TYPE_WIRE BT_WIRE BT_WIRE_CLASS BT_WIRE_GET_CLASS BtWireClass BtWirePrivate bt_wire_get_type
libbtcore libbtcore BT_IS_GVALUE BT_IS_STRING bt_cpu_load_get_current bt_init bt_init_add_option_groups bt_init_check bt_init_get_option_group bt_deinit bt_major_version bt_micro_version bt_minor_version return_if_disposed return_val_if_disposed safe_string # glib extras G_OBJECT_REF_COUNT G_OBJECT_REF_COUNT_FMT G_OBJECT_LOG_REF_COUNT bt_g_type_get_base_type bt_g_object_idle_add bt_g_signal_connect g_object_try_ref g_object_try_unref g_object_try_weak_ref g_object_try_weak_unref # gstreamer extras bt_bin_activate_tee_chain bt_bin_deactivate_tee_chain bt_gst_analyzer_get_waittime bt_gst_check_core_elements bt_gst_check_elements bt_gst_debug_pad_link_return bt_gst_element_factory_get_pad_template bt_gst_element_factory_can_sink_media_type bt_gst_registry_get_element_factories_matching_all_categories bt_gst_registry_get_element_names_matching_all_categories bt_gst_try_element bt_gst_level_message_get_aggregated_field bt_str_format_double bt_str_format_enum bt_str_format_long bt_str_format_uchar bt_str_format_ulong bt_str_parse_enum bt_str_format_gvalue bt_str_parse_gvalue # glib extras G_OPTION_FLAG_NO_ARG G_PARAM_STATIC_STRINGS G_DEFINE_INTERFACE G_DEFINE_INTERFACE_WITH_CODE # gstreamer extras GST_CAT_DEFAULT GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS
buzztrax-0.10.2/docs/reference/bt-core/buzztrax-core.types0000644042355400116100000000164012640736116024117 0ustar00ensoniceng00000000000000#include "core/core.h" #include "core/persistence.h" #include "core/song-io-native-bzt.h" #include "core/song-io-native-xml.h" #include "core/song-io-native.h" #include "core/songio/bsl/song-io-buzz.h" bt_application_get_type bt_audio_session_get_type bt_child_proxy_get_type bt_cmd_pattern_get_type bt_machine_get_type bt_parameter_group_get_type bt_pattern_get_type bt_pattern_control_source_get_type bt_persistence_get_type bt_processor_machine_get_type bt_sequence_get_type bt_settings_get_type bt_setup_get_type bt_sink_bin_get_type bt_sink_bin_mode_get_type bt_sink_bin_record_format_get_type bt_sink_machine_get_type bt_song_get_type bt_song_info_get_type bt_song_io_get_type bt_song_io_buzz_get_type bt_song_io_native_bzt_get_type bt_song_io_native_get_type bt_song_io_native_xml_get_type bt_source_machine_get_type bt_value_group_get_type bt_wave_get_type bt_wavelevel_get_type bt_wavetable_get_type bt_wire_get_type buzztrax-0.10.2/docs/reference/bt-core/html/0000755042355400116100000000000012640736116021155 5ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-core/html/BtPersistence.html0000644042355400116100000005162412640736116024625 0ustar00ensoniceng00000000000000 BtPersistence: Buzztrax Bt-Core Reference Manual

BtPersistence

BtPersistence — object persistence interface

Types and Values

Object Hierarchy

    GInterface
    ╰── BtPersistence

Includes

#include <libbtcore/core.h>

Description

Classes can implement this interface to store their data as xml and restore them from xml. They should call the interface methods on their children objects (which also implement the interface) to serialize/ deserialize a whole object hierarchy.

Functions

bt_persistence_collect_hashtable_entries ()

void
bt_persistence_collect_hashtable_entries
                               (gpointer const key,
                                gpointer const value,
                                gpointer const user_data);

Gather GHashTable entries in a list. Should be used with g_hash_table_foreach().

Parameters

key

hashtable key

 

value

hashtable value

 

user_data

GList **list

 

bt_persistence_load ()

BtPersistence *
bt_persistence_load (const GType type,
                     const BtPersistence * const self,
                     xmlNodePtr node,
                     GError **err,
                     ...);

Deserializes the given object from the node . If self is NULL and a type is given it constructs a new object.

Parameters

type

a GObject type

 

self

a deserialiable object

 

node

the xml node

 

err

a GError for deserialisation errors

 

...

extra parameters NULL terminated name/value pairs.

 

Returns

the deserialized object or NULL.

[transfer none]


bt_persistence_load_hashtable ()

gboolean
bt_persistence_load_hashtable (GHashTable *hashtable,
                               xmlNodePtr node);

Iterates over the xml-node and deserializes elements into the hashtable.

Parameters

hashtable

a GHashTable.

[element-type utf8 utf8]

node

the list xml node

 

Returns

TRUE if all elements have been deserialized.


bt_persistence_save ()

xmlNodePtr
bt_persistence_save (const BtPersistence * const self,
                     xmlNodePtr const parent_node);

Serializes the given object into node .

Parameters

self

a serialiable object

 

parent_node

the parent xml node

 

Returns

the new node if the object has been serialized, else NULL.


bt_persistence_save_hashtable ()

gboolean
bt_persistence_save_hashtable (GHashTable *hashtable,
                               xmlNodePtr const node);

Iterates over a hashtable with strings and serializes them.

Parameters

hashtable

a GHashTable with strings.

[element-type utf8 utf8]

node

the list xml node

 

Returns

TRUE if all elements have been serialized.


bt_persistence_save_list ()

gboolean
bt_persistence_save_list (const GList *list,
                          xmlNodePtr const node);

Iterates over a list of objects, which must implement the BtPersistence interface and calls bt_persistence_save() on each item.

Parameters

list

a GList doc ; the xml-document.

[element-type BuzztraxCore.Persistence]

node

the list xml node

 

Returns

TRUE if all elements have been serialized.

Types and Values

BtPersistence

typedef struct _BtPersistence BtPersistence;

Opaque interface handle.


struct BtPersistenceInterface

struct BtPersistenceInterface {
  /* virtual methods */
  xmlNodePtr (*save)(const BtPersistence * const self, xmlNodePtr const node);
  BtPersistence* (*load)(const GType type, const BtPersistence * const self, xmlNodePtr node, GError **err, va_list var_args);
};

BtPersistence interface

Members

save ()

virtual method to serialize an object to an xml node

 

load ()

virtual method to deserialze an object from an xml node

 
buzztrax-0.10.2/docs/reference/bt-core/html/BtSinkBin.html0000644042355400116100000004164312640736116023676 0ustar00ensoniceng00000000000000 BtSinkBin: Buzztrax Bt-Core Reference Manual

BtSinkBin

BtSinkBin — bin to be used by BtSinkMachine

Properties

gpointer analyzers Read / Write
GstElement * input-gain Read / Write
gdouble master-volume Read / Write
BtSinkBinMode mode Read / Write
gchar * record-file-name Read / Write
BtSinkBinRecordFormat record-format Read / Write

Types and Values

Object Hierarchy

    GEnum
    ├── BtSinkBinMode
    ╰── BtSinkBinRecordFormat
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBin
                    ╰── BtSinkBin

Implemented Interfaces

BtSinkBin implements GstChildProxy and GstBtTempo.

Includes

#include <libbtcore/core.h>

Description

The sink-bin provides switchable play and record facilities. It also provides controllable master-volume.

In play and record modes it plugs a chain of elements. In combined play and record mode it uses a tee and plugs both pipelines.

Functions

bt_sink_bin_is_record_format_supported ()

gboolean
bt_sink_bin_is_record_format_supported
                               (BtSinkBinRecordFormat format);

Each record format might need a couple of GStreamer element to work. This function verifies that all needed element are available.

Parameters

format

the format to check

 

Returns

TRUE if a fomat is useable

Types and Values

struct BtSinkBin

struct BtSinkBin;

Sub-class of a GstBin that implements a signal output (a machine with inputs only).


enum BtSinkBinMode

BtSinkBin supports several modes of operation. Playing is the default mode. Passthru is only needed if the song is plugged in another pipeline.

Members

BT_SINK_BIN_MODE_PLAY

play the song

 

BT_SINK_BIN_MODE_RECORD

record to file

 

BT_SINK_BIN_MODE_PLAY_AND_RECORD

play and record together

 

BT_SINK_BIN_MODE_PASS_THRU

output audio on sometimes src pad

 

enum BtSinkBinRecordFormat

BtSinkMachine can record audio in several formats.

Members

BT_SINK_BIN_RECORD_FORMAT_OGG_VORBIS

ogg vorbis

 

BT_SINK_BIN_RECORD_FORMAT_MP3

mp3

 

BT_SINK_BIN_RECORD_FORMAT_WAV

wav

 

BT_SINK_BIN_RECORD_FORMAT_OGG_FLAC

ogg flac

 

BT_SINK_BIN_RECORD_FORMAT_RAW

raw

 

BT_SINK_BIN_RECORD_FORMAT_MP4_AAC

mp4 aac

 

BT_SINK_BIN_RECORD_FORMAT_FLAC

flac

 

BT_SINK_BIN_RECORD_FORMAT_OGG_OPUS

ogg opus

 

BT_SINK_BIN_RECORD_FORMAT_COUNT

number of formats

 

Property Details

The “analyzers” property

  “analyzers”                gpointer

list of master analyzers.

Flags: Read / Write


The “input-gain” property

  “input-gain”               GstElement *

the input-gain element, if any.

Flags: Read / Write


The “master-volume” property

  “master-volume”            gdouble

master volume for the song.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1


The “mode” property

  “mode”                     BtSinkBinMode

mode of operation.

Flags: Read / Write

Default value: BT_SINK_BIN_MODE_PLAY


The “record-file-name” property

  “record-file-name”         gchar *

the file-name to use for recording.

Flags: Read / Write

Default value: NULL


The “record-format” property

  “record-format”            BtSinkBinRecordFormat

format to use when in record mode.

Flags: Read / Write

Default value: .vorbis.ogg

buzztrax-0.10.2/docs/reference/bt-core/html/BtWavetable.html0000644042355400116100000005236012640736116024251 0ustar00ensoniceng00000000000000 BtWavetable: Buzztrax Bt-Core Reference Manual

BtWavetable

BtWavetable — the list of BtWave items in a BtSong

Properties

gpointer missing-waves Read
BtSong * song Read / Write / Construct Only
gpointer waves Read

Signals

void wave-added No Hooks
void wave-removed No Hooks

Types and Values

struct BtWavetable

Object Hierarchy

    GObject
    ╰── BtWavetable

Implemented Interfaces

BtWavetable implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

Each wave table entry can consist of multiple BtWaves, were each of the waves has a BtWavelevel with the data for a note range.

The first entry starts at index pos 1. Index 0 is used in a BtPattern to indicate that no (new) wave is referenced.

Functions

bt_wavetable_add_wave ()

gboolean
bt_wavetable_add_wave (const BtWavetable * const self,
                       const BtWave * const wave);

Add the supplied wave to the wavetable. This is automatically done by bt_wave_new().

Parameters

self

the wavetable to add the wave to

 

wave

the new wave instance

 

Returns

TRUE for success, FALSE otheriwse


bt_wavetable_get_wave_by_index ()

BtWave *
bt_wavetable_get_wave_by_index (const BtWavetable * const self,
                                const gulong index);

Search the wavetable for a wave by the supplied index. The wave must have been added previously to this wavetable with bt_wavetable_add_wave().

Parameters

self

the wavetable to search for the wave

 

index

the index of the wave

 

Returns

BtWave instance or NULL if not found. Unref the wave, when done with it.

[transfer full]


bt_wavetable_new ()

BtWavetable *
bt_wavetable_new (const BtSong * const song);

Create a new instance

Parameters

song

the song the new instance belongs to

 

Returns

the new instance or NULL in case of an error


bt_wavetable_remember_missing_wave ()

void
bt_wavetable_remember_missing_wave (const BtWavetable * const self,
                                    const gchar * const str);

Loaders can use this function to collect information about wavetable entries that failed to load. The front-end can access this later by reading BtWavetable::missing-waves property.

Parameters

self

the wavetable

 

str

human readable description of the missing wave

 

bt_wavetable_remove_wave ()

gboolean
bt_wavetable_remove_wave (const BtWavetable * const self,
                          const BtWave * const wave);

Remove the supplied wave from the wavetable.

Parameters

self

the wavetable to remove the wave from

 

wave

the wave instance

 

Returns

TRUE for success, FALSE otheriwse

Types and Values

struct BtWavetable

struct BtWavetable;

A table of BtWave objects.

Property Details

The “missing-waves” property

  “missing-waves”            gpointer

The list of missing waves, don't change.

Flags: Read


The “song” property

  “song”                     BtSong *

Set song object, the wavetable belongs to.

Flags: Read / Write / Construct Only


The “waves” property

  “waves”                    gpointer

A copy of the list of waves.

Flags: Read

Signal Details

The “wave-added” signal

void
user_function (BtWavetable *self,
               BtWave      *wave,
               gpointer     user_data)

A new wave item has been added to the wavetable

Parameters

self

the wavetable object that emitted the signal

 

wave

the new wave

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “wave-removed” signal

void
user_function (BtWavetable *self,
               BtWave      *wave,
               gpointer     user_data)

A wave item has been removed from the wavetable

Parameters

self

the setup object that emitted the signal

 

wave

the old wave

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

buzztrax-0.10.2/docs/reference/bt-core/html/ch02.html0000644042355400116100000000526212640736116022604 0ustar00ensoniceng00000000000000 Core Class Reference: Buzztrax Bt-Core Reference Manual

Core Class Reference

libbtcore — core library of the buzztrax application framework
BtApplication — base class for a buzztrax based application
BtAudioSession — bin to be used by BtSinkMachine
BtSettings — class for buzztrax settings handling
BtChildProxy — Interface for multi child elements.
BtPersistence — object persistence interface
buzztrax-0.10.2/docs/reference/bt-core/html/conventions.html0000644042355400116100000000574412640736116024422 0ustar00ensoniceng00000000000000 Conventions: Buzztrax Bt-Core Reference Manual

Conventions

During the API docs some conventions are used to avoid duplication and improve precision.

  1. It is never valid to supply NULL for an object reference, unless it is explicitly said so.

  2. Methods do checking of preconditions using g_return_if_fail() or g_return_val_if_fail(). Therefore watch for the glib log messages indicating wrong API usage.

  3. All methods that return a pointer to an object, increase the reference counter. Therefore you should do release this reference by calling g_object_unref() when you are done with the object.

  4. When a return value is marked as const e.g. const gchar * or const BtObjectName * then this is a static reference. You must not call g_free() or g_object_unref() on it.

buzztrax-0.10.2/docs/reference/bt-core/html/BtSongIONative.html0000644042355400116100000001361412640736116024643 0ustar00ensoniceng00000000000000 BtSongIONative: Buzztrax Bt-Core Reference Manual

BtSongIONative

BtSongIONative — class for song input and output in builtin native format

Types and Values

struct BtSongIONative
struct BtSongIONativeClass
extern BtSongIOModuleInfo bt_song_io_native_module_info

Object Hierarchy

    GObject
    ╰── BtSongIO
        ╰── BtSongIONative
            ├── BtSongIONativeBZT
            ╰── BtSongIONativeXML

Includes

#include <libbtcore/core.h>

Description

Buzztrax stores songs in an own file-format. This internal io-module implements loading and saving of this format. The format is an archive, that contains an XML file and optionally binary data, such as audio samples.

Functions

Types and Values

struct BtSongIONative

struct BtSongIONative;

object for song input and output in native zip/xml format


struct BtSongIONativeClass

struct BtSongIONativeClass {
  const BtSongIOClass parent;
};

Class for song input and output in native zip/xml format

Members

const BtSongIOClass parent;

parent class type

 

bt_song_io_native_module_info

extern BtSongIOModuleInfo bt_song_io_native_module_info;

Buzztrax native format song loader/saver metadata.

buzztrax-0.10.2/docs/reference/bt-core/html/home.png0000644042355400116100000000040012640736116022605 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME &IDAT8ҽ Aߞf`n v`6`/`Yܡ`f&k$,} 0b+ԸaQW~b O e{y N[L}.piBzmm o.I]7^[;%:VIENDB`buzztrax-0.10.2/docs/reference/bt-core/html/libbtcore.html0000644042355400116100000002135012640736116024011 0ustar00ensoniceng00000000000000 API Reference: Buzztrax Bt-Core Reference Manual

API Reference


Abstract

libbuzztrax-core is the main library for the buzztrax software system. This library contains all classes needed for the components of a song like machines, patterns, wires and so on. It further defines bases classes for common operations such as song input/output. The synthesis engine and the low-level parts of the sequencer are built into GStreamer. Please make sure you have read section conventions before reading further.

All data structures are encapsulated in objects based on GObject. Central starting points are BtApplication and BtSong. All the objects that belong to a song have their song-instance as their member. Likewise all objects that belong to the applications have their application instance as a member.

Table of Contents

Core Class Reference
libbtcore — core library of the buzztrax application framework
BtApplication — base class for a buzztrax based application
BtAudioSession — bin to be used by BtSinkMachine
BtSettings — class for buzztrax settings handling
BtChildProxy — Interface for multi child elements.
BtPersistence — object persistence interface
Song Class Reference
BtCmdPattern — class for an command pattern of a BtMachine instance
BtMachine — base class for signal processing machines
BtParameterGroup — a group of parameter
BtPattern — class for an event pattern of a BtMachine instance
BtPatternControlSource — Custom controlsource based on repeated event blocks (BtPatterns).
BtProcessorMachine — class for signal processing machines with inputs and outputs
BtSequence — class for the event timeline of a BtSong instance
BtSetup — class with all machines and wires (BtMachine and BtWire) for a BtSong instance
BtSinkBin — bin to be used by BtSinkMachine
BtSinkMachine — class for signal processing machines with inputs only
BtSong — class of a song project object (contains BtSongInfo, BtSetup, BtSequence and BtWavetable)
BtSongInfo — class that keeps the meta-data for a BtSong instance
BtSourceMachine — class for signal processing machines with outputs only
BtValueGroup — a GValue array of parameter values
BtWave — one BtWavetable entry that keeps a list of BtWavelevels
BtWavelevel — a single part of a BtWave item
BtWavetable — the list of BtWave items in a BtSong
BtWire — class for a connection of two BtMachines
Song IO Reference
BtSongIO — base class for song input and output
BtSongIONative — class for song input and output in builtin native format
BtSongIONativeBZT — class for song input and output in builtin native format
BtSongIONativeXML — class for song input and output in builtin native format
BtSongIOBuzz — class for song input in buzz bmx and bmw format
buzztrax-0.10.2/docs/reference/bt-core/html/BtSongInfo.html0000644042355400116100000006775212640736116024074 0ustar00ensoniceng00000000000000 BtSongInfo: Buzztrax Bt-Core Reference Manual

BtSongInfo

BtSongInfo — class that keeps the meta-data for a BtSong instance

Properties

gchar * author Read / Write
gulong bars Read / Write
gulong bpm Read / Write
gchar * change-dts Read / Write
gchar * create-dts Read / Write
gchar * file-name Read / Write
gchar * genre Read / Write
gchar * info Read / Write
gchar * name Read / Write
BtSong * song Read / Write / Construct Only
gpointer taglist Read
guint64 tick-duration Read
gulong tpb Read / Write

Types and Values

struct BtSongInfo

Object Hierarchy

    GObject
    ╰── BtSongInfo

Implemented Interfaces

BtSongInfo implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

This class exposes the meta-data of a song as GObject properties. These are for one pure data fields such as author and song name. These fields get used when recording a song to a file (rendering) in the form of meta-tags.

Further there are fields that determine rythm and song-speed. The speed is determined by “bpm”. The rythm is determined by “bars” and “tpb”. If 'bars' is 16, than on can have 1/16 notes. And if 'ticks per beat' is 4 one will have 4 beats - a classic 4/4 meassure. For a 3/4 meassure, 'bars' would be 12. Thus bars = beats * tpb.

Finally, the class offers a couple of timing related conversion functions.

Functions

bt_song_info_new ()

BtSongInfo *
bt_song_info_new (const BtSong * const song);

Create a new instance

Parameters

song

the song the new instance belongs to

 

Returns

the new instance or NULL in case of an error


bt_song_info_get_change_dts_in_local_tz ()

const gchar *
bt_song_info_get_change_dts_in_local_tz
                               (const BtSongInfo * const self);

Convert the BtSongInfo::change-dts to local time zone.

Return: the time stamp in iso 8601 format

Parameters

self

the song_info

 

bt_song_info_get_seconds_since_last_saved ()

gint
bt_song_info_get_seconds_since_last_saved
                               (const BtSongInfo * const self);

Calculate the seconds since last save time or the creation time if the song is new.

Return: the seconds

Parameters

self

the song_info

 

bt_song_info_tick_to_time ()

GstClockTime
bt_song_info_tick_to_time (const BtSongInfo * const self,
                           const gulong tick);

Convert a given tick position to the time in µs.

Parameters

self

the song_info

 

tick

the tick position

 

Returns

the time in µs


bt_song_info_time_to_tick ()

gulong
bt_song_info_time_to_tick (const BtSongInfo * const self,
                           const GstClockTime ts);

Convert a given time in µs to the tick position.

Parameters

self

the song_info

 

ts

the time in µs

 

Returns

the integer tick position


bt_song_info_time_to_m_s_ms ()

void
bt_song_info_time_to_m_s_ms (const BtSongInfo * const self,
                             gulong ts,
                             gulong *m,
                             gulong *s,
                             gulong *ms);

Convert a given time in µs to minutes, seconds and milliseconds.

Parameters

self

the song_info

 

ts

the time in µs

 

m

location for the minutes

 

s

location for the seconds

 

ms

location for the milliseconds

 

bt_song_info_tick_to_m_s_ms ()

void
bt_song_info_tick_to_m_s_ms (const BtSongInfo * const self,
                             const gulong tick,
                             gulong *m,
                             gulong *s,
                             gulong *ms);

Convert a given tick position to minutes, seconds and milliseconds.

Parameters

self

the song_info

 

tick

the tick position

 

m

location for the minutes

 

s

location for the seconds

 

ms

location for the milliseconds

 

Types and Values

struct BtSongInfo

struct BtSongInfo;

holds song metadata

Property Details

The “author” property

  “author”                   gchar *

songs author.

Flags: Read / Write

Default value: NULL


The “bars” property

  “bars”                     gulong

how many bars per meassure.

Flags: Read / Write

Allowed values: [1,64]


The “bpm” property

  “bpm”                      gulong

how many beats should be played in a minute.

Flags: Read / Write

Allowed values: [1,1000]


The “change-dts” property

  “change-dts”               gchar *

song changed date time stamp (iso 8601 format).

Flags: Read / Write

Default value: NULL


The “create-dts” property

  “create-dts”               gchar *

song creation date time stamp (iso 8601 format).

Flags: Read / Write

Default value: NULL


The “file-name” property

  “file-name”                gchar *

songs file name.

Flags: Read / Write

Default value: NULL


The “genre” property

  “genre”                    gchar *

songs genre.

Flags: Read / Write

Default value: NULL


The “info” property

  “info”                     gchar *

songs freeform info.

Flags: Read / Write

Default value: "comment me!"


The “name” property

  “name”                     gchar *

songs name.

Flags: Read / Write

Default value: "untitled song"


The “song” property

  “song”                     BtSong *

song object, the song-info belongs to.

Flags: Read / Write / Construct Only


The “taglist” property

  “taglist”                  gpointer

songs meta data as a taglist.

Flags: Read


The “tick-duration” property

  “tick-duration”            guint64

the duration for a tick in µs calculated form the song tempo.

Flags: Read

Allowed values: >= 1

Default value: 1


The “tpb” property

  “tpb”                      gulong

event granularity in one beat.

Flags: Read / Write

Allowed values: [1,128]

buzztrax-0.10.2/docs/reference/bt-core/html/BtPatternControlSource.html0000644042355400116100000003260212640736116026473 0ustar00ensoniceng00000000000000 BtPatternControlSource: Buzztrax Bt-Core Reference Manual

BtPatternControlSource

BtPatternControlSource — Custom controlsource based on repeated event blocks (BtPatterns).

Properties

gpointer default-value Write
BtMachine * machine Read / Write / Construct Only
BtParameterGroup * parameter-group Read / Write / Construct Only
BtSequence * sequence Read / Write / Construct Only
BtSongInfo * song-info Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstControlBinding
                ╰── BtPatternControlSource

Includes

#include <libbtcore/core.h>

Description

The control source will update machine parameters over time, based on the events from the sequences and the patterns. One control-source will handle one single parameter. It implements the logic of computing the parameter value for a given time, taking multiple tracks and overlapping patterns into account.

At the begin of the timeline (ts==0) all parameters that have no value in the sequence will be initialized from “default-value”. For trigger parameter this usualy is the no-value. For other parameters it is the last value one has set in the ui or via interaction controller.

Functions

bt_pattern_control_source_new ()

BtPatternControlSource *
bt_pattern_control_source_new (GstObject *object,
                               const gchar *property_name,
                               BtSequence *sequence,
                               const BtSongInfo *song_info,
                               const BtMachine *machine,
                               BtParameterGroup *param_group);

Create a pattern control source for the given machine and param_group . Use gst_control_source_bind() to attach it to one specific parameter of the param_group .

Parameters

object

the object of the property

 

property_name

the property-name to attach the control source

 

sequence

the songs sequence

 

song_info

the song info

 

machine

the machine

 

param_group

the parameter group

 

Returns

the new pattern control source

Types and Values

struct BtPatternControlSource

struct BtPatternControlSource;

A pattern based control source

Property Details

The “default-value” property

  “default-value”            gpointer

pointer to value to use if no other found.

Flags: Write


The “machine” property

  “machine”                  BtMachine *

the machine object, the controlsource belongs to.

Flags: Read / Write / Construct Only


The “parameter-group” property

  “parameter-group”          BtParameterGroup *

the parameter group.

Flags: Read / Write / Construct Only


The “sequence” property

  “sequence”                 BtSequence *

the sequence object.

Flags: Read / Write / Construct Only


The “song-info” property

  “song-info”                BtSongInfo *

the song-info object.

Flags: Read / Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-core/html/BtCmdPattern.html0000644042355400116100000003126012640736116024374 0ustar00ensoniceng00000000000000 BtCmdPattern: Buzztrax Bt-Core Reference Manual

BtCmdPattern

BtCmdPattern — class for an command pattern of a BtMachine instance

Functions

Properties

BtPatternCmd command Read / Write / Construct Only
BtMachine * machine Read / Write / Construct Only
gchar * name Read / Write / Construct
BtSong * song Read / Write / Construct Only

Types and Values

Object Hierarchy

    GEnum
    ╰── BtPatternCmd
    GObject
    ╰── BtCmdPattern
        ╰── BtPattern

Includes

#include <libbtcore/core.h>

Description

A command pattern is used in the BtSequence to trigger certain actions. The actions are defined as the BtPatternCmd enum.

Functions

bt_cmd_pattern_new ()

BtCmdPattern *
bt_cmd_pattern_new (const BtSong * const song,
                    const BtMachine * const machine,
                    const BtPatternCmd cmd);

Create a new default pattern instance containg the given cmd event. It will be automatically added to the machines pattern list. If cmd is BT_PATTERN_CMD_NORMAL use bt_pattern_new() instead.

Don't call this from applications.

Parameters

song

the song the new instance belongs to

 

machine

the machine the pattern belongs to

 

cmd

a BtPatternCmd

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtCmdPattern

struct BtCmdPattern;

Holds a sequence of events for a BtMachine.


enum BtPatternCmd

The commands are only used in static internal patterns. Regular patterns use BT_PATTERN_CMD_NORMAL .

Members

BT_PATTERN_CMD_NORMAL

no command

 

BT_PATTERN_CMD_MUTE

be quiet immediately

 

BT_PATTERN_CMD_SOLO

be the only one playing

 

BT_PATTERN_CMD_BYPASS

be uneffective (pass through)

 

BT_PATTERN_CMD_BREAK

no more notes

 

Property Details

The “command” property

  “command”                  BtPatternCmd

the command of this pattern.

Flags: Read / Write / Construct Only

Default value: BT_PATTERN_CMD_NORMAL


The “machine” property

  “machine”                  BtMachine *

Machine object, the pattern belongs to.

Flags: Read / Write / Construct Only


The “name” property

  “name”                     gchar *

the display-name of the pattern.

Flags: Read / Write / Construct

Default value: "unnamed"


The “song” property

  “song”                     BtSong *

Song object, the pattern belongs to.

Flags: Read / Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-core/html/left-insensitive.png0000644042355400116100000000061312640736116025153 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEƫqIDAT8͒NQ@pds`*4@W@ A!Ԇ@6^ 5hxIH R`sQp̙339B|sKEQTK@۝΁i^~Wʆ`0TJ6TcYn6A ƀ~߱>}ǭs; lYkwr 5U= /" "uU=ɲlArDzp5I4^E+P3Ɯq_p ̥iUYp=#IENDB`buzztrax-0.10.2/docs/reference/bt-core/html/BtSetup.html0000644042355400116100000014230212640736116023433 0ustar00ensoniceng00000000000000 BtSetup: Buzztrax Bt-Core Reference Manual

BtSetup

BtSetup — class with all machines and wires (BtMachine and BtWire) for a BtSong instance

Properties

gpointer machines Read
gpointer missing-machines Read
gpointer properties Read
BtSong * song Read / Write / Construct Only
gpointer wires Read

Signals

void machine-added No Hooks
void machine-removed No Hooks
void wire-added No Hooks
void wire-removed No Hooks

Types and Values

struct BtSetup

Object Hierarchy

    GObject
    ╰── BtSetup

Implemented Interfaces

BtSetup implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

The setup manages virtual gear in a BtSong. This is a list of BtMachines that are used and the BtWires that connect them.

The setup manages the actual GStreamer GstPipeline content. Freshly created machines are not yet added to the pipeline. Only once a subgraph from a source is fully connected to the sink, that subgraph is added o the pipeline. Changing the machines and wires also works while the song is playing.

Applications can watch the GstObject:parent property to see whether a machine is physically inserted into the processing pipeline.

The setup takes ownership of the machines and wires. They are automatically added when they are created and destroyed together with the setup.

Functions

bt_setup_add_machine ()

gboolean
bt_setup_add_machine (const BtSetup * const self,
                      const BtMachine * const machine);

Let the setup know that the supplied machine is now part of the song.

Parameters

self

the setup to add the machine to

 

machine

the new machine instance

 

Returns

return TRUE, if the machine can be added. Returns FALSE if the machine is currently added to the setup.


bt_setup_add_wire ()

gboolean
bt_setup_add_wire (const BtSetup * const self,
                   const BtWire * const wire);

Let the setup know that the supplied wire is now part of the song.

Parameters

self

the setup to add the wire to

 

wire

the new wire instance

 

Returns

returns TRUE, if the wire is added. Returns FALSE, if the setup contains a wire which is linked between the same src and dst machines (cycle check).


bt_setup_get_machine_by_id ()

BtMachine *
bt_setup_get_machine_by_id (const BtSetup * const self,
                            const gchar * const id);

Search the setup for a machine by the supplied id. The machine must have been added previously to this setup with bt_setup_add_machine().

Parameters

self

the setup to search for the machine

 

id

the identifier of the machine

 

Returns

BtMachine instance or NULL if not found. Unref the machine, when done with it.

[transfer full]


bt_setup_get_machine_by_type ()

BtMachine *
bt_setup_get_machine_by_type (const BtSetup * const self,
                              const GType type);

Search the setup for the first machine with the given type. The machine must have been added previously to this setup with bt_setup_add_machine().

Parameters

self

the setup to search for the machine

 

type

the gobject type (sink,processor,source)

 

Returns

BtMachine instance or NULL if not found. Unref the machine, when done with it.

[transfer full]


bt_setup_get_machines_by_type ()

GList *
bt_setup_get_machines_by_type (const BtSetup * const self,
                               const GType type);

Gathers all machines of the given type from the setup.

Parameters

self

the setup to search for the machine

 

type

the gobject type (sink,processor,source)

 

Returns

the list instance or NULL if not found. Free the list (and unref the machines), when done with it.

[element-type BuzztraxCore.Machine][transfer full]


bt_setup_get_unique_machine_id ()

gchar *
bt_setup_get_unique_machine_id (const BtSetup * const self,
                                const gchar * const base_name);

The function makes the supplied base_name unique in this setup by eventually adding a number postfix. This method should be used when adding new machines.

Parameters

self

the setup for which the name should be unique

 

base_name

the leading name part

 

Returns

the newly allocated unique name.

[transfer full]


bt_setup_get_wire_by_dst_machine ()

BtWire *
bt_setup_get_wire_by_dst_machine (const BtSetup * const self,
                                  const BtMachine * const dst);

Searches for the first wire in setup that uses the given BtMachine as a target. In other words - it returns the first wire that ends at the given BtMachine.

Parameters

self

the setup to search for the wire

 

dst

the machine that is at the dst end of the wire

 

Returns

the BtWire or NULL. Unref the wire, when done with it.

[transfer full]


bt_setup_get_wire_by_machines ()

BtWire *
bt_setup_get_wire_by_machines (const BtSetup * const self,
                               const BtMachine * const src,
                               const BtMachine * const dst);

Searches for a wire in setup that uses the given BtMachine instances as a source and dest.

Parameters

self

the setup to search for the wire

 

src

the machine that is at the src end of the wire

 

dst

the machine that is at the dst end of the wire

 

Returns

the BtWire or NULL. Unref the wire, when done with it.

[transfer full]


bt_setup_get_wire_by_src_machine ()

BtWire *
bt_setup_get_wire_by_src_machine (const BtSetup * const self,
                                  const BtMachine * const src);

Searches for the first wire in setup that uses the given BtMachine as a source. In other words - it returns the first wire that starts at the given BtMachine.

Parameters

self

the setup to search for the wire

 

src

the machine that is at the src end of the wire

 

Returns

the BtWire or NULL. Unref the wire, when done with it.

[transfer full]


bt_setup_get_wires_by_dst_machine ()

GList *
bt_setup_get_wires_by_dst_machine (const BtSetup * const self,
                                   const BtMachine * const dst);

Searches for all wires in setup that use the given BtMachine as a target.

Parameters

self

the setup to search for the wire

 

dst

the machine that is at the dst end of the wire

 

Returns

a GList with the BtWires or NULL. Free the list (and unref the wires), when done with it.

[element-type BuzztraxCore.Wire][transfer full]


bt_setup_get_wires_by_src_machine ()

GList *
bt_setup_get_wires_by_src_machine (const BtSetup * const self,
                                   const BtMachine * const src);

Searches for all wires in setup that use the given BtMachine as a source.

Parameters

self

the setup to search for the wire

 

src

the machine that is at the src end of the wire

 

Returns

a GList with the BtWires or NULL. Free the list (and unref the wires), when done with it.

[element-type BuzztraxCore.Wire][transfer full]


bt_setup_new ()

BtSetup *
bt_setup_new (const BtSong * const song);

Create a new instance

Parameters

song

the song the new instance belongs to

 

Returns

the new instance or NULL in case of an error


bt_setup_remember_missing_machine ()

void
bt_setup_remember_missing_machine (const BtSetup * const self,
                                   const gchar * const str);

Loaders can use this function to collect information about machines that failed to load. The front-end can access this later by reading BtSetup::missing-machines property.

Parameters

self

the setup

 

str

human readable description of the missing machine

 

bt_setup_remove_machine ()

void
bt_setup_remove_machine (const BtSetup * const self,
                         const BtMachine * const machine);

Let the setup know that the supplied machine is removed from the song.

Parameters

self

the setup to remove the machine from

 

machine

the machine instance to remove

 

bt_setup_remove_wire ()

void
bt_setup_remove_wire (const BtSetup * const self,
                      const BtWire * const wire);

Let the setup know that the supplied wire is removed from the song.

Parameters

self

the setup to remove the wire from

 

wire

the wire instance to remove

 

Types and Values

struct BtSetup

struct BtSetup;

virtual hardware setup (contains BtMachine and BtWire objects)

Property Details

The “machines” property

  “machines”                 gpointer

A copy of the list of machines.

Flags: Read


The “missing-machines” property

  “missing-machines”         gpointer

The list of missing machines, don't change.

Flags: Read


The “properties” property

  “properties”               gpointer

hashtable of setup properties.

Flags: Read


The “song” property

  “song”                     BtSong *

Set song object, the setup belongs to.

Flags: Read / Write / Construct Only


The “wires” property

  “wires”                    gpointer

A copy of the list of wires.

Flags: Read

Signal Details

The “machine-added” signal

void
user_function (BtSetup   *self,
               BtMachine *machine,
               gpointer   user_data)

A new machine item has been added to the setup.

Parameters

self

the setup object that emitted the signal

 

machine

the new machine

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “machine-removed” signal

void
user_function (BtSetup   *self,
               BtMachine *machine,
               gpointer   user_data)

A machine item has been removed from the setup.

Parameters

self

the setup object that emitted the signal

 

machine

the old machine

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “wire-added” signal

void
user_function (BtSetup *self,
               BtWire  *wire,
               gpointer user_data)

A new wire item has been added to the setup.

Parameters

self

the setup object that emitted the signal

 

wire

the new wire

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “wire-removed” signal

void
user_function (BtSetup *self,
               BtWire  *wire,
               gpointer user_data)

A wire item has been removed from the setup.

Parameters

self

the setup object that emitted the signal

 

wire

the old wire

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

buzztrax-0.10.2/docs/reference/bt-core/html/right.png0000644042355400116100000000040512640736116022777 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME!GIDAT8үa?MIdEr,-hAIl ry}sX6 !9#D r$-Br$G"$;WZ&!cq \`軀O=QoufIENDB`buzztrax-0.10.2/docs/reference/bt-core/html/BtPattern.html0000644042355400116100000023577312640736116023767 0ustar00ensoniceng00000000000000 BtPattern: Buzztrax Bt-Core Reference Manual

BtPattern

BtPattern — class for an event pattern of a BtMachine instance

Properties

BtPattern * copy-source Write / Construct Only
gulong length Read / Write / Construct
gulong voices Read

Signals

void group-changed No Hooks
void param-changed No Hooks
void pattern-changed No Hooks

Types and Values

struct BtPattern

Object Hierarchy

    GObject
    ╰── BtCmdPattern
        ╰── BtPattern

Implemented Interfaces

BtPattern implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

A pattern contains a grid of events. Events are parameter changes in BtMachine objects. The events are stored as GValues. Cells containing NULL have no event for the parameter at the time.

Patterns can have individual lengths. The length is measured in ticks. How much that is in e.g. milliseconds is determined by “bpm” and “tpb”.

A pattern might consist of several groups. These are mapped to the global parameters of a machine and the voice parameters for each machine voice (if any). The number of voices (tracks) is the same in all patterns of a machine. If the voices are changed on the machine patterns resize themselves.

The patterns are used in the BtSequence to form the score of a song.

Functions

bt_pattern_blend_columns ()

void
bt_pattern_blend_columns (const BtPattern * const self,
                          const gulong start_tick,
                          const gulong end_tick);

Fade values from start_tick to end_tick for all params.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.3


bt_pattern_clear_columns ()

void
bt_pattern_clear_columns (const BtPattern * const self,
                          const gulong start_tick,
                          const gulong end_tick);

Clear values from start_tick to end_tick for all params.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.6


bt_pattern_copy ()

BtPattern *
bt_pattern_copy (const BtPattern * const self);

Create a new instance as a copy of the given instance.

Parameters

self

the pattern to create a copy from

 

Returns

the new instance or NULL in case of an error.

[transfer full]


bt_pattern_delete_row ()

void
bt_pattern_delete_row (const BtPattern * const self,
                       const gulong tick);

Delete row for all parameters.

Parameters

self

the pattern

 

tick

the position to delete

 

Since: 0.3


bt_pattern_flip_columns ()

void
bt_pattern_flip_columns (const BtPattern * const self,
                         const gulong start_tick,
                         const gulong end_tick);

Flips values from start_tick to end_tick for all params up-side down.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.5


bt_pattern_get_global_event ()

gchar *
bt_pattern_get_global_event (const BtPattern * const self,
                             const gulong tick,
                             const gulong param);

Returns the string representation of the specified cell. Free it when done.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

param

the number of the global parameter starting with 0

 

Returns

a newly allocated string with the data or NULL on error


bt_pattern_get_global_event_data ()

GValue *
bt_pattern_get_global_event_data (const BtPattern * const self,
                                  const gulong tick,
                                  const gulong param);

Fetches a cell from the given location in the pattern. If there is no event there, then the GValue is uninitialized. Test with BT_IS_GVALUE(event).

Do not modify the contents!

Parameters

self

the pattern to search for the global param

 

tick

the tick (time) position starting with 0

 

param

the number of the global parameter starting with 0

 

Returns

the GValue or NULL if out of the pattern range


bt_pattern_get_global_group ()

BtValueGroup *
bt_pattern_get_global_group (const BtPattern * const self);

Get the BtValueGroup for global parameters.

Parameters

self

the pattern

 

Returns

the group owned by the pattern.

[transfer none]


bt_pattern_get_group_by_parameter_group ()

BtValueGroup *
bt_pattern_get_group_by_parameter_group
                               (const BtPattern * const self,
                                BtParameterGroup *param_group);

Get the BtValueGroup for the given param_group .

Parameters

self

the pattern

 

param_group

the BtParameterGroup to get the group for

 

Returns

the group owned by the pattern.

[transfer none]


bt_pattern_get_voice_event ()

gchar *
bt_pattern_get_voice_event (const BtPattern * const self,
                            const gulong tick,
                            const gulong voice,
                            const gulong param);

Returns the string representation of the specified cell. Free it when done.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

voice

the voice number starting with 0

 

param

the number of the voice parameter starting with 0

 

Returns

a newly allocated string with the data or NULL on error


bt_pattern_get_voice_event_data ()

GValue *
bt_pattern_get_voice_event_data (const BtPattern * const self,
                                 const gulong tick,
                                 const gulong voice,
                                 const gulong param);

Fetches a cell from the given location in the pattern. If there is no event there, then the GValue is uninitialized. Test with BT_IS_GVALUE(event).

Do not modify the contents!

Parameters

self

the pattern to search for the voice param

 

tick

the tick (time) position starting with 0

 

voice

the voice number starting with 0

 

param

the number of the voice parameter starting with 0

 

Returns

the GValue or NULL if out of the pattern range


bt_pattern_get_voice_group ()

BtValueGroup *
bt_pattern_get_voice_group (const BtPattern * const self,
                            const gulong voice);

Get the BtValueGroup for voice parameters.

Parameters

self

the pattern

 

voice

the voice to get the group for

 

Returns

the group owned by the pattern.

[transfer none]


bt_pattern_get_wire_event ()

gchar *
bt_pattern_get_wire_event (const BtPattern * const self,
                           const gulong tick,
                           const BtWire *wire,
                           const gulong param);

Returns the string representation of the specified cell. Free it when done.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

wire

the related wire object

 

param

the number of the wire parameter starting with 0

 

Returns

a newly allocated string with the data or NULL on error


bt_pattern_get_wire_event_data ()

GValue *
bt_pattern_get_wire_event_data (const BtPattern * const self,
                                const gulong tick,
                                const BtWire *wire,
                                const gulong param);

Fetches a cell from the given location in the pattern. If there is no event there, then the GValue is uninitialized. Test with BT_IS_GVALUE(event).

Do not modify the contents!

Parameters

self

the pattern to search for the wire param

 

tick

the tick (time) position starting with 0

 

wire

the related wire object

 

param

the number of the wire parameter starting with 0

 

Returns

the GValue or NULL if out of the pattern range


bt_pattern_get_wire_group ()

BtValueGroup *
bt_pattern_get_wire_group (const BtPattern * const self,
                           const BtWire *wire);

Get the BtValueGroup for wire parameters.

Parameters

self

the pattern

 

wire

the BtWire to get the group for

 

Returns

the group owned by the pattern.

[transfer none]


bt_pattern_insert_row ()

void
bt_pattern_insert_row (const BtPattern * const self,
                       const gulong tick);

Insert one empty row for all parameters.

Parameters

self

the pattern

 

tick

the position to insert at

 

Since: 0.3


bt_pattern_new ()

BtPattern *
bt_pattern_new (const BtSong * const song,
                const gchar * const name,
                const gulong length,
                const BtMachine * const machine);

Create a new instance. It will be automatically added to the machines pattern list.

Parameters

song

the song the new instance belongs to

 

name

the display name of the pattern

 

length

the number of ticks

 

machine

the machine the pattern belongs to

 

Returns

the new instance or NULL in case of an error


bt_pattern_randomize_columns ()

void
bt_pattern_randomize_columns (const BtPattern * const self,
                              const gulong start_tick,
                              const gulong end_tick);

Randomize values from start_tick to end_tick for all params.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.3


bt_pattern_range_randomize_columns ()

void
bt_pattern_range_randomize_columns (const BtPattern * const self,
                                    const gulong start_tick,
                                    const gulong end_tick);

Randomize values from start_tick to end_tick for all params using the first and last value as bounds for the random values.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.7


bt_pattern_serialize_columns ()

void
bt_pattern_serialize_columns (const BtPattern * const self,
                              const gulong start_tick,
                              const gulong end_tick,
                              GString *data);

Serializes values from start_tick to end_tick for all params into data .

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

data

the target

 

Since: 0.6


bt_pattern_set_global_event ()

gboolean
bt_pattern_set_global_event (const BtPattern * const self,
                             const gulong tick,
                             const gulong param,
                             const gchar * const value);

Stores the supplied value into the specified pattern cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

param

the number of the global parameter starting with 0

 

value

the string representation of the value to store

 

Returns

TRUE for success


bt_pattern_set_voice_event ()

gboolean
bt_pattern_set_voice_event (const BtPattern * const self,
                            const gulong tick,
                            const gulong voice,
                            const gulong param,
                            const gchar * const value);

Stores the supplied value into the specified pattern cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

voice

the voice number starting with 0

 

param

the number of the voice parameter starting with 0

 

value

the string representation of the value to store

 

Returns

TRUE for success


bt_pattern_set_wire_event ()

gboolean
bt_pattern_set_wire_event (const BtPattern * const self,
                           const gulong tick,
                           const BtWire *wire,
                           const gulong param,
                           const gchar * const value);

Stores the supplied value into the specified pattern cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

wire

the related wire object

 

param

the number of the wire parameter starting with 0

 

value

the string representation of the value to store

 

Returns

TRUE for success


bt_pattern_test_global_event ()

gboolean
bt_pattern_test_global_event (const BtPattern * const self,
                              const gulong tick,
                              const gulong param);

Tests if there is an event in the specified cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

param

the number of the global parameter starting with 0

 

Returns

TRUE if there is an event


bt_pattern_test_tick ()

gboolean
bt_pattern_test_tick (const BtPattern * const self,
                      const gulong tick);

Check if there are any event in the given pattern-row.

Parameters

self

the pattern to check

 

tick

the tick index in the pattern

 

Returns

TRUE is there are events, FALSE otherwise


bt_pattern_test_voice_event ()

gboolean
bt_pattern_test_voice_event (const BtPattern * const self,
                             const gulong tick,
                             const gulong voice,
                             const gulong param);

Tests if there is an event in the specified cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

voice

the voice number starting with 0

 

param

the number of the voice parameter starting with 0

 

Returns

TRUE if there is an event


bt_pattern_test_wire_event ()

gboolean
bt_pattern_test_wire_event (const BtPattern * const self,
                            const gulong tick,
                            const BtWire *wire,
                            const gulong param);

Tests if there is an event in the specified cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

wire

the related wire object

 

param

the number of the wire parameter starting with 0

 

Returns

TRUE if there is an event

Types and Values

struct BtPattern

struct BtPattern;

Holds a sequence of events for a BtMachine.

Property Details

The “copy-source” property

  “copy-source”              BtPattern *

pattern to copy data from.

Flags: Write / Construct Only


The “length” property

  “length”                   gulong

length of the pattern in ticks.

Flags: Read / Write / Construct


The “voices” property

  “voices”                   gulong

number of voices in the pattern.

Flags: Read

Signal Details

The “group-changed” signal

void
user_function (BtPattern        *self,
               BtParameterGroup *param_group,
               gboolean          intermediate,
               gpointer          user_data)

Signals that a group of this pattern has been changed (more than in one place). When doing e.g. line inserts, one will receive two updates, one before and one after. The first will have intermediate =TRUE. Applications can use that to defer change-consolidation.

Parameters

self

the pattern object that emitted the signal

 

param_group

the parameter group

 

intermediate

flag that is TRUE to signal that more change are coming

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “param-changed” signal

void
user_function (BtPattern        *self,
               BtParameterGroup *param_group,
               gulong            tick,
               gulong            param,
               gpointer          user_data)

Signals that a param of this pattern has been changed.

Parameters

self

the pattern object that emitted the signal

 

param_group

the parameter group

 

tick

the tick position inside the pattern

 

param

the parameter index

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “pattern-changed” signal

void
user_function (BtPattern *self,
               gboolean   intermediate,
               gpointer   user_data)

Signals that this pattern has been changed (more than in one place). When doing e.g. line inserts, one will receive two updates, one before and one after. The first will have intermediate =TRUE. Applications can use that to defer change-consolidation.

Parameters

self

the pattern object that emitted the signal

 

intermediate

flag that is TRUE to signal that more change are coming

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

buzztrax-0.10.2/docs/reference/bt-core/html/left.png0000644042355400116100000000040612640736116022615 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME,`m;IDAT8үa?DAPY\$[p+IIMlf('}Mpy{_ޥ}^q xZ <=Yj) <04\~+Pl#",Qϑp Iǐlsw>[/]_i03IENDB`buzztrax-0.10.2/docs/reference/bt-core/html/ch03.html0000644042355400116100000001235512640736116022606 0ustar00ensoniceng00000000000000 Song Class Reference: Buzztrax Bt-Core Reference Manual

Song Class Reference

BtCmdPattern — class for an command pattern of a BtMachine instance
BtMachine — base class for signal processing machines
BtParameterGroup — a group of parameter
BtPattern — class for an event pattern of a BtMachine instance
BtPatternControlSource — Custom controlsource based on repeated event blocks (BtPatterns).
BtProcessorMachine — class for signal processing machines with inputs and outputs
BtSequence — class for the event timeline of a BtSong instance
BtSetup — class with all machines and wires (BtMachine and BtWire) for a BtSong instance
BtSinkBin — bin to be used by BtSinkMachine
BtSinkMachine — class for signal processing machines with inputs only
BtSong — class of a song project object (contains BtSongInfo, BtSetup, BtSequence and BtWavetable)
BtSongInfo — class that keeps the meta-data for a BtSong instance
BtSourceMachine — class for signal processing machines with outputs only
BtValueGroup — a GValue array of parameter values
BtWave — one BtWavetable entry that keeps a list of BtWavelevels
BtWavelevel — a single part of a BtWave item
BtWavetable — the list of BtWave items in a BtSong
BtWire — class for a connection of two BtMachines
buzztrax-0.10.2/docs/reference/bt-core/html/buzztrax-core-libbtcore.html0000644042355400116100000023313512640736116026634 0ustar00ensoniceng00000000000000 libbtcore: Buzztrax Bt-Core Reference Manual

libbtcore

libbtcore — core library of the buzztrax application framework

Types and Values

extern const guint bt_major_version
extern const guint bt_micro_version
extern const guint bt_minor_version
#define G_OBJECT_REF_COUNT_FMT

Includes

#include <libbtcore/core.h>

Description

The library offers base objects such as BtApplication and BtSong.

Functions

BT_IS_GVALUE()

#define BT_IS_GVALUE(v) (G_VALUE_TYPE(v)!=G_TYPE_INVALID)

checks if the supplied gvalue is initialized (not all fields zero).

Parameters

v

pointer to a GValue

 

BT_IS_STRING()

#define BT_IS_STRING(a) (a && *a)

Checks if the supplied string pointer is not NULL and contains not just '\0'

Parameters

a

string pointer

 

bt_cpu_load_get_current ()

guint
bt_cpu_load_get_current (void);

Determines the current CPU load. Run this from a timeout handler (with e.g. a 1 second interval).

Returns

CPU usage as integer ranging from 0% to 100%


bt_init ()

void
bt_init (gint *argc,
         gchar **argv[]);

Initializes the Buzztrax Core library.

This function will terminate your program if it was unable to initialize the core for some reason. If you want your program to fall back, use bt_init_check() instead.

WARNING: This function does not work in the same way as corresponding functions in other glib-style libraries, such as gtk_init(). In particular, unknown command line options cause this function to abort program execution.

Parameters

argc

pointer to application's argc.

[inout][allow-none]

argv

pointer to application's argv.

[inout][array length=argc][allow-none]

bt_init_add_option_groups ()

void
bt_init_add_option_groups (GOptionContext * const ctx);

Adds all option groups to the main context the core library will pull in.

Parameters

ctx

main option context

 

bt_init_check ()

gboolean
bt_init_check (gint *argc,
               gchar **argv[],
               GError **err);

Initializes the Buzztrax core library.

This function will return FALSE if Buzztrax core could not be initialized for some reason. If you want your program to fail fatally, use bt_init() instead.

Parameters

argc

pointer to application's argc.

[inout][allow-none]

argv

pointer to application's argv.

[inout][array length=argc][allow-none]

err

pointer to a GError to which a message will be posted on error

 

Returns

TRUE if Buzztrax core could be initialized.


bt_init_get_option_group ()

GOptionGroup *
bt_init_get_option_group (void);

Returns a GOptionGroup with libbtcore's argument specifications. The group is set up to use standard GOption callbacks, so when using this group in combination with GOption parsing methods, all argument parsing and initialization is automated.

This function is useful if you want to integrate libbtcore with other libraries that use GOption (see g_option_context_add_group() ).

[skip]

Returns

a pointer to a GOption group. Should be dereferenced after use.

[transfer full]


bt_deinit ()

void
bt_deinit (void);

It is normally not needed to call this function in a normal application as the resources will automatically be freed when the program terminates. This function is therefore mostly used by testsuites and other memory profiling tools.


return_if_disposed

#define return_if_disposed() if(self->priv->dispose_has_run) return

Checks self->priv->dispose_has_run and if TRUE returns. This macro is handy to use at the start of all class routines such as GObjectClass.get_property(), GObjectClass.set_property(), GObjectClass.dispose().


return_val_if_disposed()

#define return_val_if_disposed(a) if(self->priv->dispose_has_run) return(a)

Checks self->priv->dispose_has_run and if TRUE returns with the supplied arg a . This macro is handy to use at the start of e.g. idle handlers.

Parameters

a

return value

 

safe_string()

#define safe_string(a) ((gchar *)(a)?(gchar *)(a):"")

Pass the supplied string through or return an empty string when it is NULL.

Parameters

a

string pointer

 

Returns

the given string or an empty string in the case of a NULL argument


G_OBJECT_REF_COUNT()

#define G_OBJECT_REF_COUNT(obj) ((obj)?((G_OBJECT(obj))->ref_count):0)

Read the objects reference counter. Implemented as a macro, so don't use expressions for obj .

Parameters

obj

the object (may be NULL)

 

Returns

the reference counter.


G_OBJECT_LOG_REF_COUNT()

#define             G_OBJECT_LOG_REF_COUNT(o)

Logs an object pointer together with its refcount value and the floating flag. Use with G_OBJECT_REF_COUNT_FMT.

Parameters

o

the object (may be NULL)

 

bt_g_type_get_base_type ()

GType
bt_g_type_get_base_type (const GType type);

Call g_type_parent() as long as it returns a parent.

Parameters

type

a GType

 

Returns

the super parent type, aka base type.


bt_g_object_idle_add ()

guint
bt_g_object_idle_add (GObject *obj,
                      gint pri,
                      GSourceFunc func);

A g_idle_add_full() variant, that passes obj as user_data and detaches the handler when obj gets destroyed.

Parameters

obj

the old GObject

 

pri

the priority of the idle source.

 

func

the callback.

[scope async]

Returns

the handler id


bt_g_signal_connect ()

gulong
bt_g_signal_connect (gpointer instance,
                     const gchar *detailed_signal,
                     GCallback c_handler,
                     gpointer data);

Like g_signal_connect(), but checks first if the handler is already connected.

Parameters

instance

the instance to connect to.

[type GObject.Object]

detailed_signal

a string of the form "signal-name::detail".

 

c_handler

the GCallback to connect.

[scope async]

data

data to pass to c_handler calls.

 

Returns

the handler id


g_object_try_ref()

#define             g_object_try_ref(obj)

If the supplied object is not NULL then reference it via g_object_ref().

Parameters

obj

the object to reference

 

Returns

the referenced object or NULL


g_object_try_unref()

#define             g_object_try_unref(obj)

If the supplied object is not NULL then release the reference via g_object_unref().

Parameters

obj

the object to release the reference

 

g_object_try_weak_ref()

#define             g_object_try_weak_ref(obj)

If the supplied object is not NULL then reference it via g_object_add_weak_pointer().

Parameters

obj

the object to reference

 

g_object_try_weak_unref()

#define             g_object_try_weak_unref(obj)

If the supplied object is not NULL then release the reference via g_object_remove_weak_pointer().

Parameters

obj

the object to release the reference

 

bt_bin_activate_tee_chain ()

gboolean
bt_bin_activate_tee_chain (GstBin *bin,
                           GstElement *tee,
                           GList *elements,
                           gboolean is_playing);

Add the elements to the bin and link them. Handle pad blocking in playing mode.

Return: TRUE for success

Parameters

bin

the bin

 

tee

the tee to connect the chain to

 

elements

the list of elements to activate.

[element-type Gst.Element]

is_playing

whether the pipeline is streaming data

 

bt_bin_deactivate_tee_chain ()

gboolean
bt_bin_deactivate_tee_chain (GstBin *bin,
                             GstElement *tee,
                             GList *elements,
                             gboolean is_playing);

Add the elements to the bin and link them. Handle pad blocking in playing mode.

Return: TRUE for success

Parameters

bin

the bin

 

tee

the tee to connect the chain to

 

elements

the list of elements to deactivate.

[element-type Gst.Element]

is_playing

wheter the pipeline is streaming data

 

bt_gst_analyzer_get_waittime ()

GstClockTime
bt_gst_analyzer_get_waittime (GstElement *analyzer,
                              const GstStructure *structure,
                              gboolean endtime_is_running_time);

Get the time to wait for audio corresponding to the analyzed data to be rendered.

Parameters

analyzer

the analyzer

 

structure

the message data

 

endtime_is_running_time

some elements (level) report endtime as running time and therefore need segment correction

 

Returns

the wait time in ns.


bt_gst_check_core_elements ()

GList *
bt_gst_check_core_elements (void);

Check if all core elements exist.

Returns

a list of elements that does not exist, NULL if all elements exist. The list is static, don't free or modify.

[element-type utf8][transfer none]


bt_gst_check_elements ()

GList *
bt_gst_check_elements (GList *list);

Check if the given elements exist.

Parameters

list

a GList with element names.

[element-type utf8]

Returns

a list of element-names which do not exist, NULL if all elements exist, g_list_free after use.

[element-type utf8][transfer full]


bt_gst_debug_pad_link_return ()

const gchar *
bt_gst_debug_pad_link_return (GstPadLinkReturn link_res,
                              GstPad *src_pad,
                              GstPad *sink_pad);

Format a nice debug message from failed pad links.

Parameters

link_res

pad link result

 

src_pad

the source pad

 

sink_pad

the sink pad

 

Returns

the message. The returned string has to be used before the can be called again, otherwise the previous reult will be overwritten.

[transfer none]


bt_gst_element_factory_get_pad_template ()

GstPadTemplate *
bt_gst_element_factory_get_pad_template
                               (GstElementFactory *factory,
                                const gchar *name);

Lookup a pad template by name.

Parameters

factory

element factory

 

name

name of the pad-template, e.g. "src" or "sink_u"

 

Returns

the pad template or NULL if not found.

[transfer full]


bt_gst_element_factory_can_sink_media_type ()

gboolean
bt_gst_element_factory_can_sink_media_type
                               (GstElementFactory *factory,
                                const gchar *name);

Check if the sink pads of the given factory are compatible with the given name . The name can e.g. be "audio/x-raw".

Parameters

factory

element factory to check

 

name

caps type name

 

Returns

TRUE if the pads are compatible.


bt_gst_registry_get_element_factories_matching_all_categories ()

GList *
bt_gst_registry_get_element_factories_matching_all_categories
                               (const gchar *class_filter);

Iterates over all available elements and filters by categories given in class_filter .

Parameters

class_filter

path for filtering (e.g. "Sink/Audio")

 

Returns

list of element factories, use gst_plugin_feature_list_free() after use.

[element-type Gst.PluginFeature][transfer full]

Since: 0.6


bt_gst_registry_get_element_names_matching_all_categories ()

GList *
bt_gst_registry_get_element_names_matching_all_categories
                               (const gchar *class_filter);

Iterates over all available elements and filters by categories given in class_filter .

Parameters

class_filter

path for filtering (e.g. "Sink/Audio")

 

Returns

list of read-only element names, g_list_free after use.

[element-type utf8][transfer container]


bt_gst_try_element ()

gboolean
bt_gst_try_element (GstElementFactory *factory,
                    const gchar *format);

Create an instance of the element and try to set it to GST_STATE_READY.

Parameters

factory

plugin feature to try

 

format

required media format

 

Returns

TRUE, if the element is usable


bt_gst_level_message_get_aggregated_field ()

gdouble
bt_gst_level_message_get_aggregated_field
                               (const GstStructure *structure,
                                const gchar *field_name,
                                gdouble default_value);

Aggregate the levels per channel and return the averaged level.

Parameters

structure

the message structure

 

field_name

the field, such as 'decay' or 'peak'

 

default_value

a default, in the case of inf/nan levels

 

Returns

the average level field for all channels


bt_str_format_double ()

const gchar *
bt_str_format_double (const gdouble val);

Convenience methods, that formats a value to be serialized as a string.

Parameters

val

a value

 

Returns

a reference to static memory containing the formatted value.

[transfer none]


bt_str_format_enum ()

const gchar *
bt_str_format_enum (GType enum_type,
                    gint value);

Convenience methods, that formats a value to be serialized as a string.

Parameters

enum_type

the GType for the enum

 

value

the integer value for the enum

 

Returns

a reference to static memory containing the formatted value.

[transfer none]


bt_str_format_long ()

const gchar *
bt_str_format_long (const glong val);

Convenience methods, that formats a value to be serialized as a string.

Parameters

val

a value

 

Returns

a reference to static memory containing the formatted value.

[transfer none]


bt_str_format_uchar ()

const gchar *
bt_str_format_uchar (const guchar val);

Convenience methods, that formats a value to be serialized as a string.

Parameters

val

a value

 

Returns

a reference to static memory containing the formatted value.

[transfer none]


bt_str_format_ulong ()

const gchar *
bt_str_format_ulong (const gulong val);

Convenience methods, that formats a value to be serialized as a string.

Parameters

val

a value

 

Returns

a reference to static memory containing the formatted value.

[transfer none]


bt_str_parse_enum ()

gint
bt_str_parse_enum (GType enum_type,
                   const gchar *str);

Convenience methods, that parses a enum value nick and to get the corresponding integer value.

Parameters

enum_type

the GType for the enum

 

str

the enum value name

 

Returns

the integer value for the enum, or -1 for invalid strings.


bt_str_format_gvalue ()

gchar *
bt_str_format_gvalue (GValue * const gvalue);

Returns the string representation of the given gvalue . Free it when done.

Parameters

gvalue

the event cell

 

Returns

a newly allocated string with the data or NULL on error.

[transfer full]


bt_str_parse_gvalue ()

gboolean
bt_str_parse_gvalue (GValue * const gvalue,
                     const gchar * const svalue);

Stores the supplied value into the given gvalue .

Parameters

gvalue

a GValue

 

svalue

the string representation of the value to store

 

Returns

TRUE for success

Types and Values

bt_major_version

extern const guint bt_major_version;

buzztrax version stamp, major part


bt_micro_version

extern const guint bt_micro_version;

buzztrax version stamp, micro part


bt_minor_version

extern const guint bt_minor_version;

buzztrax version stamp, minor part


G_OBJECT_REF_COUNT_FMT

#define G_OBJECT_REF_COUNT_FMT "p,ref_ct=%d,floating=%d"

Printf format string for G_OBJECT_LOG_REF_COUNT.

buzztrax-0.10.2/docs/reference/bt-core/html/style.css0000644042355400116100000002115412640736116023032 0ustar00ensoniceng00000000000000body { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.informaltable table { border-collapse: separate; border-spacing: 1em 0.3em; border: none; } div.informaltable table td, div.informaltable table th { vertical-align: top; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } /* code listings */ .listing_code .programlisting .normal, .listing_code .programlisting .normal a, .listing_code .programlisting .number, .listing_code .programlisting .cbracket, .listing_code .programlisting .symbol { color: #555753; } .listing_code .programlisting .comment, .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ .listing_code .programlisting .function, .listing_code .programlisting .function a, .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ .listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ .listing_code .programlisting .keyword, .listing_code .programlisting .usertype, .listing_code .programlisting .type, .listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } buzztrax-0.10.2/docs/reference/bt-core/html/BtSourceMachine.html0000644042355400116100000002474012640736116025065 0ustar00ensoniceng00000000000000 BtSourceMachine: Buzztrax Bt-Core Reference Manual

BtSourceMachine

BtSourceMachine — class for signal processing machines with outputs only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBin
                    ╰── BtMachine
                        ╰── BtSourceMachine

Implemented Interfaces

BtSourceMachine implements GstChildProxy and BtPersistence.

Includes

#include <libbtcore/core.h>

Description

Sources are machines that generate audio.

Functions

bt_source_machine_new ()

BtSourceMachine *
bt_source_machine_new (const BtSong * const song,
                       const gchar * const id,
                       const gchar * const plugin_name,
                       const glong voices,
                       GError **err);

Create a new instance The machine is automaticly added to the setup from the given song object. You don't need to add the machine with

bt_setup_add_machine(setup,BT_MACHINE(machine));.

Parameters

song

the song the new instance belongs to

 

id

the id, we can use to lookup the machine

 

plugin_name

the name of the gst-plugin the machine is using

 

voices

the number of voices the machine should initially have

 

err

inform about failed instance creation

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtSourceMachine

struct BtSourceMachine;

Sub-class of a BtMachine that implements a signal generator (a machine with outputs only).


enum BtSourceMachinePatternIndex

Use this with bt_machine_get_pattern_by_index() to get the command patterns.

Members

BT_SOURCE_MACHINE_PATTERN_INDEX_BREAK

stop the pattern

 

BT_SOURCE_MACHINE_PATTERN_INDEX_MUTE

mute the machine

 

BT_SOURCE_MACHINE_PATTERN_INDEX_SOLO

play only this machine

 

BT_SOURCE_MACHINE_PATTERN_INDEX_OFFSET

offset for real pattern ids

 
buzztrax-0.10.2/docs/reference/bt-core/html/BtValueGroup.html0000644042355400116100000020706212640736116024431 0ustar00ensoniceng00000000000000 BtValueGroup: Buzztrax Bt-Core Reference Manual

BtValueGroup

BtValueGroup — a GValue array of parameter values

Properties

gulong length Read / Write / Construct
BtParameterGroup * parameter-group Read / Write / Construct Only

Signals

void group-changed No Hooks
void param-changed No Hooks

Types and Values

struct BtValueGroup

Object Hierarchy

    GObject
    ╰── BtValueGroup

Includes

#include <libbtcore/core.h>

Description

A group of GValues, such as used in patterns. The class provides a variety of methods to manipulate the data fields.

The value group maintains two blocks of data values. One for validated fields and one for plain fields. This allows step wise entry of data (multi column entry of sparse enums). The validated cells are only set as the plain value becomes valid. Invalid values are not copied nor are they stored in the song.

Functions

bt_value_group_blend_column ()

void
bt_value_group_blend_column (const BtValueGroup * const self,
                             const gulong start_tick,
                             const gulong end_tick,
                             const gulong param);

Fade values from start_tick to end_tick for param .

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

param

the parameter

 

Since: 0.7


bt_value_group_blend_columns ()

void
bt_value_group_blend_columns (const BtValueGroup * const self,
                              const gulong start_tick,
                              const gulong end_tick);

Fade values from start_tick to end_tick for all params.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.7


bt_value_group_copy ()

BtValueGroup *
bt_value_group_copy (const BtValueGroup * const self);

Create a new instance as a copy of the given instance.

Parameters

self

the value-group to create a copy from

 

Returns

the new instance or NULL in case of an error.

[transfer full]

Since: 0.7


bt_value_group_clear_column ()

void
bt_value_group_clear_column (const BtValueGroup * const self,
                             const gulong start_tick,
                             const gulong end_tick,
                             const gulong param);

Clears values from start_tick to end_tick for param .

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

param

the parameter

 

Since: 0.7


bt_value_group_clear_columns ()

void
bt_value_group_clear_columns (const BtValueGroup * const self,
                              const gulong start_tick,
                              const gulong end_tick);

Clear values from start_tick to end_tick for all params.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.7


bt_value_group_delete_full_row ()

void
bt_value_group_delete_full_row (const BtValueGroup * const self,
                                const gulong tick);

Delete row for all parameters.

Parameters

self

the pattern

 

tick

the position to delete

 

Since: 0.7


bt_value_group_delete_row ()

void
bt_value_group_delete_row (const BtValueGroup * const self,
                           const gulong tick,
                           const gulong param);

Delete row for given param .

Parameters

self

the pattern

 

tick

the position to delete

 

param

the parameter

 

Since: 0.7


bt_value_group_deserialize_column ()

gboolean
bt_value_group_deserialize_column (const BtValueGroup * const self,
                                   const gulong start_tick,
                                   const gulong end_tick,
                                   const gulong param,
                                   const gchar *data);

Deserializes values to start_tick to end_tick for param from data .

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

param

the parameter

 

data

the source data

 

Returns

TRUE for success, FALSE e.g. to indicate incompatible GType values for the column specified by param and the data .

Since: 0.7


bt_value_group_flip_column ()

void
bt_value_group_flip_column (const BtValueGroup * const self,
                            const gulong start_tick,
                            const gulong end_tick,
                            const gulong param);

Flips values from start_tick to end_tick for param up-side down.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

param

the parameter

 

Since: 0.7


bt_value_group_flip_columns ()

void
bt_value_group_flip_columns (const BtValueGroup * const self,
                             const gulong start_tick,
                             const gulong end_tick);

Flips values from start_tick to end_tick for all params up-side down.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.7


bt_value_group_get_event ()

gchar *
bt_value_group_get_event (const BtValueGroup * const self,
                          const gulong tick,
                          const gulong param);

Returns the string representation of the specified cell. Free it when done.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

param

the number of the parameter starting with 0

 

Returns

a newly allocated string with the data or NULL on error

Since: 0.7


bt_value_group_get_event_data ()

GValue *
bt_value_group_get_event_data (const BtValueGroup * const self,
                               const gulong tick,
                               const gulong param);

Fetches a cell from the given location in the pattern. If there is no event there, then the GValue is uninitialized. Test with BT_IS_GVALUE(event).

Parameters

self

the pattern to search for the param

 

tick

the tick (time) position starting with 0

 

param

the number of the parameter starting with 0

 

Returns

the GValue or NULL if out of the pattern range

Since: 0.7


bt_value_group_insert_full_row ()

void
bt_value_group_insert_full_row (const BtValueGroup * const self,
                                const gulong tick);

Insert one empty row for all parameters.

Parameters

self

the pattern

 

tick

the position to insert at

 

Since: 0.7


bt_value_group_insert_row ()

void
bt_value_group_insert_row (const BtValueGroup * const self,
                           const gulong tick,
                           const gulong param);

Insert one empty row for given param .

Parameters

self

the pattern

 

tick

the position to insert at

 

param

the parameter

 

Since: 0.7


bt_value_group_new ()

BtValueGroup *
bt_value_group_new (const BtParameterGroup * const param_group,
                    const gulong length);

Create a new instance.

Parameters

param_group

the parameter-group

 

length

the number of ticks

 

Returns

the new instance or NULL in case of an error.

[transfer full]

Since: 0.7


bt_value_group_randomize_column ()

void
bt_value_group_randomize_column (const BtValueGroup * const self,
                                 const gulong start_tick,
                                 const gulong end_tick,
                                 const gulong param);

Randomize values from start_tick to end_tick for param .

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

param

the parameter

 

Since: 0.7


bt_value_group_randomize_columns ()

void
bt_value_group_randomize_columns (const BtValueGroup * const self,
                                  const gulong start_tick,
                                  const gulong end_tick);

Randomize values from start_tick to end_tick for all params.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.7


bt_value_group_range_randomize_column ()

void
bt_value_group_range_randomize_column (const BtValueGroup * const self,
                                       const gulong start_tick,
                                       const gulong end_tick,
                                       const gulong param);

Randomize values from start_tick to end_tick for param using the first and last value as bounds for the random values.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

param

the parameter

 

Since: 0.7


bt_value_group_range_randomize_columns ()

void
bt_value_group_range_randomize_columns
                               (const BtValueGroup * const self,
                                const gulong start_tick,
                                const gulong end_tick);

Randomize values from start_tick to end_tick for all params using the first and last value as bounds for the random values.

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

Since: 0.7


bt_value_group_serialize_column ()

void
bt_value_group_serialize_column (const BtValueGroup * const self,
                                 const gulong start_tick,
                                 const gulong end_tick,
                                 const gulong param,
                                 GString *data);

Serializes values from start_tick to end_tick for param into data .

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

param

the parameter

 

data

the target

 

Since: 0.7


bt_value_group_serialize_columns ()

void
bt_value_group_serialize_columns (const BtValueGroup * const self,
                                  const gulong start_tick,
                                  const gulong end_tick,
                                  GString *data);

Serializes values from start_tick to end_tick for all params into data .

Parameters

self

the pattern

 

start_tick

the start position for the range

 

end_tick

the end position for the range

 

data

the target

 

Since: 0.7


bt_value_group_set_event ()

gboolean
bt_value_group_set_event (const BtValueGroup * const self,
                          const gulong tick,
                          const gulong param,
                          const gchar * const value);

Stores the supplied value into the specified pattern cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

param

the number of the parameter starting with 0

 

value

the string representation of the value to store

 

Returns

TRUE for success

Since: 0.7


bt_value_group_test_event ()

gboolean
bt_value_group_test_event (const BtValueGroup * const self,
                           const gulong tick,
                           const gulong param);

Tests if there is an event in the specified cell.

Parameters

self

the pattern the cell belongs to

 

tick

the tick (time) position starting with 0

 

param

the number of the parameter starting with 0

 

Returns

TRUE if there is an event

Since: 0.7


bt_value_group_test_tick ()

gboolean
bt_value_group_test_tick (const BtValueGroup * const self,
                          const gulong tick);

Check if there are any event in the given pattern-row.

Parameters

self

the pattern to check

 

tick

the tick index in the pattern

 

Returns

TRUE is there are events, FALSE otherwise

Since: 0.7

Types and Values

struct BtValueGroup

struct BtValueGroup;

A group of parameters, such as used in machines or wires.

Property Details

The “length” property

  “length”                   gulong

length of the pattern in ticks.

Flags: Read / Write / Construct


The “parameter-group” property

  “parameter-group”          BtParameterGroup *

Parameter group for the values.

Flags: Read / Write / Construct Only

Signal Details

The “group-changed” signal

void
user_function (BtValueGroup     *self,
               BtParameterGroup *param_group,
               gboolean          intermediate,
               gpointer          user_data)

Signals that this value-group has been changed (more than in one place). When doing e.g. line inserts, one will receive two updates, one before and one after. The first will have intermediate =TRUE. Applications can use that to defer change-consolidation.

Parameters

self

the value-group object that emitted the signal

 

param_group

the related BtParameterGroup

 

intermediate

flag that is TRUE to signal that more change are coming

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “param-changed” signal

void
user_function (BtValueGroup     *self,
               BtParameterGroup *param_group,
               gulong            tick,
               gulong            param,
               gpointer          user_data)

Signals that a param of this value-group has been changed.

Parameters

self

the value-group object that emitted the signal

 

param_group

the parameter group

 

tick

the tick position inside the pattern

 

param

the parameter index

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

buzztrax-0.10.2/docs/reference/bt-core/html/BtSongIONativeXML.html0000644042355400116100000001254112640736116025222 0ustar00ensoniceng00000000000000 BtSongIONativeXML: Buzztrax Bt-Core Reference Manual

BtSongIONativeXML

BtSongIONativeXML — class for song input and output in builtin native format

Types and Values

Object Hierarchy

    GObject
    ╰── BtSongIO
        ╰── BtSongIONative
            ╰── BtSongIONativeXML

Includes

#include <libbtcore/core.h>

Description

This internal BtSongIONative module implements loading and saving of an own xml format without externals.

Functions

Types and Values

struct BtSongIONativeXML

struct BtSongIONativeXML;

object for song input and output in native zip/xml format


struct BtSongIONativeXMLClass

struct BtSongIONativeXMLClass {
  const BtSongIONativeClass parent;
};

Class for song input and output in native zip/xml format

Members

const BtSongIONativeClass parent;

parent class type

 
buzztrax-0.10.2/docs/reference/bt-core/html/BtSettings.html0000644042355400116100000010456412640736116024143 0ustar00ensoniceng00000000000000 BtSettings: Buzztrax Bt-Core Reference Manual

BtSettings

BtSettings — class for buzztrax settings handling

Properties

gchar * audiosink Read / Write
gchar * audiosink-device Read / Write
guint channels Read / Write
gboolean coherence-upnp-active Read / Write
guint coherence-upnp-port Read / Write
gboolean compact-theme Read / Write
gboolean dark-theme Read / Write
gchar * grid-density Read / Write
gboolean ic-playback-active Read / Write
gchar * ic-playback-spec Read / Write
gboolean jack-transport-master Read / Write
gboolean jack-transport-slave Read / Write
guint latency Read / Write
gchar * missing-machines Read / Write
guint news-seen Read / Write
gchar * presented-tips Read / Write
gchar * record-folder Read / Write
gchar * sample-folder Read / Write
guint sample-rate Read / Write
gboolean show-tips Read / Write
gchar * song-folder Read / Write
gboolean statusbar-hide Read / Write
gchar * system-audiosink Read
gboolean tabs-hide Read / Write
gboolean toolbar-hide Read / Write
gchar * toolbar-style Read
gint window-height Read / Write
gint window-width Read / Write
gint window-xpos Read / Write
gint window-ypos Read / Write

Types and Values

struct BtSettings

Object Hierarchy

    GObject
    ╰── BtSettings

Includes

#include <libbtcore/core.h>

Description

Wraps the settings a GObject. Single settings are accessed via normal g_object_get() and g_object_set() calls. Changes in the settings will be notified to the application by the GObject::notify signal.

Functions

bt_settings_determine_audiosink_name ()

gboolean
bt_settings_determine_audiosink_name (const BtSettings * const self,
                                      gchar **element_name,
                                      gchar **device_name);

Check the settings for the configured audio sink. Pick a fallback if none has been chosen. Verify that the sink works.

Free the strings in the output variables, when done.

Parameters

self

the settings

 

element_name

out variable for the element name

 

device_name

out variable for the device property, if any

 

Returns

TRUE if a audiosink has been found.


bt_settings_parse_ic_playback_spec ()

GHashTable *
bt_settings_parse_ic_playback_spec (const gchar *spec);

Parses the string.

Parameters

spec

the spec string from the settings

 

Returns

a hashtable with strings as keys and values.

[element-type utf8 utf8][transfer full]


bt_settings_format_ic_playback_spec ()

gchar *
bt_settings_format_ic_playback_spec (GHashTable *ht);

Format the settings as a string.

Parameters

ht

the ht settings

 

Returns

a string for storage.


bt_settings_make ()

BtSettings *
bt_settings_make (void);

Create a new instance. The type of the settings depends on the subsystem found during configuration run.

Settings are implemented as a singleton. Thus the first invocation will create the object and further calls will just give back a reference.

Returns

the instance or NULL in case of an error.

[transfer full]

Types and Values

struct BtSettings

struct BtSettings;

base object for a buzztrax based settings

Property Details

The “audiosink” property

  “audiosink”                gchar *

audio output gstreamer element.

Flags: Read / Write

Default value: NULL


The “audiosink-device” property

  “audiosink-device”         gchar *

audio output device name.

Flags: Read / Write

Default value: NULL


The “channels” property

  “channels”                 guint

number of audio output channels.

Flags: Read / Write

Allowed values: [1,2]

Default value: 2


The “coherence-upnp-active” property

  “coherence-upnp-active”    gboolean

activate Coherence UPnP based playback controller.

Flags: Read / Write

Default value: FALSE


The “coherence-upnp-port” property

  “coherence-upnp-port”      guint

the port number for the communication with the coherence backend.

Flags: Read / Write

Default value: 7654


The “compact-theme” property

  “compact-theme”            gboolean

use dense theme variant for small screens.

Flags: Read / Write

Default value: FALSE


The “dark-theme” property

  “dark-theme”               gboolean

use dark theme variant.

Flags: Read / Write

Default value: FALSE


The “grid-density” property

  “grid-density”             gchar *

machine view grid detail level.

Flags: Read / Write

Default value: "low"


The “ic-playback-active” property

  “ic-playback-active”       gboolean

activate interaction controller library based playback controller.

Flags: Read / Write

Default value: FALSE


The “ic-playback-spec” property

  “ic-playback-spec”         gchar *

list of device and control names.

Flags: Read / Write

Default value: NULL


The “jack-transport-master” property

  “jack-transport-master”    gboolean

sync other jack clients to buzztrax playback state.

Flags: Read / Write

Default value: FALSE


The “jack-transport-slave” property

  “jack-transport-slave”     gboolean

sync buzztrax to the playback state other jack clients.

Flags: Read / Write

Default value: FALSE


The “latency” property

  “latency”                  guint

target audio latency in ms.

Flags: Read / Write

Allowed values: [1,200]

Default value: 30


The “missing-machines” property

  “missing-machines”         gchar *

list of tip-numbers that were shown already.

Flags: Read / Write

Default value: NULL


The “news-seen” property

  “news-seen”                guint

version number for that the user has seen the news.

Flags: Read / Write

Default value: 0


The “presented-tips” property

  “presented-tips”           gchar *

list of missing machines to ignore.

Flags: Read / Write

Default value: NULL


The “record-folder” property

  “record-folder”            gchar *

default directory for recordings.

Flags: Read / Write

Default value: "/home/ensonic"


The “sample-folder” property

  “sample-folder”            gchar *

default directory for sample-waveforms.

Flags: Read / Write

Default value: "/home/ensonic"


The “sample-rate” property

  “sample-rate”              guint

audio output sample-rate.

Flags: Read / Write

Allowed values: [1,96000]

Default value: 44100


The “show-tips” property

  “show-tips”                gboolean

show tips on startup.

Flags: Read / Write

Default value: TRUE


The “song-folder” property

  “song-folder”              gchar *

default directory for songs.

Flags: Read / Write

Default value: "/home/ensonic"


The “statusbar-hide” property

  “statusbar-hide”           gboolean

hide bottom statusbar.

Flags: Read / Write

Default value: FALSE


The “system-audiosink” property

  “system-audiosink”         gchar *

system audio output gstreamer element.

Flags: Read

Default value: NULL


The “tabs-hide” property

  “tabs-hide”                gboolean

hide main page tabs.

Flags: Read / Write

Default value: FALSE


The “toolbar-hide” property

  “toolbar-hide”             gboolean

hide main toolbar.

Flags: Read / Write

Default value: FALSE


The “toolbar-style” property

  “toolbar-style”            gchar *

system tolbar style.

Flags: Read

Default value: "both"


The “window-height” property

  “window-height”            gint

last application window height.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “window-width” property

  “window-width”             gint

last application window width.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “window-xpos” property

  “window-xpos”              gint

last application window x-position.

Flags: Read / Write

Default value: 0


The “window-ypos” property

  “window-ypos”              gint

last application window y-position.

Flags: Read / Write

Default value: 0

buzztrax-0.10.2/docs/reference/bt-core/html/index.html0000644042355400116100000002030012640736116023145 0ustar00ensoniceng00000000000000 Buzztrax Bt-Core Reference Manual: Buzztrax Bt-Core Reference Manual

for Buzztrax 0.10.2. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-core/.


Introduction
I. Overview
Conventions
II. API Reference
Core Class Reference
libbtcore — core library of the buzztrax application framework
BtApplication — base class for a buzztrax based application
BtAudioSession — bin to be used by BtSinkMachine
BtSettings — class for buzztrax settings handling
BtChildProxy — Interface for multi child elements.
BtPersistence — object persistence interface
Song Class Reference
BtCmdPattern — class for an command pattern of a BtMachine instance
BtMachine — base class for signal processing machines
BtParameterGroup — a group of parameter
BtPattern — class for an event pattern of a BtMachine instance
BtPatternControlSource — Custom controlsource based on repeated event blocks (BtPatterns).
BtProcessorMachine — class for signal processing machines with inputs and outputs
BtSequence — class for the event timeline of a BtSong instance
BtSetup — class with all machines and wires (BtMachine and BtWire) for a BtSong instance
BtSinkBin — bin to be used by BtSinkMachine
BtSinkMachine — class for signal processing machines with inputs only
BtSong — class of a song project object (contains BtSongInfo, BtSetup, BtSequence and BtWavetable)
BtSongInfo — class that keeps the meta-data for a BtSong instance
BtSourceMachine — class for signal processing machines with outputs only
BtValueGroup — a GValue array of parameter values
BtWave — one BtWavetable entry that keeps a list of BtWavelevels
BtWavelevel — a single part of a BtWave item
BtWavetable — the list of BtWave items in a BtSong
BtWire — class for a connection of two BtMachines
Song IO Reference
BtSongIO — base class for song input and output
BtSongIONative — class for song input and output in builtin native format
BtSongIONativeBZT — class for song input and output in builtin native format
BtSongIONativeXML — class for song input and output in builtin native format
BtSongIOBuzz — class for song input in buzz bmx and bmw format
III. Appendix
Object Hierarchy
API Index
Index of deprecated API
Index of new API in 0.3
Index of new API in 0.5
Index of new API in 0.6
Index of new API in 0.7
Annotation Glossary
buzztrax-0.10.2/docs/reference/bt-core/html/BtProcessorMachine.html0000644042355400116100000002523612640736116025605 0ustar00ensoniceng00000000000000 BtProcessorMachine: Buzztrax Bt-Core Reference Manual

BtProcessorMachine

BtProcessorMachine — class for signal processing machines with inputs and outputs

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBin
                    ╰── BtMachine
                        ╰── BtProcessorMachine

Implemented Interfaces

BtProcessorMachine implements GstChildProxy and BtPersistence.

Includes

#include <libbtcore/core.h>

Description

Processors are machines that alter incomming audio.

Functions

bt_processor_machine_new ()

BtProcessorMachine *
bt_processor_machine_new (const BtSong * const song,
                          const gchar * const id,
                          const gchar * const plugin_name,
                          const glong voices,
                          GError **err);

Create a new instance. The machine is automaticly added to the setup of the given song. You don't need to call bt_setup_add_machine(setup,BT_MACHINE(machine));.

Parameters

song

the song the new instance belongs to

 

id

the id, we can use to lookup the machine

 

plugin_name

the name of the gst-plugin the machine is using

 

voices

the number of voices the machine should initially have

 

err

inform about failed instance creation

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtProcessorMachine

struct BtProcessorMachine;

Sub-class of a BtMachine that implements an effect-processor (a machine with in and outputs).


enum BtProcessorMachinePatternIndex

Use this with bt_machine_get_pattern_by_index() to get the command patterns.

Members

BT_PROCESSOR_MACHINE_PATTERN_INDEX_BREAK

stop the pattern

 

BT_PROCESSOR_MACHINE_PATTERN_INDEX_MUTE

mute the machine

 

BT_PROCESSOR_MACHINE_PATTERN_INDEX_BYPASS

bypass the machine

 

BT_PROCESSOR_MACHINE_PATTERN_INDEX_OFFSET

offset for real pattern ids

 
buzztrax-0.10.2/docs/reference/bt-core/html/objecttree.html0000644042355400116100000001717012640736116024177 0ustar00ensoniceng00000000000000 Object Hierarchy: Buzztrax Bt-Core Reference Manual

Object Hierarchy

    GObject
    ├── GInitiallyUnowned
       ╰── GstObject
           ├── GstElement
              ╰── GstBin
                  ├── BtMachine
                     ├── BtProcessorMachine
                     ├── BtSinkMachine
                     ╰── BtSourceMachine
                  ├── BtSinkBin
                  ╰── BtWire
           ╰── GstControlBinding
               ╰── BtPatternControlSource
    ├── BtApplication
    ├── BtAudioSession
    ├── BtCmdPattern
       ╰── BtPattern
    ├── BtParameterGroup
    ├── BtSequence
    ├── BtSettings
    ├── BtSetup
    ├── BtSong
    ├── BtSongInfo
    ├── BtSongIO
       ├── BtSongIOBuzz
       ╰── BtSongIONative
           ├── BtSongIONativeBZT
           ╰── BtSongIONativeXML
    ├── BtValueGroup
    ├── BtWave
    ├── BtWavelevel
    ╰── BtWavetable
    GInterface
    ├── BtChildProxy
    ╰── BtPersistence
    GEnum
    ├── BtSinkBinMode
    ├── BtSinkBinRecordFormat
    ├── BtPatternCmd
    ├── BtMachineState
    ╰── BtWaveLoopMode
buzztrax-0.10.2/docs/reference/bt-core/html/ch04.html0000644042355400116100000000500612640736116022602 0ustar00ensoniceng00000000000000 Song IO Reference: Buzztrax Bt-Core Reference Manual

Song IO Reference

BtSongIO — base class for song input and output
BtSongIONative — class for song input and output in builtin native format
BtSongIONativeBZT — class for song input and output in builtin native format
BtSongIONativeXML — class for song input and output in builtin native format
BtSongIOBuzz — class for song input in buzz bmx and bmw format
buzztrax-0.10.2/docs/reference/bt-core/html/BtMachine.html0000644042355400116100000024743112640736116023710 0ustar00ensoniceng00000000000000 BtMachine: Buzztrax Bt-Core Reference Manual

BtMachine

BtMachine — base class for signal processing machines

Properties

GstElement * adder-convert Read
gpointer construction-error Read / Write / Construct Only
gulong global-params Read
gchar * id Read / Write / Construct
GstElement * input-gain Read
GstElement * input-post-level Read
GstElement * input-pre-level Read
GstElement * machine Read
GstElement * output-gain Read
GstElement * output-post-level Read
GstElement * output-pre-level Read
gpointer patterns Read
gchar * plugin-name Read / Write / Construct
gulong prefs-params Read
gchar * pretty-name Read
gpointer properties Read
BtSong * song Read / Write / Construct Only
BtMachineState state Read / Write
gulong voice-params Read
gulong voices Read / Write / Construct

Signals

void pattern-added No Hooks
void pattern-removed No Hooks

Types and Values

Object Hierarchy

    GEnum
    ╰── BtMachineState
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBin
                    ╰── BtMachine
                        ├── BtProcessorMachine
                        ├── BtSinkMachine
                        ╰── BtSourceMachine

Implemented Interfaces

BtMachine implements GstChildProxy and BtPersistence.

Includes

#include <libbtcore/core.h>

Description

Machines are pieces in a BtSong that generate, process or play media.

The machine class takes care of inserting additional low-level elemnts to do signal conversion etc.. Further it provides general facillities like input/output level monitoring. The resulting machine instance is a box containing several processing elements.

A machine can have several GstElements:

adder:

mixes all incoming signals

input volume:

gain for incoming signals

input pre/post-gain level:

level meter for incoming signal

machine:

the real machine

output volume:

gain for outgoing signal

output pre/post-gain level:

level meter for outgoing signal

spreader:

distibutes signal to outgoing connections

The adder and spreader elements are activated depending on element type. The volume controls and level meters are activated as requested via the API. It is recommended to only activate them, when needed. The instances are cached after deactivation (so that they can be easily reactivated) and destroyed with the BtMachine object.

Furthermore the machine handles a list of BtCmdPattern instances. These contain event patterns that form a BtSequence.

Functions

bt_machine_activate_adder ()

gboolean
bt_machine_activate_adder (BtMachine * const self);

Machines use an adder to allow multiple incoming wires. This method is used by the BtWire class to activate the adder when needed.

Parameters

self

the machine to activate the adder in

 

Returns

TRUE for success


bt_machine_activate_spreader ()

gboolean
bt_machine_activate_spreader (BtMachine * const self);

Machines use a spreader to allow multiple outgoing wires. This method is used by the BtWire class to activate the spreader when needed.

Parameters

self

the machine to activate the spreader in

 

Returns

TRUE for success


bt_machine_add_pattern ()

void
bt_machine_add_pattern (const BtMachine *self,
                        const BtCmdPattern *pattern);

Add the supplied pattern to the machine. This is automatically done by bt_pattern_new().

Parameters

self

the machine to add the pattern to

 

pattern

the new pattern instance

 

bt_machine_bind_parameter_control ()

void
bt_machine_bind_parameter_control (const BtMachine * const self,
                                   GstObject *object,
                                   const gchar *property_name,
                                   BtIcControl *control,
                                   BtParameterGroup *pg);

Connect the interaction control object to the give parameter. Changes of the control-value are mapped into a change of the parameter.

Parameters

self

machine

 

object

child object (global or voice child)

 

property_name

name of the parameter

 

control

interaction control object

 

pg

the parameter group of the property

 

bt_machine_bind_poly_parameter_control ()

void
bt_machine_bind_poly_parameter_control
                               (const BtMachine * const self,
                                const gchar *property_name,
                                BtIcControl *control,
                                BtParameterGroup *pg);

Connect the interaction control object to the give parameter. Changes of the control-value are mapped into a change of the parameter.

Parameters

self

machine

 

property_name

name of the parameter

 

control

interaction control object

 

pg

the parameter group of the property

 

bt_machine_enable_input_gain ()

gboolean
bt_machine_enable_input_gain (BtMachine * const self);

Creates the input-gain element of the machine and activates it.

Parameters

self

the machine to enable the input-gain element in

 

Returns

TRUE for success, FALSE otherwise


bt_machine_enable_input_post_level ()

gboolean
bt_machine_enable_input_post_level (BtMachine * const self);

Creates the post-gain input-level analyser of the machine and activates it.

Parameters

self

the machine to enable the post-gain input-level analyser in

 

Returns

TRUE for success, FALSE otherwise


bt_machine_enable_input_pre_level ()

gboolean
bt_machine_enable_input_pre_level (BtMachine * const self);

Creates the pre-gain input-level analyser of the machine and activates it.

Parameters

self

the machine to enable the pre-gain input-level analyser in

 

Returns

TRUE for success, FALSE otherwise


bt_machine_enable_output_gain ()

gboolean
bt_machine_enable_output_gain (BtMachine * const self);

Creates the output-gain element of the machine and activates it.

Parameters

self

the machine to enable the output-gain element in

 

Returns

TRUE for success, FALSE otherwise


bt_machine_enable_output_post_level ()

gboolean
bt_machine_enable_output_post_level (BtMachine * const self);

Creates the post-gain output-level analyser of the machine and activates it.

Parameters

self

the machine to enable the post-gain output-level analyser in

 

Returns

TRUE for success, FALSE otherwise


bt_machine_enable_output_pre_level ()

gboolean
bt_machine_enable_output_pre_level (BtMachine * const self);

Creates the pre-gain output-level analyser of the machine and activates it.

Parameters

self

the machine to enable the pre-gain output-level analyser in

 

Returns

TRUE for success, FALSE otherwise


bt_machine_get_global_param_group ()

BtParameterGroup *
bt_machine_get_global_param_group (const BtMachine * const self);

Get the parameter group of global parameters.

Parameters

self

the machine

 

Returns

the BtParameterGroup or NULL.

[transfer none]


bt_machine_get_pattern_by_index ()

BtCmdPattern *
bt_machine_get_pattern_by_index (const BtMachine * const self,
                                 const gulong index);

Fetches the pattern from the given position of the machines pattern list. The pattern must have been added previously to this setup with bt_machine_add_pattern().

Parameters

self

the machine to search for the pattern

 

index

the index of the pattern in the machines pattern list

 

Returns

BtCmdPattern instance or NULL if not found. Unref the pattern, when done with it.

[transfer full]


bt_machine_get_pattern_by_name ()

BtCmdPattern *
bt_machine_get_pattern_by_name (const BtMachine * const self,
                                const gchar * const name);

Search the machine for a pattern by the supplied name. The pattern must have been added previously to this setup with bt_machine_add_pattern().

Parameters

self

the machine to search for the pattern

 

name

the name of the pattern

 

Returns

BtCmdPattern instance or NULL if not found. Unref the pattern, when done with it.

[transfer full]


bt_machine_get_prefs_param_group ()

BtParameterGroup *
bt_machine_get_prefs_param_group (const BtMachine * const self);

Get the parameter group of machine properties. Properties are settings that cannot be changed during playback.

Parameters

self

the machine

 

Returns

the BtParameterGroup or NULL.

[transfer none]


bt_machine_get_unique_pattern_name ()

gchar *
bt_machine_get_unique_pattern_name (const BtMachine * const self);

The function generates a unique pattern name for this machine by eventually adding a number postfix. This method should be used when adding new patterns.

Parameters

self

the machine for which the name should be unique

 

Returns

the newly allocated unique name.

[transfer full]


bt_machine_get_voice_param_group ()

BtParameterGroup *
bt_machine_get_voice_param_group (const BtMachine * const self,
                                  const gulong voice);

Get the parameter group of voice parameters for the given voice .

Parameters

self

the machine

 

voice

the voice number

 

Returns

the BtParameterGroup or NULL.

[transfer none]


bt_machine_get_wire_by_dst_machine ()

BtWire *
bt_machine_get_wire_by_dst_machine (const BtMachine * const self,
                                    const BtMachine * const dst);

Searches for a wire in the wires originating from this machine that uses the given BtMachine instances as a target.

Parameters

self

the machine that is at src of a wire

 

dst

the machine that is at the dst end of the wire

 

Returns

the BtWire or NULL. Unref the wire, when done with it.

[transfer full]

Since: 0.6


bt_machine_handles_waves ()

gboolean
bt_machine_handles_waves (const BtMachine * const self);

Tells if the machine is using the wave-table.

Parameters

self

the machine to check

 

Returns

TRUE for wavetable machines, FALSE otherwise

Since: 0.7


bt_machine_has_active_adder ()

gboolean
bt_machine_has_active_adder (const BtMachine * const self);

Checks if the machine currently uses an adder. This method is used by the BtWire class to activate the adder when needed.

Parameters

self

the machine to check

 

Returns

TRUE for success


bt_machine_has_active_spreader ()

gboolean
bt_machine_has_active_spreader (const BtMachine * const self);

Checks if the machine currently uses an spreader. This method is used by the BtWire class to activate the spreader when needed.

Parameters

self

the machine to check

 

Returns

TRUE for success


bt_machine_has_patterns ()

gboolean
bt_machine_has_patterns (const BtMachine * const self);

Check if the machine has BtPattern entries appart from the standart private ones.

Parameters

self

the machine for which to check the patterns

 

Returns

TRUE if it has patterns


bt_machine_is_polyphonic ()

gboolean
bt_machine_is_polyphonic (const BtMachine * const self);

Tells if the machine can produce (multiple) voices. Monophonic machines have their (one) voice params as part of the global params.

Parameters

self

the machine to check

 

Returns

TRUE for polyphic machines, FALSE for monophonic ones


bt_machine_randomize_parameters ()

void
bt_machine_randomize_parameters (const BtMachine * const self);

Randomizes machine parameters.

Parameters

self

machine

 

bt_machine_remove_pattern ()

void
bt_machine_remove_pattern (const BtMachine *self,
                           const BtCmdPattern *pattern);

Remove the given pattern from the machine.

Parameters

self

the machine to remove the pattern from

 

pattern

the existing pattern instance

 

bt_machine_reset_parameters ()

void
bt_machine_reset_parameters (const BtMachine * const self);

Resets machine parameters back to defaults.

Parameters

self

machine

 

bt_machine_set_param_defaults ()

void
bt_machine_set_param_defaults (const BtMachine *const self);

Sets default values that should be used before the first control-point. Should be called, if all parameters are changed (like after switching presets).

Parameters

self

the machine

 

bt_machine_unbind_parameter_control ()

void
bt_machine_unbind_parameter_control (const BtMachine * const self,
                                     GstObject *object,
                                     const gchar *property_name);

Disconnect the interaction control object from the give parameter.

Parameters

self

machine

 

object

child object (global or voice child)

 

property_name

name of the parameter

 

bt_machine_unbind_parameter_controls ()

void
bt_machine_unbind_parameter_controls (const BtMachine * const self);

Disconnect all interaction controls.

Parameters

self

machine

 

Types and Values

struct BtMachine

struct BtMachine {
  /*< read-only >*/
  GList *src_wires;
  GList *dst_wires;
};

Base object for a virtual piece of hardware (generator, effect, ...).

Members

GList *src_wires;

read-only list of outgoing BtWire objects

 

GList *dst_wires;

read-only list of incomming BtWire objects

 

struct BtMachineClass

struct BtMachineClass {
  /* virtual methods for subclasses */
  gboolean (*check_type)(const BtMachine * const machine, const gulong pad_src_ct, const gulong pad_sink_ct);
};

Base class for machines.

Members

check_type ()

sanity check that the given input/output characteristics are okay for the implementation

 

enum BtMachineState

A machine is always in one of the 4 states. Use the "state" property of the BtMachine to change or query the current state.

Members

BT_MACHINE_STATE_NORMAL

just working

 

BT_MACHINE_STATE_MUTE

be quiet

 

BT_MACHINE_STATE_SOLO

be the only one playing

 

BT_MACHINE_STATE_BYPASS

be uneffective (pass through)

 

Property Details

The “adder-convert” property

  “adder-convert”            GstElement *

the after mixing format converter element, if any.

Flags: Read


The “construction-error” property

  “construction-error”       gpointer

signal failed instance creation.

Flags: Read / Write / Construct Only


The “global-params” property

  “global-params”            gulong

number of dynamic params for the machine.

Flags: Read


The “id” property

  “id”                       gchar *

machine identifier.

Flags: Read / Write / Construct

Default value: "unamed machine"


The “input-gain” property

  “input-gain”               GstElement *

the input-gain element, if any.

Flags: Read


The “input-post-level” property

  “input-post-level”         GstElement *

the post-gain input-level element, if any.

Flags: Read


The “input-pre-level” property

  “input-pre-level”          GstElement *

the pre-gain input-level element, if any.

Flags: Read


The “machine” property

  “machine”                  GstElement *

the machine element, if any.

Flags: Read


The “output-gain” property

  “output-gain”              GstElement *

the output-gain element, if any.

Flags: Read


The “output-post-level” property

  “output-post-level”        GstElement *

the post-gain output-level element, if any.

Flags: Read


The “output-pre-level” property

  “output-pre-level”         GstElement *

the pre-gain output-level element, if any.

Flags: Read


The “patterns” property

  “patterns”                 gpointer

a copy of the list of patterns.

Flags: Read


The “plugin-name” property

  “plugin-name”              gchar *

the name of the gst plugin for the machine.

Flags: Read / Write / Construct

Default value: "unamed plugin"


The “prefs-params” property

  “prefs-params”             gulong

number of static params for the machine.

Flags: Read


The “pretty-name” property

  “pretty-name”              gchar *

pretty-printed name for display purposes.

Flags: Read

Default value: NULL


The “properties” property

  “properties”               gpointer

hashtable of machine properties.

Flags: Read


The “song” property

  “song”                     BtSong *

song object, the machine belongs to.

Flags: Read / Write / Construct Only


The “state” property

  “state”                    BtMachineState

the current state of this machine.

Flags: Read / Write

Default value: BT_MACHINE_STATE_NORMAL


The “voice-params” property

  “voice-params”             gulong

number of dynamic params for each machine voice.

Flags: Read


The “voices” property

  “voices”                   gulong

number of voices in the machine.

Flags: Read / Write / Construct

Signal Details

The “pattern-added” signal

void
user_function (BtMachine *self,
               BtPattern *pattern,
               gpointer   user_data)

A new pattern item has been added to the machine

Parameters

self

the machine object that emitted the signal

 

pattern

the new pattern

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “pattern-removed” signal

void
user_function (BtMachine *self,
               BtPattern *pattern,
               gpointer   user_data)

A pattern item has been removed from the machine

Parameters

self

the machine object that emitted the signal

 

pattern

the old pattern

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

buzztrax-0.10.2/docs/reference/bt-core/html/api-index-0-7.html0000644042355400116100000002111312640736116024220 0ustar00ensoniceng00000000000000 Index of new API in 0.7: Buzztrax Bt-Core Reference Manual buzztrax-0.10.2/docs/reference/bt-core/html/BtParameterGroup.html0000644042355400116100000013125212640736116025272 0ustar00ensoniceng00000000000000 BtParameterGroup: Buzztrax Bt-Core Reference Manual

BtParameterGroup

BtParameterGroup — a group of parameter

Properties

BtMachine * machine Read / Write / Construct Only
gulong num-params Read / Write / Construct Only
gpointer params Read / Write / Construct Only
gpointer parents Read / Write / Construct Only
BtSong * song Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── BtParameterGroup

Includes

#include <libbtcore/core.h>

Description

A group of parameters, such as used in machines or wires. Once created the group will not change.

Functions

bt_parameter_group_describe_param_value ()

gchar *
bt_parameter_group_describe_param_value
                               (const BtParameterGroup * const self,
                                const gulong index,
                                GValue * const event);

Described a param value in human readable form. The type of the given value must match the type of the paramspec of the param referenced by index .

Parameters

self

the parameter group to get a param description from

 

index

the offset in the list of params

 

event

the value to describe

 

Returns

the description as newly allocated string


bt_parameter_group_get_param_details ()

void
bt_parameter_group_get_param_details (const BtParameterGroup * const self,
                                      const gulong index,
                                      GParamSpec **pspec,
                                      GValue **min_val,
                                      GValue **max_val);

Retrieves the details of a param. Any detail can be NULL if its not wanted.

Parameters

self

the parameter group to search for the param details

 

index

the offset in the list of params

 

pspec

place for the param spec.

[out]

min_val

place to hold new GValue with minimum.

[out]

max_val

place to hold new GValue with maximum.

[out]

bt_parameter_group_get_param_index ()

glong
bt_parameter_group_get_param_index (const BtParameterGroup * const self,
                                    const gchar * const name);

Searches the list of registered param of a machine for a param of the given name and returns the index if found.

Parameters

self

the parameter group to search for the param

 

name

the name of the param

 

Returns

the index if found or returns -1.


bt_parameter_group_get_param_name ()

const gchar *
bt_parameter_group_get_param_name (const BtParameterGroup * const self,
                                   const gulong index);

Gets the param name. Do not modify returned content.

Parameters

self

the parameter group to get the param name from

 

index

the offset in the list of params

 

Returns

the requested name


bt_parameter_group_get_param_no_value ()

GValue *
bt_parameter_group_get_param_no_value (const BtParameterGroup * const self,
                                       const gulong index);

Get the neutral value for the machines parameter.

Parameters

self

the parameter group to get params from

 

index

the offset in the list of params

 

Returns

the value. Don't modify.

Since: 0.6


bt_parameter_group_get_param_parent ()

GObject *
bt_parameter_group_get_param_parent (const BtParameterGroup * const self,
                                     const gulong index);

Retrieves the owner instance for the param

Parameters

self

the parameter group to search for the param

 

index

the offset in the list of params

 

Returns

the GParamSpec for the requested param.

[transfer none]


bt_parameter_group_get_param_spec ()

GParamSpec *
bt_parameter_group_get_param_spec (const BtParameterGroup * const self,
                                   const gulong index);

Retrieves the parameter specification for the param

Parameters

self

the parameter group to search for the param

 

index

the offset in the list of params

 

Returns

the GParamSpec for the requested param.

[transfer none]


bt_parameter_group_get_param_type ()

GType
bt_parameter_group_get_param_type (const BtParameterGroup * const self,
                                   const gulong index);

Retrieves the GType of a param

Parameters

self

the parameter group to search for the param type

 

index

the offset in the list of params

 

Returns

the requested GType


bt_parameter_group_get_trigger_param_index ()

glong
bt_parameter_group_get_trigger_param_index
                               (const BtParameterGroup * const self);

Searches for the first trigger parameter (if any).

Parameters

self

the parameter group to lookup the param from

 

Returns

the index of the first trigger parameter or -1 if none.


bt_parameter_group_get_wave_param_index ()

glong
bt_parameter_group_get_wave_param_index
                               (const BtParameterGroup * const self);

Searches for the wave-table index parameter (if any). This parameter should refer to a wavetable index that should be used to play a note.

Parameters

self

the parameter group to lookup the param from

 

Returns

the index of the wave-table parameter or -1 if none.


bt_parameter_group_is_param_no_value ()

gboolean
bt_parameter_group_is_param_no_value (const BtParameterGroup * const self,
                                      const gulong index,
                                      GValue * const value);

Tests if the given value is the no-value of the param

Parameters

self

the parameter group to check params from

 

index

the offset in the list of params

 

value

the value to compare against the no-value

 

Returns

TRUE if it is the no-value


bt_parameter_group_is_param_trigger ()

gboolean
bt_parameter_group_is_param_trigger (const BtParameterGroup * const self,
                                     const gulong index);

Tests if the param is a trigger param (like a key-note or a drum trigger).

Parameters

self

the parameter group to check params from

 

index

the offset in the list of params

 

Returns

TRUE if it is a trigger


bt_parameter_group_new ()

BtParameterGroup *
bt_parameter_group_new (gulong num_params,
                        GObject **parents,
                        GParamSpec **params,
                        BtSong *song,
                        const BtMachine *machine);

Create a parameter group.

Parameters

num_params

the number of parameters

 

parents

array of parent GObjects for each parameter

 

params

array of GParamSpecs for each parameter

 

song

the song

 

machine

the machine that is owns the parameter-group, use the target machine for wires.

 

Returns

the new parameter group.

[transfer full]


bt_parameter_group_randomize_values ()

void
bt_parameter_group_randomize_values (const BtParameterGroup * const self);

Randomize all parameter values.

Parameters

self

the parameter group

 

bt_parameter_group_reset_values ()

void
bt_parameter_group_reset_values (const BtParameterGroup * const self);

Reset all parameter values to their defaults.

Parameters

self

the parameter group

 

bt_parameter_group_set_param_default ()

void
bt_parameter_group_set_param_default (const BtParameterGroup * const self,
                                      const gulong index);

Set a default value that should be used before the first control-point.

Parameters

self

the parameter group

 

index

the offset in the list of params

 

bt_parameter_group_set_param_defaults ()

void
bt_parameter_group_set_param_defaults (const BtParameterGroup * const self);

Set a default value that should be used before the first control-point for each parameter.

Parameters

self

the parameter group

 

bt_parameter_group_set_param_value ()

void
bt_parameter_group_set_param_value (const BtParameterGroup * const self,
                                    const gulong index,
                                    GValue * const event);

Sets a the specified param to the give data value.

Parameters

self

the parameter group to set the param value

 

index

the offset in the list of params

 

event

the new value

 

Types and Values

struct BtParameterGroup

struct BtParameterGroup;

A group of parameters, such as used in machines or wires.

Property Details

The “machine” property

  “machine”                  BtMachine *

the respective machine object.

Flags: Read / Write / Construct Only


The “num-params” property

  “num-params”               gulong

number of params.

Flags: Read / Write / Construct Only


The “params” property

  “params”                   gpointer

pointer to GParamSpec array, takes ownership.

Flags: Read / Write / Construct Only


The “parents” property

  “parents”                  gpointer

pointer to array containing the Objects that own the paramers, takes ownership.

Flags: Read / Write / Construct Only


The “song” property

  “song”                     BtSong *

song object the param group belongs to.

Flags: Read / Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-core/html/BtChildProxy.html0000644042355400116100000006757712640736116024444 0ustar00ensoniceng00000000000000 BtChildProxy: Buzztrax Bt-Core Reference Manual

BtChildProxy

BtChildProxy — Interface for multi child elements.

Types and Values

Object Hierarchy

    GInterface
    ╰── BtChildProxy

Includes

#include <libbtcore/core.h>

Description

This interface abstracts handling of property sets for elements with children. Imagine elements such as mixers or polyphonic generators. They all have multiple GstPad or some kind of voice objects. Another use case are container elements like GstBin. The element implementing the interface acts as a parent for those child objects.

By implementing this interface the child properties can be accessed from the parent element by using bt_child_proxy_get() and bt_child_proxy_set().

Property names are written as "child-name::property-name". The whole naming scheme is recursive. Thus "child1::child2::property" is valid too, if "child1" and "child2" are objects that implement the interface or are properties that return a GObject. The later is a convenient way to set or get properties a few hops down the hierarchy in one go (without being able to forget the unrefs of the intermediate objects).

Functions

bt_child_proxy_get ()

void
bt_child_proxy_get (gpointer object,
                    const gchar *first_property_name,
                    ...);

Gets properties of the parent object and its children.

Parameters

object

the parent object

 

first_property_name

name of the first property to get

 

...

return location for the first property, followed optionally by more name/return location pairs, followed by NULL

 

bt_child_proxy_get_child_by_index ()

GObject *
bt_child_proxy_get_child_by_index (BtChildProxy *parent,
                                   guint index);

Fetches a child by its number.

Parameters

parent

the parent object to get the child from

 

index

the childs position in the child list

 

Returns

the child object or NULL if not found (index too high). Unref after usage.

[transfer full]


bt_child_proxy_get_child_by_name ()

GObject *
bt_child_proxy_get_child_by_name (BtChildProxy *parent,
                                  const gchar *name);

Looks up a child element by the given name.

Parameters

parent

the parent object to get the child from

 

name

the childs name

 

Returns

the child object or NULL if not found. Unref after usage.

[transfer full]


bt_child_proxy_get_children_count ()

guint
bt_child_proxy_get_children_count (BtChildProxy *parent);

Gets the number of child objects this parent contains.

Parameters

parent

the parent object

 

Returns

the number of child objects


bt_child_proxy_get_property ()

void
bt_child_proxy_get_property (GObject *object,
                             const gchar *name,
                             GValue *value);

Gets a single property using the BtChildProxy mechanism. You are responsible for for freeing it by calling g_value_unset()

Parameters

object

object to query

 

name

name of the property

 

value

a GValue that should take the result.

 

bt_child_proxy_get_valist ()

void
bt_child_proxy_get_valist (GObject *object,
                           const gchar *first_property_name,
                           va_list var_args);

Gets properties of the parent object and its children.

Parameters

object

the object to query

 

first_property_name

name of the first property to get

 

var_args

return location for the first property, followed optionally by more name/return location pairs, followed by NULL

 

bt_child_proxy_lookup ()

gboolean
bt_child_proxy_lookup (GObject *object,
                       const gchar *name,
                       GObject **target,
                       GParamSpec **pspec);

Looks up which object and GParamSpec would be effected by the given name .

Parameters

object

object to lookup the property in

 

name

name of the property to look up

 

target

pointer to a GObject that takes the real object to set property on

 

pspec

pointer to take the GParamSpec describing the property

 

Returns

TRUE if target and pspec could be found. FALSE otherwise. In that case the values for pspec and target are not modified. Unref target after usage.


bt_child_proxy_set ()

void
bt_child_proxy_set (gpointer object,
                    const gchar *first_property_name,
                    ...);

Sets properties of the parent object and its children.

Parameters

object

the parent object

 

first_property_name

name of the first property to set

 

...

value for the first property, followed optionally by more name/value pairs, followed by NULL

 

bt_child_proxy_set_property ()

void
bt_child_proxy_set_property (GObject *object,
                             const gchar *name,
                             const GValue *value);

Sets a single property using the BtChildProxy mechanism.

Parameters

object

the parent object

 

name

name of the property to set

 

value

new GValue for the property

 

bt_child_proxy_set_valist ()

void
bt_child_proxy_set_valist (GObject *object,
                           const gchar *first_property_name,
                           va_list var_args);

Sets properties of the parent object and its children.

Parameters

object

the parent object

 

first_property_name

name of the first property to set

 

var_args

value for the first property, followed optionally by more name/value pairs, followed by NULL

 

Types and Values

BtChildProxy

typedef struct _BtChildProxy BtChildProxy;

Opaque interface handle.


struct BtChildProxyInterface

struct BtChildProxyInterface {
  /* virtual methods */
  GObject *(*get_child_by_name)(BtChildProxy *parent,const gchar *name);
  GObject *(*get_child_by_index) (BtChildProxy *parent,guint index);
  guint (*get_children_count) (BtChildProxy *parent);
};

BtChildProxy interface.

Members

get_child_by_name ()

virtual method to fetch the child by name

 

get_child_by_index ()

virtual method to fetch the child by index

 

get_children_count ()

virtual method to get the children count

 
buzztrax-0.10.2/docs/reference/bt-core/html/api-index-deprecated.html0000644042355400116100000000322512640736116026021 0ustar00ensoniceng00000000000000 Index of deprecated API: Buzztrax Bt-Core Reference Manual

Index of deprecated API

buzztrax-0.10.2/docs/reference/bt-core/html/BtSequence.html0000644042355400116100000021324512640736116024110 0ustar00ensoniceng00000000000000 BtSequence: Buzztrax Bt-Core Reference Manual

BtSequence

BtSequence — class for the event timeline of a BtSong instance

Properties

gulong length Read / Write
gboolean loop Read / Write
glong loop-end Read / Write
glong loop-start Read / Write
gpointer properties Read
BtSong * song Read / Write / Construct Only
gpointer toc Read
gulong tracks Read / Write

Signals

void pattern-added No Hooks
void pattern-removed No Hooks
void rows-changed No Hooks
void track-added No Hooks
void track-removed No Hooks

Types and Values

struct BtSequence

Object Hierarchy

    GObject
    ╰── BtSequence

Implemented Interfaces

BtSequence implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

A sequence holds grid of BtCmdPatterns, with labels on the time axis and BtMachine instances on the track axis. It tracks first and last use of patterns and provides two signals for notification - “pattern-added” and “pattern-removed”. The labels are exported as a GstToc, readable through the “toc” property.

It supports looping a section of the sequence (see “loop”, “loop-start”, “loop-end”).

The sequence is not aware of timing related information; for this take a look at BtSongInfo.

Functions

bt_sequence_add_track ()

gboolean
bt_sequence_add_track (const BtSequence * const self,
                       const BtMachine * const machine,
                       const glong ix);

Adds a new track with the machine at ix or the end.

Parameters

self

the BtSequence that holds the tracks

 

machine

the BtMachine

 

ix

position to add the track at, use -1 to append

 

Returns

TRUE for success


bt_sequence_delete_full_rows ()

void
bt_sequence_delete_full_rows (const BtSequence * const self,
                              const gulong time,
                              const gulong rows);

Delete row for all tracks.

Parameters

self

the sequence

 

time

the postion to delete

 

rows

the number of rows to remove

 

Since: 0.3


bt_sequence_delete_rows ()

void
bt_sequence_delete_rows (const BtSequence * const self,
                         const gulong time,
                         const glong track,
                         const gulong rows);

Delete row for given track .

Parameters

self

the sequence

 

time

the postion to delete

 

track

the track

 

rows

the number of rows to remove

 

Since: 0.3


bt_sequence_get_label ()

gchar *
bt_sequence_get_label (const BtSequence * const self,
                       const gulong time);

Fetches the label for the given time position. Free when done.

Parameters

self

the BtSequence that holds the labels

 

time

the requested time position

 

Returns

a copy of the label or NULL in case of an error


bt_sequence_get_loop_length ()

gulong
bt_sequence_get_loop_length (const BtSequence * const self);

Calculates the length of the song loop in ticks.

Parameters

self

the BtSequence of the song

 

Returns

the length of the song loop in ticks


bt_sequence_get_machine ()

BtMachine *
bt_sequence_get_machine (const BtSequence * const self,
                         const gulong track);

Fetches the BtMachine for the given track .

Parameters

self

the BtSequence that holds the tracks

 

track

the requested track index

 

Returns

a reference to the BtMachine pointer or NULL in case of an error. Unref when done.

[transfer full]


bt_sequence_get_pattern ()

BtCmdPattern *
bt_sequence_get_pattern (const BtSequence * const self,
                         const gulong time,
                         const gulong track);

Fetches the pattern for the given time and track position.

Parameters

self

the BtSequence that holds the patterns

 

time

the requested time position

 

track

the requested track index

 

Returns

a reference to the BtCmdPattern or NULL when empty. Unref when done.

[transfer full]


bt_sequence_get_tick_by_pattern ()

glong
bt_sequence_get_tick_by_pattern (const BtSequence * const self,
                                 gulong track,
                                 const BtCmdPattern * const pattern,
                                 gulong tick);

Gets the next tick position >= tick this pattern is on.

Parameters

self

the sequence to search in

 

track

the track to search in

 

pattern

the pattern to find the next track for

 

tick

the tick position to start the search from

 

Returns

the tick position or -1 if there is no further tick for this pattern .

Since: 0.6


bt_sequence_get_track_by_machine ()

glong
bt_sequence_get_track_by_machine (const BtSequence * const self,
                                  const BtMachine * const machine,
                                  gulong track);

Gets the next track >= track this machine is on.

Parameters

self

the sequence to search in

 

machine

the machine to find the next track for

 

track

the track to start the search from

 

Returns

the track-index or -1 if there is no further track for this machine .

Since: 0.6


bt_sequence_insert_full_rows ()

void
bt_sequence_insert_full_rows (const BtSequence * const self,
                              const gulong time,
                              const gulong rows);

Insert one empty row for all tracks.

Parameters

self

the sequence

 

time

the postion to insert at

 

rows

the number of rows to insert

 

Since: 0.3


bt_sequence_insert_rows ()

void
bt_sequence_insert_rows (const BtSequence * const self,
                         const gulong time,
                         const glong track,
                         const gulong rows);

Insert one empty row for given track .

Parameters

self

the sequence

 

time

the postion to insert at

 

track

the track

 

rows

the number of rows to insert

 

Since: 0.3


bt_sequence_is_pattern_used ()

gboolean
bt_sequence_is_pattern_used (const BtSequence * const self,
                             const BtPattern * const pattern);

Checks if the pattern is used in the sequence.

Parameters

self

the sequence to check for pattern use

 

pattern

the pattern to check for

 

Returns

TRUE if pattern is used.


bt_sequence_limit_play_pos ()

gulong
bt_sequence_limit_play_pos (const BtSequence * const self,
                            const gulong play_pos);

Enforce the playback position to be within loop start and end or the song bounds if there is no loop.

Parameters

self

the sequence to trim the play position of

 

play_pos

the time position to lock inbetween loop-boundaries

 

Returns

the new play_pos


bt_sequence_move_track_left ()

gboolean
bt_sequence_move_track_left (const BtSequence * const self,
                             const gulong track);

Move the selected track on column left.

Parameters

self

the BtSequence that holds the tracks

 

track

the track to move

 

Returns

TRUE for success


bt_sequence_move_track_right ()

gboolean
bt_sequence_move_track_right (const BtSequence * const self,
                              const gulong track);

Move the selected track on column left.

Parameters

self

the BtSequence that holds the tracks

 

track

the track to move

 

Returns

TRUE for success


bt_sequence_new ()

BtSequence *
bt_sequence_new (const BtSong * const song);

Create a new instance. One would not call this directly, but rather get this from a BtSong instance.

Parameters

song

the song the new instance belongs to

 

Returns

the new instance or NULL in case of an error


bt_sequence_remove_track_by_ix ()

gboolean
bt_sequence_remove_track_by_ix (const BtSequence * const self,
                                const gulong ix);

Removes the specified track .

Parameters

self

the BtSequence that holds the tracks

 

ix

the requested track index

 

Returns

TRUE for success


bt_sequence_remove_track_by_machine ()

gboolean
bt_sequence_remove_track_by_machine (const BtSequence * const self,
                                     const BtMachine * const machine);

Removes all tracks that belong the the given machine .

Parameters

self

the BtSequence that holds the tracks

 

machine

the BtMachine

 

Returns

TRUE for success


bt_sequence_set_label ()

void
bt_sequence_set_label (const BtSequence * const self,
                       const gulong time,
                       const gchar * const label);

Sets a new label for the respective time position.

Parameters

self

the BtSequence that holds the labels

 

time

the requested time position

 

label

the new label

 

bt_sequence_set_pattern ()

void
bt_sequence_set_pattern (const BtSequence * const self,
                         const gulong time,
                         const gulong track,
                         const BtCmdPattern * const pattern);

Sets the BtCmdPattern for the respective time and track position.

Parameters

self

the BtSequence that holds the patterns

 

time

the requested time position

 

track

the requested track index

 

pattern

the BtCmdPattern or NULL to unset

 

bt_sequence_set_pattern_quick ()

gboolean
bt_sequence_set_pattern_quick (const BtSequence * const self,
                               const gulong time,
                               const gulong track,
                               const BtCmdPattern * const pattern);

A quick version of bt_sequence_set_pattern() that does not check parameters. Useful when doing mass updates.

Parameters

self

the BtSequence that holds the patterns

 

time

the requested time position

 

track

the requested track index

 

pattern

the BtCmdPattern or NULL to unset

 

Returns

TRUE if a change has been made.

Since: 0.5

Types and Values

struct BtSequence

struct BtSequence;

Starting point for the BtSong timeline data-structures. Holds a series of array of BtCmdPatterns for time and tracks, which define the events that are sent to a BtMachine at a time.

Property Details

The “length” property

  “length”                   gulong

length of the sequence in timeline bars.

Flags: Read / Write

Allowed values: <= G_MAXINT64


The “loop” property

  “loop”                     gboolean

is loop activated.

Flags: Read / Write

Default value: FALSE


The “loop-end” property

  “loop-end”                 glong

end of the repeat sequence on the timeline.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “loop-start” property

  “loop-start”               glong

start of the repeat sequence on the timeline.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “properties” property

  “properties”               gpointer

hashtable of sequence properties.

Flags: Read


The “song” property

  “song”                     BtSong *

Set song object, the sequence belongs to.

Flags: Read / Write / Construct Only


The “toc” property

  “toc”                      gpointer

TOC containing the labels.

Flags: Read


The “tracks” property

  “tracks”                   gulong

number of tracks in the sequence.

Flags: Read / Write

Signal Details

The “pattern-added” signal

void
user_function (BtSequence *self,
               BtPattern  *pattern,
               gpointer    user_data)

A pattern has been used in the sequence for the first time.

Parameters

self

the sequence object that emitted the signal

 

pattern

the new pattern

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “pattern-removed” signal

void
user_function (BtSequence *self,
               BtPattern  *pattern,
               gpointer    user_data)

The last occurance of pattern has been removed from the sequence.

Parameters

self

the sequence object that emitted the signal

 

pattern

the old pattern

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks


The “rows-changed” signal

void
user_function (BtSequence *self,
               gulong      begin,
               gulong      end,
               gpointer    user_data)

The content of the given rows in the sequence has changed.

Parameters

self

the sequence object that emitted the signal

 

begin

start row that changed

 

end

last row that changed

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

Since: 0.6


The “track-added” signal

void
user_function (BtSequence *self,
               BtMachine  *machine,
               gulong      track,
               gpointer    user_data)

A new track for machine has been added with the track index.

Parameters

self

the sequence object that emitted the signal

 

machine

the machine for the track

 

track

the track index

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

Since: 0.6


The “track-removed” signal

void
user_function (BtSequence *self,
               BtMachine  *machine,
               gulong      track,
               gpointer    user_data)

A track for machine has been removed at the track index.

Parameters

self

the sequence object that emitted the signal

 

machine

the machine for the track

 

track

the track index

 

user_data

user data set when the signal handler was connected.

 

Flags: No Hooks

Since: 0.6

buzztrax-0.10.2/docs/reference/bt-core/html/BtApplication.html0000644042355400116100000001760412640736116024604 0ustar00ensoniceng00000000000000 BtApplication: Buzztrax Bt-Core Reference Manual

BtApplication

BtApplication — base class for a buzztrax based application

Properties

GstBin * bin Read
BtSettings * settings Read

Types and Values

struct BtApplication

Object Hierarchy

    GObject
    ╰── BtApplication

Includes

#include <libbtcore/core.h>

Description

Every application using the libbtcore library should inherit from this class. Implementations should implement the singleton pattern.

The base class automatically creates a GstBin element as a container for the song. This can be retrieved via the “bin” property. When creating BtSong instances, the BtApplication instance needs to be passed to the bt_song_new() constructor, so that it can retrieve the GstBin element.

1
2
3
4
BtApplication *app;
BtSong *song;
...
song=bt_song_new(app);

Another module the application base class maintains is a settings instance (see BtSettings), that manages application preferences.

Functions

Types and Values

struct BtApplication

struct BtApplication;

base object for a buzztrax based application

Property Details

The “bin” property

  “bin”                      GstBin *

The top-level gstreamer element for the song, e.g. a GstPipeline or GstBin.

Flags: Read


The “settings” property

  “settings”                 BtSettings *

applications configuration settings.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-core/html/BtSinkMachine.html0000644042355400116100000002362012640736116024525 0ustar00ensoniceng00000000000000 BtSinkMachine: Buzztrax Bt-Core Reference Manual

BtSinkMachine

BtSinkMachine — class for signal processing machines with inputs only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBin
                    ╰── BtMachine
                        ╰── BtSinkMachine

Implemented Interfaces

BtSinkMachine implements GstChildProxy and BtPersistence.

Includes

#include <libbtcore/core.h>

Description

Sinks are machines that do playback or recording of the song. The sink-machine utilizes the BtSinkBin to transparently switch elements between record (encoding) and playback.

Functions

bt_sink_machine_new ()

BtSinkMachine *
bt_sink_machine_new (const BtSong * const song,
                     const gchar * const id,
                     GError **err);

Create a new instance. The machine is automatically added to the setup from the given song object. You don't need to add the machine with

bt_setup_add_machine(setup,BT_MACHINE(machine));.

The element used for this machine is BtSinkBin which is configured according to the use-case (playback, recording). The playback device is taken from the BtSettings.

Parameters

song

the song the new instance belongs to

 

id

the id, we can use to lookup the machine

 

err

inform about failed instance creation

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtSinkMachine

struct BtSinkMachine;

Sub-class of a BtMachine that implements a signal output (a machine with inputs only).


enum BtSinkMachinePatternIndex

Use this with bt_machine_get_pattern_by_index() to get the command patterns.

Members

BT_SINK_MACHINE_PATTERN_INDEX_BREAK

stop the pattern

 

BT_SINK_MACHINE_PATTERN_INDEX_MUTE

mute the machine

 

BT_SINK_MACHINE_PATTERN_INDEX_OFFSET

offset for real pattern ids

 
buzztrax-0.10.2/docs/reference/bt-core/html/BtWavelevel.html0000644042355400116100000003650512640736116024274 0ustar00ensoniceng00000000000000 BtWavelevel: Buzztrax Bt-Core Reference Manual

BtWavelevel

BtWavelevel — a single part of a BtWave item

Properties

gpointer data Read / Write
gulong length Read / Write
gulong loop-end Read / Write
gulong loop-start Read / Write
gulong rate Read / Write
GstBtNote root-note Read / Write / Construct
BtSong * song Read / Write / Construct Only
BtWave * wave Read / Write / Construct Only

Types and Values

struct BtWavelevel

Object Hierarchy

    GObject
    ╰── BtWavelevel

Implemented Interfaces

BtWavelevel implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

BtWavelevel contain the digital audio data of a BtWave to be used for a certain key-range.

Functions

BT_WAVELEVEL_DEFAULT_ROOT_NOTE

#define BT_WAVELEVEL_DEFAULT_ROOT_NOTE (1+(4*16))

Default base-note for a wavelevel (c-3).


bt_wavelevel_new ()

BtWavelevel *
bt_wavelevel_new (const BtSong * const song,
                  const BtWave * const wave,
                  const GstBtNote root_note,
                  const gulong length,
                  const gulong loop_start,
                  const gulong loop_end,
                  const gulong rate,
                  gconstpointer sample);

Create a new instance

Parameters

song

the song the new instance belongs to

 

wave

the wave the new wavelevel belongs to

 

root_note

the keyboard note this sample is related

 

length

the number of samples

 

loop_start

the start of the loop

 

loop_end

the end of the loop

 

rate

the sampling rate

 

sample

the sample data

 

Returns

the new instance or NULL in case of an error.

[transfer full]

Types and Values

struct BtWavelevel

struct BtWavelevel;

A tone level for a BtWave. In most cases a BtWave has only one BtWavelevel.

Property Details

The “data” property

  “data”                     gpointer

the sample data.

Flags: Read / Write


The “length” property

  “length”                   gulong

length of the sample.

Flags: Read / Write

Allowed values: <= G_MAXINT64


The “loop-end” property

  “loop-end”                 gulong

end of the sample loop.

Flags: Read / Write


The “loop-start” property

  “loop-start”               gulong

start of the sample loop.

Flags: Read / Write


The “rate” property

  “rate”                     gulong

sampling rate of the sample.

Flags: Read / Write


The “root-note” property

  “root-note”                GstBtNote

the base note associated with the sample.

Flags: Read / Write / Construct

Default value: NONE


The “song” property

  “song”                     BtSong *

Set song object, the wavelevel belongs to.

Flags: Read / Write / Construct Only


The “wave” property

  “wave”                     BtWave *

Set wave object, the wavelevel belongs to.

Flags: Read / Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-core/html/BtAudioSession.html0000644042355400116100000002217112640736116024741 0ustar00ensoniceng00000000000000 BtAudioSession: Buzztrax Bt-Core Reference Manual

BtAudioSession

BtAudioSession — bin to be used by BtSinkMachine

Properties

gboolean audio-locked Read / Write
GstElement * audio-sink Read
gchar * audio-sink-device Read / Write
gchar * audio-sink-name Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── BtAudioSession

Includes

#include <libbtcore/core.h>

Description

The audio-session provides a persistent audio-sink for some classes. This e.g. ensures a persistent presence in qjackctrl if jackaudiosink is used.

The top BtApplication should create one and dispose it at the end of the lifecycle. The audio-session is a singleton, parts in the code can just call bt_audio_session_new() to get the instance.

Functions

bt_audio_session_new ()

BtAudioSession *
bt_audio_session_new (void);

Create a new audio-session or return the existing one. The audio session keeps the audio setup alive across songs. An application can only have one audio-session. This method can be called several times though.

Returns

the audio-session, unref when done.

Types and Values

struct BtAudioSession

struct BtAudioSession;

Maintains the audio connection for the life time of the application.

Property Details

The “audio-locked” property

  “audio-locked”             gboolean

locked state for the audio-sink.

Flags: Read / Write

Default value: FALSE


The “audio-sink” property

  “audio-sink”               GstElement *

the audio-sink for the session.

Flags: Read


The “audio-sink-device” property

  “audio-sink-device”        gchar *

The name of the audio sink device.

Flags: Read / Write

Default value: NULL


The “audio-sink-name” property

  “audio-sink-name”          gchar *

The name of the audio sink factory.

Flags: Read / Write

Default value: NULL

buzztrax-0.10.2/docs/reference/bt-core/html/api-index-0-5.html0000644042355400116100000000461312640736116024224 0ustar00ensoniceng00000000000000 Index of new API in 0.5: Buzztrax Bt-Core Reference Manual

Index of new API in 0.5

P

bt_pattern_flip_columns, function in BtPattern

S

bt_sequence_set_pattern_quick, function in BtSequence
buzztrax-0.10.2/docs/reference/bt-core/html/BtSongIO.html0000644042355400116100000010716712640736116023503 0ustar00ensoniceng00000000000000 BtSongIO: Buzztrax Bt-Core Reference Manual

BtSongIO

BtSongIO — base class for song input and output

Properties

gpointer data Read
guint data-len Read
gchar * file-name Read
gchar * status Read / Write

Object Hierarchy

    GObject
    ╰── BtSongIO
        ├── BtSongIOBuzz
        ╰── BtSongIONative

Includes

#include <libbtcore/core.h>

Description

A base class for BtSong loader and saver implementations. A BtSongIO module needs to be installed as a shared library into LIBDIR/songio. It is recognized, if it exports a BtSongIOModuleInfo structure. At runtime the detect method of each module is called with the chosen file-name. The module should return its GType if it can handle the format or NULL else.

Such a module should overwrite the bt_song_io_load() and/or bt_song_io_save() default implementations.

There is an internal subclass of this called BtSongIONative.

This API is not yet fully stable. Please discuss with the deverloper team if you intend to write a io plugin.

Functions

BtSongIOInit ()

gboolean
(*BtSongIOInit) (void);

Function to init the plugin.

Returns

TRUE if the plugin was initialized fine


bt_song_io_from_data ()

BtSongIO *
bt_song_io_from_data (gpointer *data,
                      guint len,
                      const gchar *media_type,
                      GError **err);

Create a new instance from the given parameters. Each installed plugin will test if it can handle the file type.

Parameters

data

in memory data of the song

 

len

the siye of the data block

 

media_type

the media-type of the song, if available

 

err

where to store the error message in case of an error, or NULL

 

Returns

the new instance or NULL in case of an error.

[transfer full]


bt_song_io_from_file ()

BtSongIO *
bt_song_io_from_file (const gchar * const file_name,
                      GError **err);

Create a new instance from the given file_name . Each installed plugin will test if it can handle the file type.

Parameters

file_name

the file name of the song

 

err

where to store the error message in case of an error, or NULL

 

Returns

the new instance or NULL in case of an error.

[transfer full]


bt_song_io_get_module_info_list ()

const GList *
bt_song_io_get_module_info_list (void);

Get read only access to list of BtSongIOModuleInfo entries.

Returns

the GList.

[element-type BuzztraxCore.SongIOModuleInfo][transfer none]


bt_song_io_load ()

gboolean
bt_song_io_load (BtSongIO const *self,
                 const BtSong * const song,
                 GError **err);

load the song from a file. The file is set in the constructor

Parameters

self

the BtSongIO instance to use

 

song

the BtSong instance that should initialized

 

err

where to store the error message in case of an error, or NULL

 

Returns

TRUE for success


bt_song_io_save ()

gboolean
bt_song_io_save (BtSongIO const *self,
                 const BtSong * const song,
                 GError **err);

save the song to a file. The file is set in the constructor

Parameters

self

the BtSongIO instance to use

 

song

the BtSong instance that should stored

 

err

where to store the error message in case of an error, or NULL

 

Returns

TRUE for success


bt_song_io_virtual_load ()

gboolean
(*bt_song_io_virtual_load) (gconstpointer self,
                            const BtSong * const song,
                            GError **err);

Subclasses will override this methods with the loader function.

Parameters

self

song-io instance

 

song

song object to load

 

err

where to store the error message in case of an error, or NULL

 

Returns

TRUE for success


bt_song_io_virtual_save ()

gboolean
(*bt_song_io_virtual_save) (gconstpointer const self,
                            const BtSong * const song,
                            GError **err);

Subclasses will override this methods with the saver function.

Parameters

self

song-io instance

 

song

song object to save

 

err

where to store the error message in case of an error, or NULL

 

Returns

TRUE for success

Types and Values

BT_SONG_IO_ERROR

#define BT_SONG_IO_ERROR      bt_song_io_error_quark ()

Error domain for the song-io subsystem. Errors in this domain will be from the BtSongIOError enumeration. See GError for information on error domains.


BT_SONG_IO_MODULE_INFO_MAX_FORMATS

#define BT_SONG_IO_MODULE_INFO_MAX_FORMATS 10

Maximum number of BtSongIOFormatInfo per plugin (10).


struct BtSongIO

struct BtSongIO;

base object for song input and output plugins


struct BtSongIOClass

struct BtSongIOClass {
  const GObjectClass parent;

  /* class methods */
  bt_song_io_virtual_load load;
  bt_song_io_virtual_save save;
};

Base class for song input and output plugins

Members

const GObjectClass parent;

parent class type

 

bt_song_io_virtual_load load;

virtual method for loading a song

 

bt_song_io_virtual_save save;

virtual method for saving a song

 

enum BtSongIOError

Error codes returned by the song-io subsystem in additions to GIOErrorEnum.

Members

BT_SONG_IO_ERROR_UNKNOWN_FORMAT

file is not in one of the supported formats

 

BT_SONG_IO_ERROR_UNSUPPORTED_METHOD

operation is not supported for this file type

 

BT_SONG_IO_ERROR_INVALID_FORMAT

file has structural errors

 

BtSongIOFormatInfo

typedef struct {
  GType type;
  const gchar *name;
  const gchar *mime_type;
  const gchar *extension;
} BtSongIOFormatInfo;

Metadata structure for BtSongIO plugins describing one format.

Members

GType type;

the io module GType

 

const gchar *name;

format name

 

const gchar *mime_type;

mime type

 

const gchar *extension;

file extension

 

BtSongIOModuleInfo

typedef struct {
  BtSongIOInit init;
  BtSongIOFormatInfo formats[BT_SONG_IO_MODULE_INFO_MAX_FORMATS];
} BtSongIOModuleInfo;

Metadata structure for BtSongIO plugins.

Members

BtSongIOInit init;

pointer to init function, can be NULL.

 

BtSongIOFormatInfo formats[BT_SONG_IO_MODULE_INFO_MAX_FORMATS];

NULL terminated array of formats supported by this plugin

 

Property Details

The “data” property

  “data”                     gpointer

in memory block pointer for load save operations.

Flags: Read


The “data-len” property

  “data-len”                 guint

in memory block length for load save operations.

Flags: Read

Default value: 0


The “file-name” property

  “file-name”                gchar *

full filename for load save operations.

Flags: Read

Default value: NULL


The “status” property

  “status”                   gchar *

status of load save operations.

Flags: Read / Write

Default value: NULL

buzztrax-0.10.2/docs/reference/bt-core/html/right-insensitive.png0000644042355400116100000000056512640736116025344 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME ^IDAT8͒J` /S_$AqrW(>m"]\(49.Nd39{eM#MSIιEiHz|3{̲l3,KkV'@EEQlwyiq]Kh4:mĦ,;ts\aR5/7'Wps׭I,K1=0j0Wg> PU𻤝0 ]?qCҫιg~kA_IENDB`buzztrax-0.10.2/docs/reference/bt-core/html/api-index-0-6.html0000644042355400116100000001147312640736116024227 0ustar00ensoniceng00000000000000 Index of new API in 0.6: Buzztrax Bt-Core Reference Manual buzztrax-0.10.2/docs/reference/bt-core/html/annotation-glossary.html0000644042355400116100000001073412640736116026063 0ustar00ensoniceng00000000000000 Annotation Glossary: Buzztrax Bt-Core Reference Manual

Annotation Glossary

A

allow-none

NULL is OK, both for passing and for returning.

array

Parameter points to an array of items.

E

element-type

Generics and defining elements of containers and arrays.

I

inout

Parameter for input and for returning results. Default is transfer full.

O

out

Parameter for returning results. Default is transfer full.

S

scope async

The callback is valid until first called.

skip

Exposed in C code, not necessarily available in other languages.

T

transfer container

Free data container after the code is done.

transfer full

Free data after the code is done.

transfer none

Don't free data after the code is done.

type

Override the parsed C type with given type.

buzztrax-0.10.2/docs/reference/bt-core/html/buzztrax-core.devhelp20000644042355400116100000017631312640736116025442 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/docs/reference/bt-core/html/api-index-0-3.html0000644042355400116100000000743312640736116024225 0ustar00ensoniceng00000000000000 Index of new API in 0.3: Buzztrax Bt-Core Reference Manual buzztrax-0.10.2/docs/reference/bt-core/html/up-insensitive.png0000644042355400116100000000056612640736116024654 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIMEwIIDAT8?/Qϙ?[u$VHTDۈBM+! BtSong: Buzztrax Bt-Core Reference Manual

BtSong

BtSong — class of a song project object (contains BtSongInfo, BtSetup, BtSequence and BtWavetable)

Properties

BtApplication * app Read / Write / Construct Only
GstBin * bin Read
gboolean is-idle Read / Write
gboolean is-playing Read
BtSinkMachine * master Read / Write
gulong play-pos Read / Write
gdouble play-rate Read / Write
BtSequence * sequence Read
BtSetup * setup Read
BtSongInfo * song-info Read
BtSongIO * song-io Read / Write
BtWavetable * wavetable Read

Types and Values

struct BtSong
struct BtSongClass

Object Hierarchy

    GObject
    ╰── BtSong

Implemented Interfaces

BtSong implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

A song is the top-level container object to manage all song-related objects. The BtSetup contains the machines and their connections, the BtSequence contains the overall time-line, the BtWavetable holds a list of audio snippets and the BtSongInfo has a couple of meta-data items for the song.

To load or save a song, use a BtSongIO object. These implement loading and saving for different file-formats.

One can seek in a song by setting the “play-pos” property. Likewise one can watch the property to display the playback position.

The “play-rate” property can be used to change the playback speed and direction.

Functions

bt_song_continue ()

gboolean
bt_song_continue (const BtSong * const self);

Continues the playback of the specified song instance.

Parameters

self

the song that should be paused

 

Returns

TRUE for success


bt_song_new ()

BtSong *
bt_song_new (const BtApplication * const app);

Create a new instance. The new song instance automatically has one instance of BtSetup, BtSequence and BtSongInfo. These instances can be retrieved via the respecting properties.

For example use following code to retrive a BtSequence from the song class:

1
2
3
BtSequence *sequence;
...
g_object_get(BT_SONG(song), "sequence", &sequence, NULL);

Parameters

app

the application object the songs belongs to.

 

Returns

the new instance or NULL in case of an error


bt_song_pause ()

gboolean
bt_song_pause (const BtSong * const self);

Pauses the playback of the specified song instance.

Parameters

self

the song that should be paused

 

Returns

TRUE for success


bt_song_play ()

gboolean
bt_song_play (const BtSong * const self);

Starts to play the specified song instance from beginning. This methods toggles the “is-playing” property.

Parameters

self

the song that should be played

 

Returns

TRUE for success


bt_song_stop ()

gboolean
bt_song_stop (const BtSong * const self);

Stops the playback of the specified song instance.

Parameters

self

the song that should be stopped

 

Returns

TRUE for success


bt_song_update_playback_position ()

gboolean
bt_song_update_playback_position (const BtSong * const self);

Updates the playback-position counter to fire all “play-pos” notify handlers.

Parameters

self

the song that should update its playback-pos counter

 

Returns

FALSE if the song is not playing

Types and Values

struct BtSong

struct BtSong;

Song project object (contains BtSongInfo, BtSetup and BtSequence)


struct BtSongClass

struct BtSongClass {
  const GObjectClass parent;
};

Base class for songs

Members

const GObjectClass parent;

parent class type

 

Property Details

The “app” property

  “app”                      BtApplication *

set application object, the song belongs to.

Flags: Read / Write / Construct Only


The “bin” property

  “bin”                      GstBin *

songs top-level GstElement container.

Flags: Read


The “is-idle” property

  “is-idle”                  gboolean

request that the song should idle-loop if not playing.

Flags: Read / Write

Default value: FALSE


The “is-playing” property

  “is-playing”               gboolean

tell whether the song is playing right now or not.

Flags: Read

Default value: FALSE


The “master” property

  “master”                   BtSinkMachine *

songs audio_sink.

Flags: Read / Write


The “play-pos” property

  “play-pos”                 gulong

position of the play cursor of the sequence in timeline bars.

Flags: Read / Write

Allowed values: <= G_MAXINT64


The “play-rate” property

  “play-rate”                gdouble

playback rate of the sequence.

Flags: Read / Write

Allowed values: [-5,5]

Default value: 1


The “sequence” property

  “sequence”                 BtSequence *

songs sequence sub object.

Flags: Read


The “setup” property

  “setup”                    BtSetup *

songs setup sub object.

Flags: Read


The “song-info” property

  “song-info”                BtSongInfo *

songs metadata sub object.

Flags: Read


The “song-io” property

  “song-io”                  BtSongIO *

the song-io plugin during i/o operations.

Flags: Read / Write


The “wavetable” property

  “wavetable”                BtWavetable *

songs wavetable sub object.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-core/html/pr01.html0000644042355400116100000000423112640736116022625 0ustar00ensoniceng00000000000000 Introduction: Buzztrax Bt-Core Reference Manual

Introduction

Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch.

The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures.

buzztrax-0.10.2/docs/reference/bt-core/html/up.png0000644042355400116100000000040412640736116022305 0ustar00ensoniceng00000000000000PNG  IHDRabKGD pHYs B(xtIME IDAT81 @D{xa;$]r =JR1, Sd-}0̟oL:m-QO[ k TzMޠL,:ךu!tK; Pp Ot@l/̵*l}IENDB`buzztrax-0.10.2/docs/reference/bt-core/html/BtSongIOBuzz.html0000644042355400116100000000767012640736116024354 0ustar00ensoniceng00000000000000 BtSongIOBuzz: Buzztrax Bt-Core Reference Manual

BtSongIOBuzz

BtSongIOBuzz — class for song input in buzz bmx and bmw format

Types and Values

struct BtSongIOBuzz

Object Hierarchy

    GObject
    ╰── BtSongIO
        ╰── BtSongIOBuzz

Includes

#include <libbtcore/core.h>

Description

This BtSongIO plugin implements loading and of songs made using Buzz. Both songs with and without embedded waveforms are supported. Most aspects of the file-format are implemented.

Functions

Types and Values

struct BtSongIOBuzz

struct BtSongIOBuzz;

object for song input and output in buzz zip/xml format

buzztrax-0.10.2/docs/reference/bt-core/html/BtWire.html0000644042355400116100000005410412640736116023243 0ustar00ensoniceng00000000000000 BtWire: Buzztrax Bt-Core Reference Manual

BtWire

BtWire — class for a connection of two BtMachines

Properties

gpointer analyzers Read / Write
gpointer construction-error Read / Write / Construct Only
BtMachine * dst Read / Write / Construct Only
GstElement * gain Read
gulong num-params Read / Write
GstElement * pan Read
gchar * pretty-name Read
gpointer properties Read
BtSong * song Read / Write / Construct Only
BtMachine * src Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBin
                    ╰── BtWire

Implemented Interfaces

BtWire implements GstChildProxy and BtPersistence.

Includes

#include <libbtcore/core.h>

Description

Abstracts connection between two BtMachines. After creation, the elements are connected. In contrast to directly wiring GstElements this insert needed conversion elements automatically.

Furthermore each wire has a volume and if possible panorama/balance element. Volume and panorama/balance can be sequenced like machine parameters in wire groups of the BtPattern objects on the target machine (that means that source-machines don't have the controls).

Functions

bt_wire_get_param_group ()

BtParameterGroup *
bt_wire_get_param_group (const BtWire * const self);

Get the parameter group.

Parameters

self

the machine

 

Returns

the BtParameterGroup or NULL.

[transfer none]


bt_wire_new ()

BtWire *
bt_wire_new (const BtSong *song,
             const BtMachine *src_machine,
             const BtMachine *dst_machine,
             GError **err);

Create a new instance. The new wire is automatically added to a songs setup. You don't need to call

bt_setup_add_wire(setup,wire);.

Parameters

song

the song the new instance belongs to

 

src_machine

the data source (BtSourceMachine or BtProcessorMachine)

 

dst_machine

the data sink (BtSinkMachine or BtProcessorMachine)

 

err

inform about failed instance creation

 

Returns

the new instance or NULL in case of an error


bt_wire_reconnect ()

gboolean
bt_wire_reconnect (BtWire *self);

Call this method after internal elements in a BtMachine have changed, but failed to link.

Parameters

self

the wire to re-link

 

Returns

TRUE for success and FALSE otherwise


bt_wire_can_link ()

gboolean
bt_wire_can_link (const BtMachine * const src,
                  const BtMachine * const dst);

Check if we don't have such a wire yet and if we can connect the machines. We can connect if the data flow direction is correct (sources to effects to sinks) and if the new connect is not creating cycles in the graph.

Parameters

src

the src machine

 

dst

the dst machine

 

Returns

TRUE if we can link the machines

Types and Values

BT_WIRE_MAX_NUM_PARAMS

#define BT_WIRE_MAX_NUM_PARAMS 2

Maximum number of parameters per wire.


struct BtWire

struct BtWire;

A link between two BtMachine instances.

Property Details

The “analyzers” property

  “analyzers”                gpointer

list of wire analyzers.

Flags: Read / Write


The “construction-error” property

  “construction-error”       gpointer

signal failed instance creation.

Flags: Read / Write / Construct Only


The “dst” property

  “dst”                      BtMachine *

dst machine object, the wire links to.

Flags: Read / Write / Construct Only


The “gain” property

  “gain”                     GstElement *

the gain element for the connection.

Flags: Read


The “num-params” property

  “num-params”               gulong

number of params for the wire.

Flags: Read / Write

Allowed values: <= 2


The “pan” property

  “pan”                      GstElement *

the panorama element for the connection.

Flags: Read


The “pretty-name” property

  “pretty-name”              gchar *

pretty-printed name for display purposes.

Flags: Read

Default value: NULL


The “properties” property

  “properties”               gpointer

list of wire properties.

Flags: Read


The “song” property

  “song”                     BtSong *

the song object, the wire belongs to.

Flags: Read / Write / Construct Only


The “src” property

  “src”                      BtMachine *

src machine object, the wire links to.

Flags: Read / Write / Construct Only

buzztrax-0.10.2/docs/reference/bt-core/html/api-index.html0000644042355400116100000034057112640736116023733 0ustar00ensoniceng00000000000000 API Index: Buzztrax Bt-Core Reference Manual

API Index

A

BtApplication, struct in BtApplication
BtApplication:bin, object property in BtApplication
BtApplication:settings, object property in BtApplication
BtAudioSession, struct in BtAudioSession
BtAudioSession:audio-locked, object property in BtAudioSession
BtAudioSession:audio-sink, object property in BtAudioSession
BtAudioSession:audio-sink-device, object property in BtAudioSession
BtAudioSession:audio-sink-name, object property in BtAudioSession
bt_audio_session_new, function in BtAudioSession

B

bt_bin_activate_tee_chain, function in libbtcore
bt_bin_deactivate_tee_chain, function in libbtcore

C

BtChildProxy, struct in BtChildProxy
BtChildProxyInterface, struct in BtChildProxy
bt_child_proxy_get, function in BtChildProxy
bt_child_proxy_get_children_count, function in BtChildProxy
bt_child_proxy_get_child_by_index, function in BtChildProxy
bt_child_proxy_get_child_by_name, function in BtChildProxy
bt_child_proxy_get_property, function in BtChildProxy
bt_child_proxy_get_valist, function in BtChildProxy
bt_child_proxy_lookup, function in BtChildProxy
bt_child_proxy_set, function in BtChildProxy
bt_child_proxy_set_property, function in BtChildProxy
bt_child_proxy_set_valist, function in BtChildProxy
BtCmdPattern, struct in BtCmdPattern
BtCmdPattern:command, object property in BtCmdPattern
BtCmdPattern:machine, object property in BtCmdPattern
BtCmdPattern:name, object property in BtCmdPattern
BtCmdPattern:song, object property in BtCmdPattern
bt_cmd_pattern_new, function in BtCmdPattern
bt_cpu_load_get_current, function in libbtcore

D

bt_deinit, function in libbtcore

G

bt_gst_analyzer_get_waittime, function in libbtcore
bt_gst_check_core_elements, function in libbtcore
bt_gst_check_elements, function in libbtcore
bt_gst_debug_pad_link_return, function in libbtcore
bt_gst_element_factory_can_sink_media_type, function in libbtcore
bt_gst_element_factory_get_pad_template, function in libbtcore
bt_gst_level_message_get_aggregated_field, function in libbtcore
bt_gst_registry_get_element_factories_matching_all_categories, function in libbtcore
bt_gst_registry_get_element_names_matching_all_categories, function in libbtcore
bt_gst_try_element, function in libbtcore
bt_g_object_idle_add, function in libbtcore
G_OBJECT_LOG_REF_COUNT, macro in libbtcore
G_OBJECT_REF_COUNT, macro in libbtcore
G_OBJECT_REF_COUNT_FMT, macro in libbtcore
g_object_try_ref, macro in libbtcore
g_object_try_unref, macro in libbtcore
g_object_try_weak_ref, macro in libbtcore
g_object_try_weak_unref, macro in libbtcore
bt_g_signal_connect, function in libbtcore
bt_g_type_get_base_type, function in libbtcore

I

bt_init, function in libbtcore
bt_init_add_option_groups, function in libbtcore
bt_init_check, function in libbtcore
bt_init_get_option_group, function in libbtcore
BT_IS_GVALUE, macro in libbtcore
BT_IS_STRING, macro in libbtcore

M

BtMachine, struct in BtMachine
BtMachine::pattern-added, object signal in BtMachine
BtMachine::pattern-removed, object signal in BtMachine
BtMachine:adder-convert, object property in BtMachine
BtMachine:construction-error, object property in BtMachine
BtMachine:global-params, object property in BtMachine
BtMachine:id, object property in BtMachine
BtMachine:input-gain, object property in BtMachine
BtMachine:input-post-level, object property in BtMachine
BtMachine:input-pre-level, object property in BtMachine
BtMachine:machine, object property in BtMachine
BtMachine:output-gain, object property in BtMachine
BtMachine:output-post-level, object property in BtMachine
BtMachine:output-pre-level, object property in BtMachine
BtMachine:patterns, object property in BtMachine
BtMachine:plugin-name, object property in BtMachine
BtMachine:prefs-params, object property in BtMachine
BtMachine:pretty-name, object property in BtMachine
BtMachine:properties, object property in BtMachine
BtMachine:song, object property in BtMachine
BtMachine:state, object property in BtMachine
BtMachine:voice-params, object property in BtMachine
BtMachine:voices, object property in BtMachine
BtMachineClass, struct in BtMachine
BtMachineState, enum in BtMachine
bt_machine_activate_adder, function in BtMachine
bt_machine_activate_spreader, function in BtMachine
bt_machine_add_pattern, function in BtMachine
bt_machine_bind_parameter_control, function in BtMachine
bt_machine_bind_poly_parameter_control, function in BtMachine
bt_machine_enable_input_gain, function in BtMachine
bt_machine_enable_input_post_level, function in BtMachine
bt_machine_enable_input_pre_level, function in BtMachine
bt_machine_enable_output_gain, function in BtMachine
bt_machine_enable_output_post_level, function in BtMachine
bt_machine_enable_output_pre_level, function in BtMachine
bt_machine_get_global_param_group, function in BtMachine
bt_machine_get_pattern_by_index, function in BtMachine
bt_machine_get_pattern_by_name, function in BtMachine
bt_machine_get_prefs_param_group, function in BtMachine
bt_machine_get_unique_pattern_name, function in BtMachine
bt_machine_get_voice_param_group, function in BtMachine
bt_machine_get_wire_by_dst_machine, function in BtMachine
bt_machine_handles_waves, function in BtMachine
bt_machine_has_active_adder, function in BtMachine
bt_machine_has_active_spreader, function in BtMachine
bt_machine_has_patterns, function in BtMachine
bt_machine_is_polyphonic, function in BtMachine
bt_machine_randomize_parameters, function in BtMachine
bt_machine_remove_pattern, function in BtMachine
bt_machine_reset_parameters, function in BtMachine
bt_machine_set_param_defaults, function in BtMachine
bt_machine_unbind_parameter_control, function in BtMachine
bt_machine_unbind_parameter_controls, function in BtMachine
bt_major_version, variable in libbtcore
bt_micro_version, variable in libbtcore
bt_minor_version, variable in libbtcore

P

BtParameterGroup, struct in BtParameterGroup
BtParameterGroup:machine, object property in BtParameterGroup
BtParameterGroup:num-params, object property in BtParameterGroup
BtParameterGroup:params, object property in BtParameterGroup
BtParameterGroup:parents, object property in BtParameterGroup
BtParameterGroup:song, object property in BtParameterGroup
bt_parameter_group_describe_param_value, function in BtParameterGroup
bt_parameter_group_get_param_details, function in BtParameterGroup
bt_parameter_group_get_param_index, function in BtParameterGroup
bt_parameter_group_get_param_name, function in BtParameterGroup
bt_parameter_group_get_param_no_value, function in BtParameterGroup
bt_parameter_group_get_param_parent, function in BtParameterGroup
bt_parameter_group_get_param_spec, function in BtParameterGroup
bt_parameter_group_get_param_type, function in BtParameterGroup
bt_parameter_group_get_trigger_param_index, function in BtParameterGroup
bt_parameter_group_get_wave_param_index, function in BtParameterGroup
bt_parameter_group_is_param_no_value, function in BtParameterGroup
bt_parameter_group_is_param_trigger, function in BtParameterGroup
bt_parameter_group_new, function in BtParameterGroup
bt_parameter_group_randomize_values, function in BtParameterGroup
bt_parameter_group_reset_values, function in BtParameterGroup
bt_parameter_group_set_param_default, function in BtParameterGroup
bt_parameter_group_set_param_defaults, function in BtParameterGroup
bt_parameter_group_set_param_value, function in BtParameterGroup
BtPattern, struct in BtPattern
BtPattern::group-changed, object signal in BtPattern
BtPattern::param-changed, object signal in BtPattern
BtPattern::pattern-changed, object signal in BtPattern
BtPattern:copy-source, object property in BtPattern
BtPattern:length, object property in BtPattern
BtPattern:voices, object property in BtPattern
BtPatternCmd, enum in BtCmdPattern
BtPatternControlSource, struct in BtPatternControlSource
BtPatternControlSource:default-value, object property in BtPatternControlSource
BtPatternControlSource:machine, object property in BtPatternControlSource
BtPatternControlSource:parameter-group, object property in BtPatternControlSource
BtPatternControlSource:sequence, object property in BtPatternControlSource
BtPatternControlSource:song-info, object property in BtPatternControlSource
bt_pattern_blend_columns, function in BtPattern
bt_pattern_clear_columns, function in BtPattern
bt_pattern_control_source_new, function in BtPatternControlSource
bt_pattern_copy, function in BtPattern
bt_pattern_delete_row, function in BtPattern
bt_pattern_flip_columns, function in BtPattern
bt_pattern_get_global_event, function in BtPattern
bt_pattern_get_global_event_data, function in BtPattern
bt_pattern_get_global_group, function in BtPattern
bt_pattern_get_group_by_parameter_group, function in BtPattern
bt_pattern_get_voice_event, function in BtPattern
bt_pattern_get_voice_event_data, function in BtPattern
bt_pattern_get_voice_group, function in BtPattern
bt_pattern_get_wire_event, function in BtPattern
bt_pattern_get_wire_event_data, function in BtPattern
bt_pattern_get_wire_group, function in BtPattern
bt_pattern_insert_row, function in BtPattern
bt_pattern_new, function in BtPattern
bt_pattern_randomize_columns, function in BtPattern
bt_pattern_range_randomize_columns, function in BtPattern
bt_pattern_serialize_columns, function in BtPattern
bt_pattern_set_global_event, function in BtPattern
bt_pattern_set_voice_event, function in BtPattern
bt_pattern_set_wire_event, function in BtPattern
bt_pattern_test_global_event, function in BtPattern
bt_pattern_test_tick, function in BtPattern
bt_pattern_test_voice_event, function in BtPattern
bt_pattern_test_wire_event, function in BtPattern
BtPersistence, struct in BtPersistence
BtPersistenceInterface, struct in BtPersistence
bt_persistence_collect_hashtable_entries, function in BtPersistence
bt_persistence_load, function in BtPersistence
bt_persistence_load_hashtable, function in BtPersistence
bt_persistence_save, function in BtPersistence
bt_persistence_save_hashtable, function in BtPersistence
bt_persistence_save_list, function in BtPersistence
BtProcessorMachine, struct in BtProcessorMachine
BtProcessorMachinePatternIndex, enum in BtProcessorMachine
bt_processor_machine_new, function in BtProcessorMachine

R

return_if_disposed, macro in libbtcore
return_val_if_disposed, macro in libbtcore

S

safe_string, macro in libbtcore
BtSequence, struct in BtSequence
BtSequence::pattern-added, object signal in BtSequence
BtSequence::pattern-removed, object signal in BtSequence
BtSequence::rows-changed, object signal in BtSequence
BtSequence::track-added, object signal in BtSequence
BtSequence::track-removed, object signal in BtSequence
BtSequence:length, object property in BtSequence
BtSequence:loop, object property in BtSequence
BtSequence:loop-end, object property in BtSequence
BtSequence:loop-start, object property in BtSequence
BtSequence:properties, object property in BtSequence
BtSequence:song, object property in BtSequence
BtSequence:toc, object property in BtSequence
BtSequence:tracks, object property in BtSequence
bt_sequence_add_track, function in BtSequence
bt_sequence_delete_full_rows, function in BtSequence
bt_sequence_delete_rows, function in BtSequence
bt_sequence_get_label, function in BtSequence
bt_sequence_get_loop_length, function in BtSequence
bt_sequence_get_machine, function in BtSequence
bt_sequence_get_pattern, function in BtSequence
bt_sequence_get_tick_by_pattern, function in BtSequence
bt_sequence_get_track_by_machine, function in BtSequence
bt_sequence_insert_full_rows, function in BtSequence
bt_sequence_insert_rows, function in BtSequence
bt_sequence_is_pattern_used, function in BtSequence
bt_sequence_limit_play_pos, function in BtSequence
bt_sequence_move_track_left, function in BtSequence
bt_sequence_move_track_right, function in BtSequence
bt_sequence_new, function in BtSequence
bt_sequence_remove_track_by_ix, function in BtSequence
bt_sequence_remove_track_by_machine, function in BtSequence
bt_sequence_set_label, function in BtSequence
bt_sequence_set_pattern, function in BtSequence
bt_sequence_set_pattern_quick, function in BtSequence
BtSettings, struct in BtSettings
BtSettings:audiosink, object property in BtSettings
BtSettings:audiosink-device, object property in BtSettings
BtSettings:channels, object property in BtSettings
BtSettings:coherence-upnp-active, object property in BtSettings
BtSettings:coherence-upnp-port, object property in BtSettings
BtSettings:compact-theme, object property in BtSettings
BtSettings:dark-theme, object property in BtSettings
BtSettings:grid-density, object property in BtSettings
BtSettings:ic-playback-active, object property in BtSettings
BtSettings:ic-playback-spec, object property in BtSettings
BtSettings:jack-transport-master, object property in BtSettings
BtSettings:jack-transport-slave, object property in BtSettings
BtSettings:latency, object property in BtSettings
BtSettings:missing-machines, object property in BtSettings
BtSettings:news-seen, object property in BtSettings
BtSettings:presented-tips, object property in BtSettings
BtSettings:record-folder, object property in BtSettings
BtSettings:sample-folder, object property in BtSettings
BtSettings:sample-rate, object property in BtSettings
BtSettings:show-tips, object property in BtSettings
BtSettings:song-folder, object property in BtSettings
BtSettings:statusbar-hide, object property in BtSettings
BtSettings:system-audiosink, object property in BtSettings
BtSettings:tabs-hide, object property in BtSettings
BtSettings:toolbar-hide, object property in BtSettings
BtSettings:toolbar-style, object property in BtSettings
BtSettings:window-height, object property in BtSettings
BtSettings:window-width, object property in BtSettings
BtSettings:window-xpos, object property in BtSettings
BtSettings:window-ypos, object property in BtSettings
bt_settings_determine_audiosink_name, function in BtSettings
bt_settings_format_ic_playback_spec, function in BtSettings
bt_settings_make, function in BtSettings
bt_settings_parse_ic_playback_spec, function in BtSettings
BtSetup, struct in BtSetup
BtSetup::machine-added, object signal in BtSetup
BtSetup::machine-removed, object signal in BtSetup
BtSetup::wire-added, object signal in BtSetup
BtSetup::wire-removed, object signal in BtSetup
BtSetup:machines, object property in BtSetup
BtSetup:missing-machines, object property in BtSetup
BtSetup:properties, object property in BtSetup
BtSetup:song, object property in BtSetup
BtSetup:wires, object property in BtSetup
bt_setup_add_machine, function in BtSetup
bt_setup_add_wire, function in BtSetup
bt_setup_get_machines_by_type, function in BtSetup
bt_setup_get_machine_by_id, function in BtSetup
bt_setup_get_machine_by_type, function in BtSetup
bt_setup_get_unique_machine_id, function in BtSetup
bt_setup_get_wires_by_dst_machine, function in BtSetup
bt_setup_get_wires_by_src_machine, function in BtSetup
bt_setup_get_wire_by_dst_machine, function in BtSetup
bt_setup_get_wire_by_machines, function in BtSetup
bt_setup_get_wire_by_src_machine, function in BtSetup
bt_setup_new, function in BtSetup
bt_setup_remember_missing_machine, function in BtSetup
bt_setup_remove_machine, function in BtSetup
bt_setup_remove_wire, function in BtSetup
BtSinkBin, struct in BtSinkBin
BtSinkBin:analyzers, object property in BtSinkBin
BtSinkBin:input-gain, object property in BtSinkBin
BtSinkBin:master-volume, object property in BtSinkBin
BtSinkBin:mode, object property in BtSinkBin
BtSinkBin:record-file-name, object property in BtSinkBin
BtSinkBin:record-format, object property in BtSinkBin
BtSinkBinMode, enum in BtSinkBin
BtSinkBinRecordFormat, enum in BtSinkBin
BtSinkMachine, struct in BtSinkMachine
BtSinkMachinePatternIndex, enum in BtSinkMachine
bt_sink_bin_is_record_format_supported, function in BtSinkBin
bt_sink_machine_new, function in BtSinkMachine
BtSong, struct in BtSong
BtSong:app, object property in BtSong
BtSong:bin, object property in BtSong
BtSong:is-idle, object property in BtSong
BtSong:is-playing, object property in BtSong
BtSong:master, object property in BtSong
BtSong:play-pos, object property in BtSong
BtSong:play-rate, object property in BtSong
BtSong:sequence, object property in BtSong
BtSong:setup, object property in BtSong
BtSong:song-info, object property in BtSong
BtSong:song-io, object property in BtSong
BtSong:wavetable, object property in BtSong
BtSongClass, struct in BtSong
BtSongInfo, struct in BtSongInfo
BtSongInfo:author, object property in BtSongInfo
BtSongInfo:bars, object property in BtSongInfo
BtSongInfo:bpm, object property in BtSongInfo
BtSongInfo:change-dts, object property in BtSongInfo
BtSongInfo:create-dts, object property in BtSongInfo
BtSongInfo:file-name, object property in BtSongInfo
BtSongInfo:genre, object property in BtSongInfo
BtSongInfo:info, object property in BtSongInfo
BtSongInfo:name, object property in BtSongInfo
BtSongInfo:song, object property in BtSongInfo
BtSongInfo:taglist, object property in BtSongInfo
BtSongInfo:tick-duration, object property in BtSongInfo
BtSongInfo:tpb, object property in BtSongInfo
BtSongIO, struct in BtSongIO
BtSongIO:data, object property in BtSongIO
BtSongIO:data-len, object property in BtSongIO
BtSongIO:file-name, object property in BtSongIO
BtSongIO:status, object property in BtSongIO
BtSongIOBuzz, struct in BtSongIOBuzz
BtSongIOClass, struct in BtSongIO
BtSongIOError, enum in BtSongIO
BtSongIOFormatInfo, struct in BtSongIO
BtSongIOInit, user_function in BtSongIO
BtSongIOModuleInfo, struct in BtSongIO
BtSongIONative, struct in BtSongIONative
BtSongIONativeBZT, struct in BtSongIONativeBZT
BtSongIONativeBZTClass, struct in BtSongIONativeBZT
BtSongIONativeClass, struct in BtSongIONative
BtSongIONativeXML, struct in BtSongIONativeXML
BtSongIONativeXMLClass, struct in BtSongIONativeXML
bt_song_continue, function in BtSong
bt_song_info_get_change_dts_in_local_tz, function in BtSongInfo
bt_song_info_get_seconds_since_last_saved, function in BtSongInfo
bt_song_info_new, function in BtSongInfo
bt_song_info_tick_to_m_s_ms, function in BtSongInfo
bt_song_info_tick_to_time, function in BtSongInfo
bt_song_info_time_to_m_s_ms, function in BtSongInfo
bt_song_info_time_to_tick, function in BtSongInfo
BT_SONG_IO_ERROR, macro in BtSongIO
bt_song_io_from_data, function in BtSongIO
bt_song_io_from_file, function in BtSongIO
bt_song_io_get_module_info_list, function in BtSongIO
bt_song_io_load, function in BtSongIO
BT_SONG_IO_MODULE_INFO_MAX_FORMATS, macro in BtSongIO
bt_song_io_native_bzt_copy_from_uri, function in BtSongIONativeBZT
bt_song_io_native_bzt_copy_to_fd, function in BtSongIONativeBZT
bt_song_io_native_module_info, variable in BtSongIONative
bt_song_io_save, function in BtSongIO
bt_song_io_virtual_load, user_function in BtSongIO
bt_song_io_virtual_save, user_function in BtSongIO
bt_song_new, function in BtSong
bt_song_pause, function in BtSong
bt_song_play, function in BtSong
bt_song_stop, function in BtSong
bt_song_update_playback_position, function in BtSong
BtSourceMachine, struct in BtSourceMachine
BtSourceMachinePatternIndex, enum in BtSourceMachine
bt_source_machine_new, function in BtSourceMachine
bt_str_format_double, function in libbtcore
bt_str_format_enum, function in libbtcore
bt_str_format_gvalue, function in libbtcore
bt_str_format_long, function in libbtcore
bt_str_format_uchar, function in libbtcore
bt_str_format_ulong, function in libbtcore
bt_str_parse_enum, function in libbtcore
bt_str_parse_gvalue, function in libbtcore

V

BtValueGroup, struct in BtValueGroup
BtValueGroup::group-changed, object signal in BtValueGroup
BtValueGroup::param-changed, object signal in BtValueGroup
BtValueGroup:length, object property in BtValueGroup
BtValueGroup:parameter-group, object property in BtValueGroup
bt_value_group_blend_column, function in BtValueGroup
bt_value_group_blend_columns, function in BtValueGroup
bt_value_group_clear_column, function in BtValueGroup
bt_value_group_clear_columns, function in BtValueGroup
bt_value_group_copy, function in BtValueGroup
bt_value_group_delete_full_row, function in BtValueGroup
bt_value_group_delete_row, function in BtValueGroup
bt_value_group_deserialize_column, function in BtValueGroup
bt_value_group_flip_column, function in BtValueGroup
bt_value_group_flip_columns, function in BtValueGroup
bt_value_group_get_event, function in BtValueGroup
bt_value_group_get_event_data, function in BtValueGroup
bt_value_group_insert_full_row, function in BtValueGroup
bt_value_group_insert_row, function in BtValueGroup
bt_value_group_new, function in BtValueGroup
bt_value_group_randomize_column, function in BtValueGroup
bt_value_group_randomize_columns, function in BtValueGroup
bt_value_group_range_randomize_column, function in BtValueGroup
bt_value_group_range_randomize_columns, function in BtValueGroup
bt_value_group_serialize_column, function in BtValueGroup
bt_value_group_serialize_columns, function in BtValueGroup
bt_value_group_set_event, function in BtValueGroup
bt_value_group_test_event, function in BtValueGroup
bt_value_group_test_tick, function in BtValueGroup

W

BtWave, struct in BtWave
BtWave:channels, object property in BtWave
BtWave:index, object property in BtWave
BtWave:loop-mode, object property in BtWave
BtWave:name, object property in BtWave
BtWave:song, object property in BtWave
BtWave:uri, object property in BtWave
BtWave:volume, object property in BtWave
BtWave:wavelevels, object property in BtWave
BtWavelevel, struct in BtWavelevel
BtWavelevel:data, object property in BtWavelevel
BtWavelevel:length, object property in BtWavelevel
BtWavelevel:loop-end, object property in BtWavelevel
BtWavelevel:loop-start, object property in BtWavelevel
BtWavelevel:rate, object property in BtWavelevel
BtWavelevel:root-note, object property in BtWavelevel
BtWavelevel:song, object property in BtWavelevel
BtWavelevel:wave, object property in BtWavelevel
BT_WAVELEVEL_DEFAULT_ROOT_NOTE, macro in BtWavelevel
bt_wavelevel_new, function in BtWavelevel
BtWaveLoopMode, enum in BtWave
BtWavetable, struct in BtWavetable
BtWavetable::wave-added, object signal in BtWavetable
BtWavetable::wave-removed, object signal in BtWavetable
BtWavetable:missing-waves, object property in BtWavetable
BtWavetable:song, object property in BtWavetable
BtWavetable:waves, object property in BtWavetable
bt_wavetable_add_wave, function in BtWavetable
bt_wavetable_get_wave_by_index, function in BtWavetable
bt_wavetable_new, function in BtWavetable
bt_wavetable_remember_missing_wave, function in BtWavetable
bt_wavetable_remove_wave, function in BtWavetable
bt_wave_add_wavelevel, function in BtWave
bt_wave_get_level_by_index, function in BtWave
bt_wave_new, function in BtWave
BtWire, struct in BtWire
BtWire:analyzers, object property in BtWire
BtWire:construction-error, object property in BtWire
BtWire:dst, object property in BtWire
BtWire:gain, object property in BtWire
BtWire:num-params, object property in BtWire
BtWire:pan, object property in BtWire
BtWire:pretty-name, object property in BtWire
BtWire:properties, object property in BtWire
BtWire:song, object property in BtWire
BtWire:src, object property in BtWire
bt_wire_can_link, function in BtWire
bt_wire_get_param_group, function in BtWire
BT_WIRE_MAX_NUM_PARAMS, macro in BtWire
bt_wire_new, function in BtWire
bt_wire_reconnect, function in BtWire
buzztrax-0.10.2/docs/reference/bt-core/html/BtWave.html0000644042355400116100000005030412640736116023235 0ustar00ensoniceng00000000000000 BtWave: Buzztrax Bt-Core Reference Manual

BtWave

BtWave — one BtWavetable entry that keeps a list of BtWavelevels

Properties

guint channels Read / Write / Construct
gulong index Read / Write / Construct
BtWaveLoopMode loop-mode Read / Write / Construct
gchar * name Read / Write / Construct
BtSong * song Read / Write / Construct Only
gchar * uri Read / Write / Construct
gdouble volume Read / Write / Construct
gpointer wavelevels Read

Types and Values

struct BtWave
enum BtWaveLoopMode

Object Hierarchy

    GEnum
    ╰── BtWaveLoopMode
    GObject
    ╰── BtWave

Implemented Interfaces

BtWave implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

Represents one instrument. Contains one or more BtWavelevels.

Functions

bt_wave_add_wavelevel ()

gboolean
bt_wave_add_wavelevel (const BtWave * const self,
                       const BtWavelevel * const wavelevel);

Add the supplied wavelevel to the wave. This is automatically done by bt_wavelevel_new().

Parameters

self

the wavetable to add the new wavelevel to

 

wavelevel

the new wavelevel instance

 

Returns

TRUE for success, FALSE otheriwse


bt_wave_get_level_by_index ()

BtWavelevel *
bt_wave_get_level_by_index (const BtWave * const self,
                            const gulong index);

Search the wave for a wavelevel by the supplied index. The wavelevel must have been added previously to this wave with bt_wave_add_wavelevel().

Parameters

self

the wave to search for the wavelevel

 

index

the index of the wavelevel

 

Returns

BtWavelevel instance or NULL if not found. Unref the wavelevel, when done with it.

[transfer full]


bt_wave_new ()

BtWave *
bt_wave_new (const BtSong * const song,
             const gchar * const name,
             const gchar * const uri,
             const gulong index,
             const gdouble volume,
             const BtWaveLoopMode loop_mode,
             const guint channels);

Create a new instance

Parameters

song

the song the new instance belongs to

 

name

the display name for the new wave

 

uri

the location of the sample data

 

index

the list slot for the new wave

 

volume

the volume of the wave

 

loop_mode

loop playback mode

 

channels

number of audio channels

 

Returns

the new instance or NULL in case of an error

Types and Values

struct BtWave

struct BtWave;

A single waveform.


enum BtWaveLoopMode

BtWave clips can be played using several loop modes.

Members

BT_WAVE_LOOP_MODE_OFF

no loop

 

BT_WAVE_LOOP_MODE_FORWARD

forward looping

 

BT_WAVE_LOOP_MODE_PINGPONG

forward/backward looping

 

Property Details

The “channels” property

  “channels”                 guint

number of channels in the sample.

Flags: Read / Write / Construct

Allowed values: <= 2

Default value: 0


The “index” property

  “index”                    gulong

The index of the wave in the wavtable.

Flags: Read / Write / Construct

Allowed values: >= 1


The “loop-mode” property

  “loop-mode”                BtWaveLoopMode

mode of loop playback.

Flags: Read / Write / Construct

Default value: off


The “name” property

  “name”                     gchar *

The name of the wave.

Flags: Read / Write / Construct

Default value: "unamed wave"


The “song” property

  “song”                     BtSong *

Set song object, the wave belongs to.

Flags: Read / Write / Construct Only


The “uri” property

  “uri”                      gchar *

The uri of the wave.

Flags: Read / Write / Construct

Default value: NULL


The “volume” property

  “volume”                   gdouble

The volume of the wave in the wavtable.

Flags: Read / Write / Construct

Allowed values: [0,1]

Default value: 1


The “wavelevels” property

  “wavelevels”               gpointer

A copy of the list of wavelevels.

Flags: Read

buzztrax-0.10.2/docs/reference/bt-core/html/pt02.html0000644042355400116100000000457612640736116022644 0ustar00ensoniceng00000000000000 Part III. Appendix: Buzztrax Bt-Core Reference Manual buzztrax-0.10.2/docs/reference/bt-core/html/pt01.html0000644042355400116100000000333412640736116022632 0ustar00ensoniceng00000000000000 Part I. Overview: Buzztrax Bt-Core Reference Manual

Part I. Overview

Table of Contents

Conventions
buzztrax-0.10.2/docs/reference/bt-core/html/BtSongIONativeBZT.html0000644042355400116100000002557012640736116025227 0ustar00ensoniceng00000000000000 BtSongIONativeBZT: Buzztrax Bt-Core Reference Manual

BtSongIONativeBZT

BtSongIONativeBZT — class for song input and output in builtin native format

Types and Values

Object Hierarchy

    GObject
    ╰── BtSongIO
        ╰── BtSongIONative
            ╰── BtSongIONativeBZT

Includes

#include <libbtcore/core.h>

Description

This internal BtSongIONative module implements loading and saving of an own xml format with externals. The format is an archive, that contains an XML file and optionally binary data, such as audio samples.

Functions

bt_song_io_native_bzt_copy_from_uri ()

gboolean
bt_song_io_native_bzt_copy_from_uri (const BtSongIONativeBZT * const self,
                                     const gchar *file_name,
                                     const gchar *uri);

Copies the file specified by uri to file_name into the song file.

This is a helper for BtSong persistence.

Parameters

self

the song-plugin

 

file_name

the path to the file inside the song

 

uri

location of the source file

 

Returns

TRUE on success


bt_song_io_native_bzt_copy_to_fd ()

gboolean
bt_song_io_native_bzt_copy_to_fd (const BtSongIONativeBZT * const self,
                                  const gchar *file_name,
                                  gint fd);

Copies the file specified by file_name from the song file to the fd .

This is a helper for BtSong persistence.

Parameters

self

the song-plugin

 

file_name

the path to the file inside the song

 

fd

a file-descriptor of an opened file to copy file_name to

 

Returns

TRUE on success

Types and Values

struct BtSongIONativeBZT

struct BtSongIONativeBZT;

object for song input and output in native zip/xml format


struct BtSongIONativeBZTClass

struct BtSongIONativeBZTClass {
  const BtSongIONativeClass parent;
};

Class for song input and output in native zip/xml format

Members

const BtSongIONativeClass parent;

parent class type

 
buzztrax-0.10.2/docs/reference/bt-core/buzztrax-core.pdf0000644042355400116100000472346712640736116023552 0ustar00ensoniceng00000000000000%PDF-1.4 % 1 0 obj << /S /GoTo /D [2 0 R /FitH] >> endobj 4 0 obj << /Length 228 /Filter /FlateDecode >> stream xڝ;k@SJ׻{ v"uƅe7]fcWuRӹvH[XG.V1O/H,r潜hE}ܝS<۶kQ>4K/Wi1Fȱb96./%${ .*A-WM-dbpy&]Y{> endobj 5 0 obj << /D [2 0 R /XYZ -16.307 878.039 null] >> endobj 8 0 obj << /D [2 0 R /XYZ 56.693 761.903 null] >> endobj 9 0 obj << /D [2 0 R /XYZ 56.693 761.903 null] >> endobj 3 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 14 0 obj << /Length 965 /Filter /FlateDecode >> stream xřYO1)Hxw HdiBġ"P+>}g/ʤ&o*S(mEѡNt 3q?<ݞmUzgqwnn%a.IċbL';:@?*QmUX3oW(ibˑW‚_ikGիY>H4(<]2l=V A~07QZ_bhV[!J̩VIJJ^0{QuQdL&VG[B~%B;)FbŬbJ|4*|/[m?iG#xf.hDJy"3I#`4r(%fT1Ŝ2B=Pݲ0WsjnOnbx]{ Dƒ FS15Ajィ%@=Ѹh\a4zC2i{|ᾕǣvt'W6D#b|f`VSFhOER/=o4/ڟwFI| ÆP/K#H2M$W ;yna0[#h$՞.:tɀT}2lT /w_5h͏m T`_(%2_Q;p7 FH2MCK^Ro !P"3CҚEIULoiyy8.۰AWNKert](i$E:cR!G0 <de> endobj 15 0 obj << /D [13 0 R /XYZ -11.232 878.039 null] >> endobj 12 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F85 16 0 R >> /ProcSet [ /PDF /Text ] >> endobj 49 0 obj << /Length 881 /Filter /FlateDecode >> stream xo0>&ZV5.U4)H@Hmnl%{?އmXNp(D  EAt`0[Kw~~. GY57MG|s{0fg%R+h=,b#q\ur>Μ{o[J|\^!п#H :7Gb@H=BǬҲhT` uw|Yt=|r?=xQ^}>c|wʼnӘUk&ղ3}@/DǴZnZYZ\(tsK~3o{Lϡؘy49qtkfҗ[K:kaqŋؙ3 XFXϻ~.6L7WK3!mϻɆ> endobj 17 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [559.955 578.999 567.925 589.228] /A << /S /GoTo /D (part.1) >> >> endobj 18 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [560.952 551.192 567.925 560.048] /A << /S /GoTo /D (chapter.1) >> >> endobj 19 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [559.955 510.788 567.925 521.161] /A << /S /GoTo /D (part.2) >> >> endobj 20 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [560.952 483.005 567.925 491.982] /A << /S /GoTo /D (chapter.2) >> >> endobj 21 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [560.952 465.181 567.925 474.028] /A << /S /GoTo /D (section.2.1) >> >> endobj 22 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 447.218 567.925 456.184] /A << /S /GoTo /D (section.2.2) >> >> endobj 23 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 429.493 567.925 438.34] /A << /S /GoTo /D (section.2.3) >> >> endobj 24 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 411.748 567.925 420.496] /A << /S /GoTo /D (section.2.4) >> >> endobj 25 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 393.805 567.925 402.651] /A << /S /GoTo /D (section.2.5) >> >> endobj 26 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 375.961 567.925 384.807] /A << /S /GoTo /D (section.2.6) >> >> endobj 27 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 348.134 567.925 357.11] /A << /S /GoTo /D (chapter.3) >> >> endobj 28 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 330.31 567.925 339.156] /A << /S /GoTo /D (section.3.1) >> >> endobj 29 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 312.466 567.925 321.312] /A << /S /GoTo /D (section.3.2) >> >> endobj 30 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 294.622 567.925 303.468] /A << /S /GoTo /D (section.3.3) >> >> endobj 31 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 276.777 567.925 285.624] /A << /S /GoTo /D (section.3.4) >> >> endobj 32 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 258.933 567.925 267.78] /A << /S /GoTo /D (section.3.5) >> >> endobj 33 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 241.089 567.925 249.936] /A << /S /GoTo /D (section.3.6) >> >> endobj 34 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 223.125 567.925 232.092] /A << /S /GoTo /D (section.3.7) >> >> endobj 35 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [555.97 205.281 567.925 214.248] /A << /S /GoTo /D (section.3.8) >> >> endobj 36 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 187.557 567.925 196.403] /A << /S /GoTo /D (section.3.9) >> >> endobj 37 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 169.812 567.925 178.559] /A << /S /GoTo /D (section.3.10) >> >> endobj 38 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 151.868 567.925 160.715] /A << /S /GoTo /D (section.3.11) >> >> endobj 39 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 134.024 567.925 142.871] /A << /S /GoTo /D (section.3.12) >> >> endobj 40 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 116.18 567.925 125.027] /A << /S /GoTo /D (section.3.13) >> >> endobj 41 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 98.336 567.925 107.183] /A << /S /GoTo /D (section.3.14) >> >> endobj 42 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 80.492 567.925 89.339] /A << /S /GoTo /D (section.3.15) >> >> endobj 50 0 obj << /D [48 0 R /XYZ -16.307 878.039 null] >> endobj 51 0 obj << /D [48 0 R /XYZ 56.693 761.903 null] >> endobj 47 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 91 0 obj << /Length 626 /Filter /FlateDecode >> stream xKs0|  EXwjי&̴SO&;N I|azpAvjQ4FNtEXoTDYuf(Ayx~.)\ҰS<7Mp~{d4OO"U wF'C {H[Y{w(kj-.Oe%;ь(Xa*² kdhD B7ۀwLUE/@ JLE.ibX׻OӈE?@ ~| ^$׎9Ђ>fкʶ+@I/YkV']ֶs0X"̨3u9^ILX r-ۥ2aJ< %LaUn¼S sRLV2-c"!Yl{2-Cq 9^>8rԍ;<}GVl+%I6(u\+W]&O'BvC5b$ίÏ4O*}8Qֈ?M%;&.UlVZ4˼tvͭ]Kig5b+mt/t/ endstream endobj 90 0 obj << /Type /Page /Contents 91 0 R /Resources 89 0 R /MediaBox [0 0 595.276 841.89] /Parent 11 0 R /Annots [ 43 0 R 44 0 R 45 0 R 46 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R ] >> endobj 43 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 750.844 567.925 759.691] /A << /S /GoTo /D (section.3.16) >> >> endobj 44 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 732.912 567.925 741.758] /A << /S /GoTo /D (section.3.17) >> >> endobj 45 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 714.979 567.925 723.825] /A << /S /GoTo /D (section.3.18) >> >> endobj 46 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 697.046 567.925 705.893] /A << /S /GoTo /D (section.3.19) >> >> endobj 79 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 669.131 567.925 678.107] /A << /S /GoTo /D (chapter.4) >> >> endobj 80 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 651.218 567.925 660.065] /A << /S /GoTo /D (section.4.1) >> >> endobj 81 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 633.285 567.925 642.132] /A << /S /GoTo /D (section.4.2) >> >> endobj 82 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 615.352 567.925 624.199] /A << /S /GoTo /D (section.4.3) >> >> endobj 83 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 597.42 567.925 606.266] /A << /S /GoTo /D (section.4.4) >> >> endobj 84 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 579.487 567.925 588.334] /A << /S /GoTo /D (section.4.5) >> >> endobj 85 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [548 539.094 567.925 549.467] /A << /S /GoTo /D (part.3) >> >> endobj 86 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 511.223 567.925 520.199] /A << /S /GoTo /D (chapter.5) >> >> endobj 87 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [550.989 483.327 567.925 492.304] /A << /S /GoTo /D (chapter.6) >> >> endobj 88 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [548 442.955 567.925 453.328] /A << /S /GoTo /D (chapter.7) >> >> endobj 92 0 obj << /D [90 0 R /XYZ -11.232 878.039 null] >> endobj 89 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 110 0 obj << /Length 647 /Filter /FlateDecode >> stream xڝT9s +(,Fhu;Id; ЊX B_!{q{ACrqUmE+tQY-P:ZСrhIKGS UCPVEKJ\K">z!NGP(;:v޷ Zʜ`ZT{B΋irD).HCϪ *Vs(Iup+o@Юܗ_}4gEz/ y\̳6 >Z{#DFtr2ej5>g8 ;I/PT.Nv^[1'j ^荞7įq[?LM:I1J~1:_[8Y:,WzQ̆mܗu]Ly즓719nr^ġtȬtF0~TR[er f2ڀ{cys'um3H50Z輢>=-?bf endstream endobj 109 0 obj << /Type /Page /Contents 110 0 R /Resources 108 0 R /MediaBox [0 0 595.276 841.89] /Parent 11 0 R /Annots [ 107 0 R ] >> endobj 107 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [277.725 558.72 352.834 569.624] /Subtype/Link/A<> >> endobj 111 0 obj << /D [109 0 R /XYZ -16.307 878.039 null] >> endobj 112 0 obj << /D [109 0 R /XYZ 56.693 761.903 null] >> endobj 108 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 115 0 obj << /Length 257 /Filter /FlateDecode >> stream xڝPn0 7ڃJ$ju P-`$rP IQI|}%;E;t"-wnlVl2g^hCY=7}Ѕ>=]j982V%+KGEᎳTD*bH$X3#rH~W,w8IZMH&:\Q~rxtnСe,D }zOo> endobj 116 0 obj << /D [114 0 R /XYZ -16.307 878.039 null] >> endobj 53 0 obj << /D [114 0 R /XYZ 56.693 557.487 null] >> endobj 113 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 119 0 obj << /Length 930 /Filter /FlateDecode >> stream xڥVYs6~ׯ#٩`m:he:7IHDC*+ɯ Z z:탍bow)FvVכ -R͖$Ygɦ"OZ(]j3mu;&yyNPM!ygMvX )QZ!88.Uߜ<=> endobj 120 0 obj << /D [118 0 R /XYZ -11.232 878.039 null] >> endobj 54 0 obj << /D [118 0 R /XYZ 56.693 761.903 null] >> endobj 121 0 obj << /D [118 0 R /XYZ 56.693 566.635 null] >> endobj 122 0 obj << /D [118 0 R /XYZ 56.693 540.787 null] >> endobj 123 0 obj << /D [118 0 R /XYZ 56.693 520.862 null] >> endobj 125 0 obj << /D [118 0 R /XYZ 56.693 488.981 null] >> endobj 126 0 obj << /D [118 0 R /XYZ 56.693 457.101 null] >> endobj 117 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 130 0 obj << /Length 256 /Filter /FlateDecode >> stream xڝPN@+ wW GB .Ja%6Mrsgjou33OjD N9hzN8=AMV]qhBY̪Xn^^>K{ȷͪ\2GYa%8u{yD1k$Ql&0|N#XBB露ɆbXQf9agh"8Ca$Vpa]ߵgS)ʏ"%$bB endstream endobj 129 0 obj << /Type /Page /Contents 130 0 R /Resources 128 0 R /MediaBox [0 0 595.276 841.89] /Parent 127 0 R >> endobj 131 0 obj << /D [129 0 R /XYZ -16.307 878.039 null] >> endobj 55 0 obj << /D [129 0 R /XYZ 56.693 557.487 null] >> endobj 128 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 139 0 obj << /Length 726 /Filter /FlateDecode >> stream xڕTKs0Wh`׏I-C;8h8g)p$=91{;F5 cƃX%p>.E wrj;Tkrv -€egd\<Ρ7ęeš тSi'^^}A?*6|l!/Ԝb8r'kiЪHrrG4.i491,rWՉ0kW~GMbS xgL %t'ILL7o6 endstream endobj 138 0 obj << /Type /Page /Contents 139 0 R /Resources 137 0 R /MediaBox [0 0 595.276 841.89] /Parent 127 0 R /Annots [ 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R ] >> endobj 132 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [385.081 482.171 430.231 493.075] /Subtype/Link/A<> >> endobj 133 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.411 470.216 136.005 481.12] /A << /S /GoTo /D (conventions) >> >> endobj 134 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [279.966 452.283 315.711 463.187] /A << /S /GoTo /D (GObject) >> >> endobj 135 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [426.203 452.283 484.653 463.187] /A << /S /GoTo /D (BtApplication) >> >> endobj 136 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [502.372 452.283 534.262 463.187] /A << /S /GoTo /D (BtSong) >> >> endobj 140 0 obj << /D [138 0 R /XYZ -11.232 878.039 null] >> endobj 141 0 obj << /D [138 0 R /XYZ 56.693 761.903 null] >> endobj 137 0 obj << /Font << /F91 52 0 R /F79 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 216 0 obj << /Length 1871 /Filter /FlateDecode >> stream xڵ[]s8}ϯ`f_읩O$7NM}i; 6 a ( N!?{u^aour>y}!/@O}o} dGIu}^~+*~uV}st}{lužXX(RD6Nj=%%'N=@.dN>^ ߽07gF(g-h_벥B-wQV\WB X9,%$xa0r( DX4_!yF9:`Y[S #6&|T>SʨmWn/L,FuZWeK*0^(P_cH!!p>F/\?J9Tzq8N8`#6FCP&^򹠧!l\7_Kwٴ?Os YKd z@ OG@AK5\l&!s\bwٴb\_y3dn:|z5it?`BҘ@ses+Łt ^m 5vm^*l$ k 4ͻI=a-nsc#Q=Ta\IqĨ1мǙ6iNgqYۏHrCV<*l*:[Rt)5FTiC- PkF -Lj pAW˹u}]ކ] U!,4W7O(ؒ9RO  Ն\\bw]G7br82XoF٢C(s;JPCA0so}0.\fEMѶNvAgPCu|ZILB?1#Xct<͙.)Lgo`qYUefdbt뜓<:"gZЪ#hAoY5xDi]?&; Oc q0H==zV[,x*GE͍<Lt^Oi= a"́K7_4aї~|VօJ&0ceQw֨X%>,Mln6L cK >%/nA5ptٴ +(6u8X0~`(\?}T"%&d> endobj 145 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 448.75 302.753 462.698] /A << /S /GoTo /D (BT-IS-GVALUE:CAPS) >> >> endobj 146 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 436.695 299.126 450.643] /A << /S /GoTo /D (BT-IS-STRING:CAPS) >> >> endobj 147 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 424.641 89.729 438.588] /A << /S /GoTo /D (guint) >> >> endobj 148 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 424.641 331.206 438.588] /A << /S /GoTo /D (bt-cpu-load-get-current) >> >> endobj 149 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 412.586 86.76 426.533] /A << /S /GoTo /D (void) >> >> endobj 150 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 412.586 257.622 426.533] /A << /S /GoTo /D (bt-init) >> >> endobj 151 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 400.531 86.76 414.479] /A << /S /GoTo /D (void) >> >> endobj 152 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 400.531 339.534 414.479] /A << /S /GoTo /D (bt-init-add-option-groups) >> >> endobj 153 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 388.476 105.769 402.424] /A << /S /GoTo /D (gboolean) >> >> endobj 154 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 388.476 285.836 402.424] /A << /S /GoTo /D (bt-init-check) >> >> endobj 155 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 376.421 129.569 390.369] /A << /S /GoTo /D (GOptionGroup) >> >> endobj 156 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 376.421 333.447 390.369] /A << /S /GoTo /D (bt-init-get-option-group) >> >> endobj 157 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 364.366 86.76 378.314] /A << /S /GoTo /D (void) >> >> endobj 158 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 364.366 267.027 378.314] /A << /S /GoTo /D (bt-deinit) >> >> endobj 159 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 352.312 306.309 366.259] /A << /S /GoTo /D (return-if-disposed) >> >> endobj 160 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 340.257 323.216 354.204] /A << /S /GoTo /D (return-val-if-disposed) >> >> endobj 161 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 328.202 275.315 342.15] /A << /S /GoTo /D (safe-string) >> >> endobj 162 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 316.147 342.852 330.095] /A << /S /GoTo /D (G-OBJECT-REF-COUNT:CAPS) >> >> endobj 163 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 304.092 368.307 318.04] /A << /S /GoTo /D (G-OBJECT-LOG-REF-COUNT:CAPS) >> >> endobj 164 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 292.037 96.115 305.985] /A << /S /GoTo /D (GType) >> >> endobj 165 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 292.037 333.427 305.985] /A << /S /GoTo /D (bt-g-type-get-base-type) >> >> endobj 166 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 279.983 89.729 293.93] /A << /S /GoTo /D (guint) >> >> endobj 167 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 279.983 317.936 293.93] /A << /S /GoTo /D (bt-g-object-idle-add) >> >> endobj 168 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 267.928 96.922 281.875] /A << /S /GoTo /D (gulong) >> >> endobj 169 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 267.928 314.06 281.875] /A << /S /GoTo /D (bt-g-signal-connect) >> >> endobj 170 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 255.873 298 269.821] /A << /S /GoTo /D (g-object-try-ref) >> >> endobj 171 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 243.818 307.963 257.766] /A << /S /GoTo /D (g-object-try-unref) >> >> endobj 172 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 231.763 324.003 245.711] /A << /S /GoTo /D (g-object-try-weak-ref) >> >> endobj 173 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 219.708 333.965 233.656] /A << /S /GoTo /D (g-object-try-weak-unref) >> >> endobj 174 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 207.654 105.769 221.601] /A << /S /GoTo /D (gboolean) >> >> endobj 175 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 207.654 335.688 221.601] /A << /S /GoTo /D (bt-bin-activate-tee-chain) >> >> endobj 176 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 195.599 105.769 209.546] /A << /S /GoTo /D (gboolean) >> >> endobj 177 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 195.599 345.093 209.546] /A << /S /GoTo /D (bt-bin-deactivate-tee-chain) >> >> endobj 178 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 183.544 127.566 197.492] /A << /S /GoTo /D (GstClockTime) >> >> endobj 179 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 183.544 351.589 197.492] /A << /S /GoTo /D (bt-gst-analyzer-get-waittime) >> >> endobj 180 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 171.489 91.94 185.437] /A << /S /GoTo /D (GList) >> >> endobj 181 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 171.489 346.697 185.437] /A << /S /GoTo /D (bt-gst-check-core-elements) >> >> endobj 182 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 159.434 91.94 173.382] /A << /S /GoTo /D (GList) >> >> endobj 183 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 159.434 324.57 173.382] /A << /S /GoTo /D (bt-gst-check-elements) >> >> endobj 184 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 147.379 114.894 161.327] /A << /S /GoTo /D (gchar) >> >> endobj 185 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 147.379 353.711 161.327] /A << /S /GoTo /D (bt-gst-debug-pad-link-return) >> >> endobj 186 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 135.325 134.809 149.272] /A << /S /GoTo /D (GstPadTemplate) >> >> endobj 187 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 135.325 401.391 149.272] /A << /S /GoTo /D (bt-gst-element-factory-get-pad-template) >> >> endobj 188 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 123.27 105.769 137.217] /A << /S /GoTo /D (gboolean) >> >> endobj 189 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 123.27 417.441 137.217] /A << /S /GoTo /D (bt-gst-element-factory-can-sink-media-type) >> >> endobj 190 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 111.215 91.94 125.163] /A << /S /GoTo /D (GList) >> >> endobj 191 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 111.215 486.312 125.163] /A << /S /GoTo /D (bt-gst-registry-get-element-factories-matching-all-categories) >> >> endobj 192 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 99.16 91.94 113.108] /A << /S /GoTo /D (GList) >> >> endobj 193 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 99.16 477.565 113.108] /A << /S /GoTo /D (bt-gst-registry-get-element-names-matching-all-categories) >> >> endobj 194 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 87.105 105.769 101.053] /A << /S /GoTo /D (gboolean) >> >> endobj 195 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 87.105 308.531 101.053] /A << /S /GoTo /D (bt-gst-try-element) >> >> endobj 196 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 75.05 101.345 88.998] /A << /S /GoTo /D (gdouble) >> >> endobj 197 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 75.05 406.981 88.998] /A << /S /GoTo /D (bt-gst-level-message-get-aggregated-field) >> >> endobj 217 0 obj << /D [215 0 R /XYZ -16.307 878.039 null] >> endobj 56 0 obj << /D [215 0 R /XYZ 56.693 761.903 null] >> endobj 57 0 obj << /D [215 0 R /XYZ 56.693 566.635 null] >> endobj 218 0 obj << /D [215 0 R /XYZ 56.693 531.865 null] >> endobj 219 0 obj << /D [215 0 R /XYZ 56.693 473.657 null] >> endobj 214 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 272 0 obj << /Length 1578 /Filter /FlateDecode >> stream xڽZkoH_1+$HVt-mTm $N6Ӆcv3} 4E;'2`#D KÑ2pU Sd&{I 'aF#m-y&H ka Qpje? :t(!\m5"3E̸9!nq+,0S )0f( `F5@8XȦL qlTnQ- 7Ww: lHBMYS0F{O !73N$^e_? r8L?tsP&Z4Ti7Hm8ņveb03mT^AU0Z0&H;1jkD ֲ]TIT0lGAjkD֤e)m͏+|nPPuEF`%h"IHDIt/IC=R u, 9KnoNgQZYv4Hږ e>N Y F҆h XznRa#D[Uczc̗Ul2AH# E~xQ ڒL Հ&"~0U(EGPqrAOpw[A4o>vEUI)B4a4LCEjHa8JdJaft Ɖoنb?WR7 -0#5X[f/fx??v5@j܇ `O$3Gvdݾ%Ę|EgBX>a_G[e6}Ӂuvp9*PѨHw+bCK׵?E#mHm>Q/|ǶlC dv7DfJ{#4m 7,~ G{n( O'˻l jfQ5qFvŏJk H킓q?4|RAvf{Y71t+xI>TbF=İ%!-h۟nNT1ALIf!~qZg2&\2u3dzcl.90: YQvY+@!}_~gKx{j- 0B72kGm&8 G;7MkZĂ:k8vIpUËϢY: 泇bGS}&5I;g~〒!f^^ƴ cARL oOC:w1 @3cL_ PJWu~`dVәy@Lⲿg0c-`ƨ ~`֜l`Ƙ=?-,o?B)[z |);@Tz쳍#QaUi JEAÛ7U5EO|]Ƌϔ{E{Q1x<*R˟aXz.l0%"RM?T(d$a#{E ݐ0EE1o-$Æ4 G"6m[0'eU;xPtX endstream endobj 271 0 obj << /Type /Page /Contents 272 0 R /Resources 270 0 R /MediaBox [0 0 595.276 841.89] /Parent 127 0 R /Annots [ 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R ] >> endobj 198 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 739.387 114.894 753.335] /A << /S /GoTo /D (gchar) >> >> endobj 199 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 739.387 317.935 753.335] /A << /S /GoTo /D (bt-str-format-double) >> >> endobj 200 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 727.332 114.894 741.28] /A << /S /GoTo /D (gchar) >> >> endobj 201 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 727.332 312.954 741.28] /A << /S /GoTo /D (bt-str-format-enum) >> >> endobj 202 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 715.278 114.894 729.225] /A << /S /GoTo /D (gchar) >> >> endobj 203 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 715.278 308.531 729.225] /A << /S /GoTo /D (bt-str-format-long) >> >> endobj 204 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 703.223 114.894 717.17] /A << /S /GoTo /D (gchar) >> >> endobj 205 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 703.223 312.944 717.17] /A << /S /GoTo /D (bt-str-format-uchar) >> >> endobj 206 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 691.168 114.894 705.116] /A << /S /GoTo /D (gchar) >> >> endobj 207 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 691.168 313.512 705.116] /A << /S /GoTo /D (bt-str-format-ulong) >> >> endobj 208 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 679.113 84.747 693.061] /A << /S /GoTo /D (gint) >> >> endobj 209 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 679.113 307.415 693.061] /A << /S /GoTo /D (bt-str-parse-enum) >> >> endobj 210 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 667.058 91.373 681.006] /A << /S /GoTo /D (gchar) >> >> endobj 211 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 667.058 317.128 681.006] /A << /S /GoTo /D (bt-str-format-gvalue) >> >> endobj 212 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 655.003 105.769 668.951] /A << /S /GoTo /D (gboolean) >> >> endobj 213 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 655.003 311.589 668.951] /A << /S /GoTo /D (bt-str-parse-gvalue) >> >> endobj 263 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 592.68 301.736 606.628] /A << /S /GoTo /D (bt-major-version) >> >> endobj 264 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 580.625 301.736 594.573] /A << /S /GoTo /D (bt-micro-version) >> >> endobj 265 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 568.571 302.294 582.518] /A << /S /GoTo /D (bt-minor-version) >> >> endobj 266 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 556.516 368.316 570.463] /A << /S /GoTo /D (G-OBJECT-REF-COUNT-FMT:CAPS) >> >> endobj 267 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.654 443.97 269.104 454.874] /A << /S /GoTo /D (BtApplication) >> >> endobj 268 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [286.479 443.97 318.369 454.874] /A << /S /GoTo /D (BtSong) >> >> endobj 269 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.271 191.562 255.824 202.466] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 273 0 obj << /D [271 0 R /XYZ -11.232 878.039 null] >> endobj 274 0 obj << /D [271 0 R /XYZ 56.693 617.587 null] >> endobj 275 0 obj << /D [271 0 R /XYZ 56.693 519.099 null] >> endobj 276 0 obj << /D [271 0 R /XYZ 56.693 460.871 null] >> endobj 277 0 obj << /D [271 0 R /XYZ 56.693 402.643 null] >> endobj 220 0 obj << /D [271 0 R /XYZ 56.693 377.282 null] >> endobj 278 0 obj << /D [271 0 R /XYZ 56.693 371.304 null] >> endobj 279 0 obj << /D [271 0 R /XYZ 56.693 374.193 null] >> endobj 221 0 obj << /D [271 0 R /XYZ 56.693 235.961 null] >> endobj 280 0 obj << /D [271 0 R /XYZ 56.693 229.983 null] >> endobj 281 0 obj << /D [271 0 R /XYZ 56.693 232.872 null] >> endobj 223 0 obj << /D [271 0 R /XYZ 56.693 95.386 null] >> endobj 282 0 obj << /D [271 0 R /XYZ 56.693 89.657 null] >> endobj 283 0 obj << /D [271 0 R /XYZ 56.693 92.547 null] >> endobj 270 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 305 0 obj << /Length 2004 /Filter /FlateDecode >> stream xڽZ[sۺ~KT'Fp!>$iə6wz<0ESʋ/]\(dӢb߮'ȋP$o<.'#xJϽ cG])X~*ľ|On2c/7*]K !E! PCQr탄Ro9|~kG6Fƽxyrq9|(B\z`Dqq v(zg] Ix2TSEa:ĻKE>1'ti  5˅gߝAFIAW(Usj~H)AݵQWKڻ8y͹;裀}7;o8l)%H mH I4O*k3Vo-(4;e\-|SK;RSLUF,.U4G0䞽YڢQ8:0 נd--&V@Fǐ LReO`cd 뾑on:=~J:|``[5pS(q>ܿRsW6.]-J-WAE2pmr  OCә_#3Hƒkdm#,:^r@`3;FfD8_yu|8()&jLA't]1`zPlo)T2gl X?()S1;b[t\6bj=% v> hٙ+V<}!@L`G/%KP nDԕjW\{<4NInLVS' K x=iat:(3%w=uQd_hۧ?Q}p;ht-K1΅F\⏦> ~.O ~hAZkOTV_28v,$`%e9 c3h-xo1t^2/z 0j魟ˢ&I)kmN܊_l2:\`֓Ovlu[PhkΎV6l6aK0{w;i[``88q) endstream endobj 304 0 obj << /Type /Page /Contents 305 0 R /Resources 303 0 R /MediaBox [0 0 595.276 841.89] /Parent 127 0 R /Annots [ 298 0 R 299 0 R 300 0 R 301 0 R ] >> endobj 298 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.146 509.288 165.258 519.762] /A << /S /GoTo /D (bt-init-check) >> >> endobj 299 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 459.374 95.328 470.278] /A << /S /GoTo /D (gtk-init) >> >> endobj 300 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [159.203 90.39 190.904 101.294] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 301 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [101.156 78.435 135.805 89.339] /A << /S /GoTo /D (bt-init) >> >> endobj 306 0 obj << /D [304 0 R /XYZ -16.307 878.039 null] >> endobj 307 0 obj << /D [304 0 R /XYZ 56.693 762.899 null] >> endobj 225 0 obj << /D [304 0 R /XYZ 56.693 628.761 null] >> endobj 308 0 obj << /D [304 0 R /XYZ 56.693 622.784 null] >> endobj 309 0 obj << /D [304 0 R /XYZ 56.693 625.673 null] >> endobj 310 0 obj << /D [304 0 R /XYZ 56.693 614.714 null] >> endobj 311 0 obj << /D [304 0 R /XYZ 56.693 603.755 null] >> endobj 226 0 obj << /D [304 0 R /XYZ 56.693 326.686 null] >> endobj 313 0 obj << /D [304 0 R /XYZ 56.693 320.708 null] >> endobj 314 0 obj << /D [304 0 R /XYZ 56.693 323.597 null] >> endobj 315 0 obj << /D [304 0 R /XYZ 56.693 312.638 null] >> endobj 228 0 obj << /D [304 0 R /XYZ 56.693 179.202 null] >> endobj 316 0 obj << /D [304 0 R /XYZ 56.693 174.824 null] >> endobj 317 0 obj << /D [304 0 R /XYZ 56.693 177.713 null] >> endobj 318 0 obj << /D [304 0 R /XYZ 56.693 166.754 null] >> endobj 319 0 obj << /D [304 0 R /XYZ 56.693 155.795 null] >> endobj 320 0 obj << /D [304 0 R /XYZ 56.693 144.836 null] >> endobj 303 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 333 0 obj << /Length 1991 /Filter /FlateDecode >> stream xZ[o6~k/jxE0ivާ40ʒW=!ARya$X Hs/ 7˼NL釪VI-T>]RLf?!\#`Pc1a4~Beq6߈Bߣ@#^^~|"{4-מ>ad.Iq">cRҐum^V]{wE8-RcC!@bC 5 :`X3@HGKAů/AÞyxyr|"f^p |l \!/* ҏ l6.k^CW)pȂL^ .IΆV(INꥇO7#|XufCGOQBxȋS 4>cޮ&e߷m~1֪lYQi c>Ԑ>v0skQ;~k&eS }|=ekri5vdx~} Z܎6Il=*P:1:jmGHz:IV뤵cJp*-2EW`(OU'Th>9I#@,\OԴŖ_3EI>p.I7+Y{'}X]RTx5PICx H2:[P6 rOε`Tu%qOz6]ުf'apkRuUM'asSUEC{mTm/Ya_e!?1;7#`/gv&b8~ڬCZ?D4Z:DPY[3 '.HM?L櫤]y$BBb2?Da Vw KAsCFIŮ3xΜʜڂUPp }IZW| |¯;TLB? 8-V~ãH6!m!r|Jci.ft}ۨ}:|WgˉA_&=zvMoGT8|3ޱQ_rֿHQ?Bwakk6?q?MyL|w>Eߑ[ħo9FCjHPi&ܠj C1 {0$$:a&'otCCJ>c6*Cnn*`D'Ev<+lά*T}I^{>/G! endstream endobj 332 0 obj << /Type /Page /Contents 333 0 R /Resources 331 0 R /MediaBox [0 0 595.276 841.89] /Parent 346 0 R /Annots [ 302 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R ] >> endobj 302 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.278 672.768 307.485 685.286] /A << /S /GoTo /D (GError) >> >> endobj 323 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 606.066 83.303 614.912] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 324 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.458 517.956 159.774 528.86] /A << /S /GoTo /D (GOptionGroup) >> >> endobj 325 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [442.118 489.883 567.925 500.787] /A << /S /GoTo /D (g-option-context-add-group) >> >> endobj 326 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [276.154 222.912 303.761 233.816] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 327 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [87.238 210.957 204.607 221.861] /A << /S /GoTo /D (GObjectClass.get-property) >> >> endobj 328 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [207.595 210.957 323.858 221.861] /A << /S /GoTo /D (GObjectClass.set-property) >> >> endobj 329 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [326.847 210.957 423.194 221.861] /A << /S /GoTo /D (GObjectClass.dispose) >> >> endobj 330 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [276.807 135.864 304.414 146.768] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 334 0 obj << /D [332 0 R /XYZ -11.232 878.039 null] >> endobj 230 0 obj << /D [332 0 R /XYZ 56.693 567.868 null] >> endobj 335 0 obj << /D [332 0 R /XYZ 56.693 563.706 null] >> endobj 336 0 obj << /D [332 0 R /XYZ 56.693 566.595 null] >> endobj 337 0 obj << /D [332 0 R /XYZ 56.693 555.636 null] >> endobj 231 0 obj << /D [332 0 R /XYZ 56.693 359.873 null] >> endobj 338 0 obj << /D [332 0 R /XYZ 56.693 355.71 null] >> endobj 339 0 obj << /D [332 0 R /XYZ 56.693 358.599 null] >> endobj 340 0 obj << /D [332 0 R /XYZ 56.693 347.641 null] >> endobj 232 0 obj << /D [332 0 R /XYZ 56.693 261.865 null] >> endobj 341 0 obj << /D [332 0 R /XYZ 56.693 257.703 null] >> endobj 342 0 obj << /D [332 0 R /XYZ 56.693 260.592 null] >> endobj 233 0 obj << /D [332 0 R /XYZ 56.693 174.817 null] >> endobj 343 0 obj << /D [332 0 R /XYZ 56.693 170.655 null] >> endobj 344 0 obj << /D [332 0 R /XYZ 56.693 173.544 null] >> endobj 331 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 361 0 obj << /Length 1327 /Filter /FlateDecode >> stream xY[o6~ 9̐xۀH f˜0Gv<ؖ'M_CLusk`PsH1"sK4ւ !.ZIQuO߾i8$m&i<hG bE`ĆaE(-$j.U6TI3sۡ0 p4u>.V9CSwY80HrIh  1c PဇuAI3 Q;M,Sk*8_sGw2nzŶf(Z%3Ø5#FGtA#~0`͍MsQ K%D*S ZihTCUZۆCYyV05wo}Qsh eYk`l!.;7.yAdİD%6?pCdWơ d@9QK2>F(TJzs/ )UspɆB~u|.tBSh.^kWK<Yf"t(-$~p"~H,Ǐ-Nxȿ6?=n$wmV:j ?^]=!^@~aؒF8SNxR>zLax-$WRE2WV5W`D8b댹Y2rlZ^ώW2b2%0S2r6; ,&?9;^~oHXpj&7  @XId.o=GalQ!loA #APIXQ<3-y8@,Hb ef mO\+,=^,8&%-hJp[y`t+ I/O B(!Yh7l2s97gmFKxnܜ^JϵYbk&hi `LPnL;2Te*hdBI*oLWqV}1-'j&ߟ N|*>$Q3hzEjr} Ojf&DX-ӆ}ƃ"@"{|p;╽V)Q҇U*BUΦ!>}Vb* .&z\}=njIתxKx\*rJ1uo6]rޠIӌ檡-ۺboAέt2`:/"3UH]'8>&jc宦)^g{$揋Jq endstream endobj 360 0 obj << /Type /Page /Contents 361 0 R /Resources 359 0 R /MediaBox [0 0 595.276 841.89] /Parent 346 0 R /Annots [ 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R ] >> endobj 353 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [328.122 667.635 356.675 678.539] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 354 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [257.289 555.357 285.842 566.261] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 355 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [305.771 410.724 334.324 424.671] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 356 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.501 276.81 536.21 287.714] /A << /S /GoTo /D (G-OBJECT-REF-COUNT-FMT:CAPS) >> >> endobj 357 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [305.771 215.311 334.324 229.259] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 358 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [74.795 128.096 140.418 139] /A << /S /GoTo /D (g-type-parent) >> >> endobj 362 0 obj << /D [360 0 R /XYZ -16.307 878.039 null] >> endobj 234 0 obj << /D [360 0 R /XYZ 56.693 712.033 null] >> endobj 363 0 obj << /D [360 0 R /XYZ 56.693 706.055 null] >> endobj 364 0 obj << /D [360 0 R /XYZ 56.693 708.945 null] >> endobj 235 0 obj << /D [360 0 R /XYZ 56.693 516.621 null] >> endobj 365 0 obj << /D [360 0 R /XYZ 56.693 510.643 null] >> endobj 366 0 obj << /D [360 0 R /XYZ 56.693 513.532 null] >> endobj 236 0 obj << /D [360 0 R /XYZ 56.693 321.208 null] >> endobj 367 0 obj << /D [360 0 R /XYZ 56.693 315.231 null] >> endobj 368 0 obj << /D [360 0 R /XYZ 56.693 318.12 null] >> endobj 238 0 obj << /D [360 0 R /XYZ 56.693 181.67 null] >> endobj 369 0 obj << /D [360 0 R /XYZ 56.693 176.287 null] >> endobj 370 0 obj << /D [360 0 R /XYZ 56.693 179.176 null] >> endobj 371 0 obj << /D [360 0 R /XYZ 56.693 168.218 null] >> endobj 359 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 379 0 obj << /Length 1679 /Filter /FlateDecode >> stream xڽZrH}+Ty0}\J*[:ÖdI`HF 2 gteͨBjO#-F $4󤆫$(oV?fI`H9ɆoI\sO$^߃*nF_]()R"( R_y~G`Ȇ '>ow=|(p?ᝳ aIN &cmRQ<+ĸ4*a8qnmoۤ 6.GN ,k-NeH'F WqJi!U/0R+~vgMWqR>yV,n{; 7"UJ`da6Oۿ0Ϣy<oc#0k.aH' aD J|"ޤ!u4|] etPHS dsd7WvYAj>CJf"dN|tT#yѳYtjj|ϛsPExCXBvm #8 v8l;ޙl ىf -[!k.c2;Y ,dSQTЁ*t\%a|Z4G~mOlhβ+B-GYʬ>]d57M"2C(,XdR,%4e5sȯ@KY*qd QqYi(w0`^6?⅓yE؞4n%KS<ő2V}0qﻊ5LxH"Z3#,TBfG#ǵ8kn0| ف~CM0|*[P)m@(3տZ !{jbbkB`~̲'L0LkP*>s1]!xr_ iG>?W{e+[L8OZp]oTXyzu|~hw7|"&7$HZ#qG#H+MS|婝tmÙEt6]q\,L<3f0a3doLHhxϗ鑭17;3#\ WIrtg<}\BUu?[Y`@O츘O<eJ5G>$;:.a~0aL[. 2iLh:tQ[vzm_s;]o$_&#f`Ad,k};"Xל e)-!VGP8hY}vDvF:oX=@fm Qԛm@-@ڶ(T8QdHNUj%3e:xQ.`~]Lž:vRu 0Hx Rm fyrHZMUJ"{>ڎQ>lp& CB2-Hڀ  m( e9RQXyj4aU/zN"D_MW> endobj 373 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [65.38 580.667 137.101 591.571] /A << /S /GoTo /D (g-idle-add-full) >> >> endobj 374 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.296 519.168 295.041 533.116] /A << /S /GoTo /D (GObject) >> >> endobj 375 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.408 483.203 365.338 495.536] /A << /S /GoTo /D (G-PRIORITY-DEFAULT-IDLE:CAPS) >> >> endobj 376 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [76.349 293.498 154.704 304.402] /A << /S /GoTo /D (g-signal-connect) >> >> endobj 380 0 obj << /D [378 0 R /XYZ -11.232 878.039 null] >> endobj 239 0 obj << /D [378 0 R /XYZ 56.693 657.942 null] >> endobj 381 0 obj << /D [378 0 R /XYZ 56.693 651.964 null] >> endobj 382 0 obj << /D [378 0 R /XYZ 56.693 654.853 null] >> endobj 383 0 obj << /D [378 0 R /XYZ 56.693 643.894 null] >> endobj 384 0 obj << /D [378 0 R /XYZ 56.693 632.936 null] >> endobj 385 0 obj << /D [378 0 R /XYZ 56.693 621.977 null] >> endobj 241 0 obj << /D [378 0 R /XYZ 56.693 381.732 null] >> endobj 386 0 obj << /D [378 0 R /XYZ 56.693 375.755 null] >> endobj 387 0 obj << /D [378 0 R /XYZ 56.693 378.644 null] >> endobj 388 0 obj << /D [378 0 R /XYZ 56.693 367.685 null] >> endobj 389 0 obj << /D [378 0 R /XYZ 56.693 356.726 null] >> endobj 390 0 obj << /D [378 0 R /XYZ 56.693 345.767 null] >> endobj 391 0 obj << /D [378 0 R /XYZ 56.693 334.808 null] >> endobj 242 0 obj << /D [378 0 R /XYZ 56.693 82.609 null] >> endobj 377 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 406 0 obj << /Length 1112 /Filter /FlateDecode >> stream xݙKsF|Ra<=:&8l ^~`I-& !FǏ{MzԻzkqihF b є7_$q`_'WϿ}4)Fp10zw2bQVTVC8i_&f8x㝊LLwQ,\r|A~cu*=M7eeA (NerSg=Uj/ raHG/> endobj 395 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.938 713.918 195.491 724.822] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 396 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.871 713.918 336.849 724.822] /A << /S /GoTo /D (g-object-ref) >> >> endobj 397 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [152.513 601.64 181.065 612.544] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 398 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.938 518.505 195.491 529.409] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 399 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.653 518.505 383.594 529.409] /A << /S /GoTo /D (g-object-unref) >> >> endobj 400 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.938 365.329 195.491 376.233] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 401 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.871 365.329 399.385 376.233] /A << /S /GoTo /D (g-object-add-weak-pointer) >> >> endobj 402 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.938 224.008 195.491 234.912] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 403 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.653 224.008 451.359 234.912] /A << /S /GoTo /D (g-object-remove-weak-pointer) >> >> endobj 407 0 obj << /D [405 0 R /XYZ -16.307 878.039 null] >> endobj 408 0 obj << /D [405 0 R /XYZ 56.693 761.903 null] >> endobj 409 0 obj << /D [405 0 R /XYZ 56.693 755.228 null] >> endobj 243 0 obj << /D [405 0 R /XYZ 56.693 562.904 null] >> endobj 410 0 obj << /D [405 0 R /XYZ 56.693 556.926 null] >> endobj 411 0 obj << /D [405 0 R /XYZ 56.693 559.816 null] >> endobj 244 0 obj << /D [405 0 R /XYZ 56.693 409.727 null] >> endobj 412 0 obj << /D [405 0 R /XYZ 56.693 403.75 null] >> endobj 413 0 obj << /D [405 0 R /XYZ 56.693 406.639 null] >> endobj 245 0 obj << /D [405 0 R /XYZ 56.693 268.406 null] >> endobj 414 0 obj << /D [405 0 R /XYZ 56.693 262.429 null] >> endobj 415 0 obj << /D [405 0 R /XYZ 56.693 265.318 null] >> endobj 246 0 obj << /D [405 0 R /XYZ 56.693 116.972 null] >> endobj 416 0 obj << /D [405 0 R /XYZ 56.693 111.575 null] >> endobj 417 0 obj << /D [405 0 R /XYZ 56.693 114.465 null] >> endobj 418 0 obj << /D [405 0 R /XYZ 56.693 103.506 null] >> endobj 419 0 obj << /D [405 0 R /XYZ 56.693 92.547 null] >> endobj 404 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 428 0 obj << /Length 1773 /Filter /FlateDecode >> stream xZ[oF~Wf2KԬvSZҧt$hib6JU_bC̹| "].ƃDIe4DҰH*g%KFgTEvnÕMq/F?hirf6 Jϋ =3x?5 G Oh\ ~1ˆ=+ Q&~}>02ݺe!yFRP쾧hDnDjW7VPƒPscs.*n<Ɯ%X /err6@B̜$)V}WԷb:*- I"^/X^S[~:Ϊ=9mqxV{wZ-lTx8_O<'`f8\ū$|D`K͊wi6+rOvoCp?`#dxW /V{Q)GyHIJ͒8f.ɗ-ß Cbf~q`מr5m 2Ĕ ιcSH6nՈkܮbtjogG*vm0Nl:"bjB`*Ո@0}X- ~TGr6;E,5B-VZ  5bj6^n,=QJ }^K_o Դ̺.'&'<4y5z}/!zy2%\Z~-p̞=n'mk{Y3tpf8;d7={E9_**p~V&!C+!'ߓƆLPehu錻X*~Oz{kJ!BThTZ. 8䬷p E*Xk5D*/R7D* R0Pb0I ~gtX)B@Zyqgv1Ny"'˯(Rl.@dO5!v` DT f,.%0~qDb CLUq_WDE iv0r,SQ '0AXdӫTݬoR(`Twl'{Nlϳl* _su:B5~~c%\ۡǎ+Jqn\`V9F/NѪQq'4Uol:US~W5;5UC!\J5_I!o@,}U )VGd݌4qj,9Utcϴe3d:1IOAb 1aʾBk8|iJՓ$QU g蕦vJf,ˋ5+5H7~] ޵)_GȼmæK<܆aAe>,  ÂKF%$Z?孷T.zِ`[v(u)~`ڎQsv5xp*])_jw endstream endobj 427 0 obj << /Type /Page /Contents 428 0 R /Resources 426 0 R /MediaBox [0 0 595.276 841.89] /Parent 346 0 R /Annots [ 424 0 R 425 0 R ] >> endobj 424 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [88.673 694.755 116.279 703.601] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 425 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [88.673 419.934 116.279 428.781] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 429 0 obj << /D [427 0 R /XYZ -11.232 878.039 null] >> endobj 430 0 obj << /D [427 0 R /XYZ 56.693 762.899 null] >> endobj 431 0 obj << /D [427 0 R /XYZ 56.693 751.94 null] >> endobj 247 0 obj << /D [427 0 R /XYZ 56.693 524.044 null] >> endobj 432 0 obj << /D [427 0 R /XYZ 56.693 518.066 null] >> endobj 433 0 obj << /D [427 0 R /XYZ 56.693 520.955 null] >> endobj 434 0 obj << /D [427 0 R /XYZ 56.693 509.996 null] >> endobj 435 0 obj << /D [427 0 R /XYZ 56.693 499.038 null] >> endobj 436 0 obj << /D [427 0 R /XYZ 56.693 488.079 null] >> endobj 437 0 obj << /D [427 0 R /XYZ 56.693 477.12 null] >> endobj 249 0 obj << /D [427 0 R /XYZ 56.693 249.223 null] >> endobj 438 0 obj << /D [427 0 R /XYZ 56.693 243.246 null] >> endobj 439 0 obj << /D [427 0 R /XYZ 56.693 246.135 null] >> endobj 440 0 obj << /D [427 0 R /XYZ 56.693 235.176 null] >> endobj 441 0 obj << /D [427 0 R /XYZ 56.693 224.217 null] >> endobj 442 0 obj << /D [427 0 R /XYZ 56.693 213.258 null] >> endobj 426 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F108 345 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 448 0 obj << /Length 1517 /Filter /FlateDecode >> stream xYKF+t xޏͮUMlN-JU$G~Ì 8'aMO=_K8ZD8z;xu7xF #摐H)WEYt?|㯣1xrڹm: ?u=ܽ{FHd+403_ LYBIMWwFf*#$/? IH9de'I1i}hQ#E8š6 b{a/Ҕ{ v, ƽ%E nKiY_cvD ~[G۞ݛMηTڞ,j Yid0R'jS!@VH-yZ as/#{N;7$ivB< h ]dQzÏQ `Twyۈ}$ QÝܸ Q#6Qn^G1ܸ&nv_M:]VǒP nEonC $)쾽IS`Y`Rfc4~F |v0mFO扪2ا0`}ΒYFwEL>DZq=Z"K}m>dyH6ٶMR q{*{3ctasۖ.,a,ʆ]/6N'UX*,I7nn :axxWIZqL_T?9܆_W,I1 %Pk\mXqSZsp_8-@6UIÓ^ R׫-C!j/7{~D׬-D=TeKm\V+SH`9LdwPYu7q)N(QAV^$%Yޏ<^ni[ qHrֶA*Ow$!tWǸ@TW5dk;-IǚjWQ NI{uٞꕍ .c1LO׷wy n]IgB+Lz?鎠'gd#yYUuaOjzˇ]~pa|g`gqoHGP" ]QGP ~ZF4KVmbCr$K$1 as=GScKb$x<-|Q @"?,T:]~=k=ykjm@jxU=3u30i"p2͞z=Im9)xgg͝QDjGy4A,q"#Wջ Ҥֳ-xa'*K>*8oE~,YSmZ6P(Iůq60|wzYg[0C`^C 0 HVTR`0n%u;~wb,T_lWqj֙0 T~Lvxɧ12)b-Ja9 ܞʓDmF][ޕ!%߯T endstream endobj 447 0 obj << /Type /Page /Contents 448 0 R /Resources 446 0 R /MediaBox [0 0 595.276 841.89] /Parent 346 0 R /Annots [ 443 0 R 444 0 R 445 0 R ] >> endobj 443 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.042 514.222 231.595 525.126] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 444 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 344.184 261.009 354.644] /A << /S /GoTo /D (GList) >> >> endobj 445 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.045 278.062 257.597 288.966] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 449 0 obj << /D [447 0 R /XYZ -16.307 878.039 null] >> endobj 251 0 obj << /D [447 0 R /XYZ 56.693 623.67 null] >> endobj 450 0 obj << /D [447 0 R /XYZ 56.693 617.693 null] >> endobj 451 0 obj << /D [447 0 R /XYZ 56.693 620.582 null] >> endobj 452 0 obj << /D [447 0 R /XYZ 56.693 609.623 null] >> endobj 252 0 obj << /D [447 0 R /XYZ 56.693 457.553 null] >> endobj 453 0 obj << /D [447 0 R /XYZ 56.693 451.575 null] >> endobj 454 0 obj << /D [447 0 R /XYZ 56.693 454.464 null] >> endobj 455 0 obj << /D [447 0 R /XYZ 56.693 443.505 null] >> endobj 254 0 obj << /D [447 0 R /XYZ 56.693 221.393 null] >> endobj 456 0 obj << /D [447 0 R /XYZ 56.693 215.416 null] >> endobj 457 0 obj << /D [447 0 R /XYZ 56.693 218.305 null] >> endobj 458 0 obj << /D [447 0 R /XYZ 56.693 207.346 null] >> endobj 459 0 obj << /D [447 0 R /XYZ 56.693 196.387 null] >> endobj 460 0 obj << /D [447 0 R /XYZ 56.693 185.428 null] >> endobj 446 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 466 0 obj << /Length 1681 /Filter /FlateDecode >> stream xZM8WPsbMneg$CNC~pcmT0V`oafr2~^I7YxB"0o2/7_<S/4 폻pfa2s?FǣoJf`#(tZ"}5|d@#PxRx#pקּT\y`DgGH͌ Spk]Xl$67\1R r^h4f' W^dQ:'EjM^5[n;~zB/GbSS1րJ(䕝OQ7{HGEE&Ⱥ` Q}gttHILd)>PLy1 p&tgE /ey ZϧEZǺ?Ra"n79Đ]#q9d "%ܣ(Pޢ6ihWw; I,01 ¯&1=Ա$ h-gO\AFaLB %lo❞O@sp) )\H۱1I.&~6pT@Z;9 |zR4 j"65+ m4`XyMg.@Ly.c3H*qh6{F%'$JR:>n͛I^4#cp9{Y3#&DvʧY ?:&r:"p6kG_=юwCG8#Eϒw#-’t9B5e $A(# di8RO(´?YBkh"ΠPr8'X] =h 0rɖ|p&0^;@%|˥?ZRu`04uTȸhy+1!88?V>Hh&j;|\ćp)Wy6r0B_QiZTU֐M\;g Ki? 3 ˹ӷ=>, "8(DDKot_ck&R1tA V&~X6%#ՕP" n>bKPLR|[FjQTd(1)6k2کWt ~ޣzR>*:+fOnGyyx ȳ2cu "HpлbL=<ϔ.Yf};CRVjsC\X)(/v4aӕ.f&qd9q |彳d#r2pc0-~ NjKT6j !3d'&Ru17{'A '+JӴ!$DE3"}ݯ͈9 ١Κ?*Xtņd@ 'za5A([|M-v9Pn۵15ɛ/*LJZөOԖ3;>a(|??L  endstream endobj 465 0 obj << /Type /Page /Contents 466 0 R /Resources 464 0 R /MediaBox [0 0 595.276 841.89] /Parent 482 0 R /Annots [ 461 0 R 462 0 R 463 0 R ] >> endobj 461 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [305.562 507.113 312.536 519.447] /A << /S /GoTo /D (u) >> >> endobj 462 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [134.829 456.434 163.382 467.338] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 463 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 198.157 83.303 209.061] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 467 0 obj << /D [465 0 R /XYZ -11.232 878.039 null] >> endobj 256 0 obj << /D [465 0 R /XYZ 56.693 669.897 null] >> endobj 468 0 obj << /D [465 0 R /XYZ 56.693 663.919 null] >> endobj 469 0 obj << /D [465 0 R /XYZ 56.693 666.808 null] >> endobj 470 0 obj << /D [465 0 R /XYZ 56.693 655.85 null] >> endobj 471 0 obj << /D [465 0 R /XYZ 56.693 644.891 null] >> endobj 472 0 obj << /D [465 0 R /XYZ 56.693 633.932 null] >> endobj 257 0 obj << /D [465 0 R /XYZ 56.693 399.765 null] >> endobj 473 0 obj << /D [465 0 R /XYZ 56.693 393.787 null] >> endobj 474 0 obj << /D [465 0 R /XYZ 56.693 396.676 null] >> endobj 475 0 obj << /D [465 0 R /XYZ 56.693 385.717 null] >> endobj 476 0 obj << /D [465 0 R /XYZ 56.693 374.759 null] >> endobj 477 0 obj << /D [465 0 R /XYZ 56.693 363.8 null] >> endobj 258 0 obj << /D [465 0 R /XYZ 56.693 159.421 null] >> endobj 478 0 obj << /D [465 0 R /XYZ 56.693 153.443 null] >> endobj 479 0 obj << /D [465 0 R /XYZ 56.693 156.333 null] >> endobj 480 0 obj << /D [465 0 R /XYZ 56.693 145.374 null] >> endobj 481 0 obj << /D [465 0 R /XYZ 56.693 134.415 null] >> endobj 464 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 490 0 obj << /Length 1556 /Filter /FlateDecode >> stream xڽYMs6Wpr:o)ImO3LjHsJS Iu],J#/D}0ə `B"@0*۷Lò4˅ILi[\|r=xrqd,W iFa"0_VleD` o`~7~`C̼ 2 roN MAPOqߙڔ"ƕ ! LGDI<* c7wS:PX# me($nH(b(績u>OBɊ} A)`)"½2+>yZd70ggsixYԫs5gUvLhrsg 0޼^޺g4q)}8Ẅ́*͊(111]&JJchɿ'6ȁ'zPȘCNϞ"U>5M7O뫺ɿvdNjn8 #V"#ҤM]Eznp yڤMD>pxo\ڔP0(MlPk#U3L]oo>+lڒ( m3PDoPTHW_-4|$dfopaP G?`^/=)£Ek`4=ť5-`rη.G\-ϗ-v %Wb3۸2HB g5"D'8l-76xiOR5>*#H  Zvn{WmvÄbB/&7ߏEW7n׍6uQVm u+W=YLv:espM' _B{rQ'=>!5WgitY=Z)^rrqU'O&BM0uONβt;8\1/-=m֞_,07enϰDϷ];!R)uMl mm!`{ݳz5A1G)![p;jn7 (tjY)>8 .KC )fhuRUaQ[K?,X?%?-xE$B"wU꺵a=ؐXƄ|L5n=T%uACja.]'K ЗY{c kCM!/¥J sgY罈ڰ>Q& Cw/w{h+q[lg4G'FV 95>eNϛWG _u>\yOiRmfų3 S]:`; S`X|Fh^4>̧aQ MF-:2NפI2Krc?8`? endstream endobj 489 0 obj << /Type /Page /Contents 490 0 R /Resources 488 0 R /MediaBox [0 0 595.276 841.89] /Parent 482 0 R /Annots [ 484 0 R 485 0 R 486 0 R 487 0 R ] >> endobj 484 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.146 656.524 291.111 667.428] /A << /S /GoTo /D (gst-plugin-feature-list-free) >> >> endobj 485 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 622.716 98.137 631.562] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 486 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [263.216 268.488 356.715 279.392] /A << /S /GoTo /D (GST-STATE-READY:CAPS) >> >> endobj 487 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 145.603 83.303 155.79] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 491 0 obj << /D [489 0 R /XYZ -16.307 878.039 null] >> endobj 259 0 obj << /D [489 0 R /XYZ 56.693 581.922 null] >> endobj 492 0 obj << /D [489 0 R /XYZ 56.693 575.945 null] >> endobj 493 0 obj << /D [489 0 R /XYZ 56.693 578.834 null] >> endobj 494 0 obj << /D [489 0 R /XYZ 56.693 567.875 null] >> endobj 495 0 obj << /D [489 0 R /XYZ 56.693 556.916 null] >> endobj 260 0 obj << /D [489 0 R /XYZ 56.693 334.804 null] >> endobj 496 0 obj << /D [489 0 R /XYZ 56.693 328.826 null] >> endobj 497 0 obj << /D [489 0 R /XYZ 56.693 331.716 null] >> endobj 498 0 obj << /D [489 0 R /XYZ 56.693 320.757 null] >> endobj 499 0 obj << /D [489 0 R /XYZ 56.693 309.798 null] >> endobj 262 0 obj << /D [489 0 R /XYZ 56.693 106.411 null] >> endobj 500 0 obj << /D [489 0 R /XYZ 56.693 100.616 null] >> endobj 501 0 obj << /D [489 0 R /XYZ 56.693 103.506 null] >> endobj 502 0 obj << /D [489 0 R /XYZ 56.693 92.547 null] >> endobj 488 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 509 0 obj << /Length 1485 /Filter /FlateDecode >> stream xYKo6W0|?SX@- ŖJ򶻇E1e%V8hOz8of!ettI #HH$ "t݌/7߿WE ar Er"qz7*_$-ݻǤp7Y!He-xB)e2@G^Ɏ< R},Ą΁Zb:c~J90$3C)  t߿ˆciNq[,bh#,zZ1y/ ߶c8U}0`q$v;Wjd]k碬eL,~30pUf|nf>}M-ۙ{ײ`aI0p8;0FpZ> 3 endstream endobj 508 0 obj << /Type /Page /Contents 509 0 R /Resources 507 0 R /MediaBox [0 0 595.276 841.89] /Parent 482 0 R /Annots [ 506 0 R ] >> endobj 506 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 148.718 272.935 162.666] /A << /S /GoTo /D (GType) >> >> endobj 510 0 obj << /D [508 0 R /XYZ -11.232 878.039 null] >> endobj 511 0 obj << /D [508 0 R /XYZ 56.693 762.899 null] >> endobj 512 0 obj << /D [508 0 R /XYZ 56.693 751.94 null] >> endobj 513 0 obj << /D [508 0 R /XYZ 56.693 740.981 null] >> endobj 284 0 obj << /D [508 0 R /XYZ 56.693 500.837 null] >> endobj 514 0 obj << /D [508 0 R /XYZ 56.693 494.859 null] >> endobj 515 0 obj << /D [508 0 R /XYZ 56.693 497.748 null] >> endobj 516 0 obj << /D [508 0 R /XYZ 56.693 486.789 null] >> endobj 285 0 obj << /D [508 0 R /XYZ 56.693 276.533 null] >> endobj 517 0 obj << /D [508 0 R /XYZ 56.693 270.555 null] >> endobj 518 0 obj << /D [508 0 R /XYZ 56.693 273.444 null] >> endobj 519 0 obj << /D [508 0 R /XYZ 56.693 262.485 null] >> endobj 520 0 obj << /D [508 0 R /XYZ 56.693 251.527 null] >> endobj 507 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 523 0 obj << /Length 967 /Filter /FlateDecode >> stream xMoL{L웸CɭTI4Rb 쌽Nq@Pggv~9[0ތg3HfL0^1in|{gѷTj>>ϧ/,7mɼ}%h5={8s֨-Z NIZ(,ͷn|la3z5} ęDf[c_˙k ]؇G'n O \Dql(F&UET p6~ʯ7yv};|f(^"DkN ׅbxˑYh Z> endobj 524 0 obj << /D [522 0 R /XYZ -16.307 878.039 null] >> endobj 286 0 obj << /D [522 0 R /XYZ 56.693 710.051 null] >> endobj 525 0 obj << /D [522 0 R /XYZ 56.693 704.073 null] >> endobj 526 0 obj << /D [522 0 R /XYZ 56.693 706.962 null] >> endobj 527 0 obj << /D [522 0 R /XYZ 56.693 696.004 null] >> endobj 287 0 obj << /D [522 0 R /XYZ 56.693 485.747 null] >> endobj 528 0 obj << /D [522 0 R /XYZ 56.693 479.769 null] >> endobj 529 0 obj << /D [522 0 R /XYZ 56.693 482.658 null] >> endobj 530 0 obj << /D [522 0 R /XYZ 56.693 471.7 null] >> endobj 288 0 obj << /D [522 0 R /XYZ 56.693 261.443 null] >> endobj 531 0 obj << /D [522 0 R /XYZ 56.693 255.465 null] >> endobj 532 0 obj << /D [522 0 R /XYZ 56.693 258.355 null] >> endobj 533 0 obj << /D [522 0 R /XYZ 56.693 247.396 null] >> endobj 521 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F105 312 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 540 0 obj << /Length 1501 /Filter /FlateDecode >> stream xڽY[o6~=,E-ujӎ1G$Y߾C%YvC J&?Vѫ[mV1fK$V#m)-^ r <ۦÕ\K`j!ڰ*AJLoWr^0a"e(`J?e2ao +֜+j61dGI鏼84q| lCPʥiT e }@mJoe7 @ݎ sGڴ`glg1뢘RSzmwDc:qڐvߦ5yVL#{:7ڿ0}߮qt,vT]+ +1#bտ??U75];*b]龉?P=AFcɛUESIO(F IY$jUge.OpP$N(H5r3ٰ(_+s벵`402R`7T)%#VR/M]U{sAEw2)jحv`AVaY Ɋ zMAs.s iyb),?.$| ~IQZGI?p}֥)@H9ƕʦTc˃oC8[Vcl>e^@ t C``Zc/iRÅ_/IqQ|bGI0~K r {r<::jnF?1w=I ON$֢g`6Ȅ3 c$u{\pYWuzr2$CE vPDqlӆ&[\7<)l/oa睪:.)a{ׁ?>~C]n7Gv>wYv-h\^  endstream endobj 539 0 obj << /Type /Page /Contents 540 0 R /Resources 538 0 R /MediaBox [0 0 595.276 841.89] /Parent 482 0 R /Annots [ 534 0 R 535 0 R 536 0 R 537 0 R ] >> endobj 534 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 614.106 272.935 628.054] /A << /S /GoTo /D (GType) >> >> endobj 535 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.588 344.901 246.141 355.805] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 536 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 160.417 268.192 174.365] /A << /S /GoTo /D (GValue) >> >> endobj 537 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 87.785 83.303 96.632] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 541 0 obj << /D [539 0 R /XYZ -11.232 878.039 null] >> endobj 290 0 obj << /D [539 0 R /XYZ 56.693 741.921 null] >> endobj 542 0 obj << /D [539 0 R /XYZ 56.693 735.943 null] >> endobj 543 0 obj << /D [539 0 R /XYZ 56.693 738.833 null] >> endobj 544 0 obj << /D [539 0 R /XYZ 56.693 727.874 null] >> endobj 545 0 obj << /D [539 0 R /XYZ 56.693 716.915 null] >> endobj 291 0 obj << /D [539 0 R /XYZ 56.693 512.536 null] >> endobj 546 0 obj << /D [539 0 R /XYZ 56.693 506.558 null] >> endobj 547 0 obj << /D [539 0 R /XYZ 56.693 509.448 null] >> endobj 548 0 obj << /D [539 0 R /XYZ 56.693 498.489 null] >> endobj 292 0 obj << /D [539 0 R /XYZ 56.693 288.232 null] >> endobj 549 0 obj << /D [539 0 R /XYZ 56.693 282.254 null] >> endobj 550 0 obj << /D [539 0 R /XYZ 56.693 285.144 null] >> endobj 551 0 obj << /D [539 0 R /XYZ 56.693 274.185 null] >> endobj 552 0 obj << /D [539 0 R /XYZ 56.693 263.226 null] >> endobj 538 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 562 0 obj << /Length 1289 /Filter /FlateDecode >> stream xY[o6~ ln˖z{ Cԅ#ܥ;XT/M~]#N{QD[dULIH[xjFt>Βvp$E_.iDqX|}ī`>x;:;:1PS+Ɔ3Xkj{jУ D]#aDM-A ,Az$)+ћޟ=RP?kikIȱ?-4ē|+!V!V\U6 /(POg[D@ơqӆ}k"&Ks*̨@ [cQiŠ (kb\ WLMˆ2mVR2`{Qdd&$EDY1W\Icb[dp,$#ͨG4 =5XeF, KŸeR!Xlm2ZYL 9TQLrNߍbP8w$g$1XH;d٫Gף>`jH&Ō񽑬ɺmO2!UO,P#iMsѭe;Ēh:v?~NnEc#&_r%MӢm#=͋tYYr[C˺N+u %omVw\`,@ìJcyBl}4LtorwAQXaL磫 -n'yk[ (6J{mR4IWsW32r+~6/70H.( ;MᬹzLo^0h0p ^1!.$DdfV1H'$baE˝3hwdz%fj_D{#Ur-7b@ %@1P"(q (aM@r7D)'j_)SŘnC=ov@T!y$)eָ֥pd 2C][i=L` TK<.Ԍms^W|B5wŻIQϯGaYJSnjc7Kӟmvq"f5ti[n3E> endobj 554 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.225 422.159 287.924 433.063] /A << /S /GoTo /D (G-OBJECT-LOG-REF-COUNT:CAPS) >> >> endobj 555 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 288.035 91.9 301.982] /A << /S /GoTo /D (GstBin) >> >> endobj 556 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 288.035 238.753 301.982] /A << /S /GoTo /D (BtApplication--bin) >> >> endobj 557 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 275.98 105.19 289.927] /A << /S /GoTo /D (BtSettings) >> >> endobj 558 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 275.98 256.466 289.927] /A << /S /GoTo /D (BtApplication--settings) >> >> endobj 559 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 213.657 288.058 227.604] /A << /S /GoTo /D (BtApplication-struct) >> >> endobj 563 0 obj << /D [561 0 R /XYZ -16.307 878.039 null] >> endobj 564 0 obj << /D [561 0 R /XYZ 56.693 741.323 null] >> endobj 293 0 obj << /D [561 0 R /XYZ 56.693 715.961 null] >> endobj 565 0 obj << /D [561 0 R /XYZ 56.693 709.984 null] >> endobj 566 0 obj << /D [561 0 R /XYZ 56.693 712.873 null] >> endobj 294 0 obj << /D [561 0 R /XYZ 56.693 632.827 null] >> endobj 567 0 obj << /D [561 0 R /XYZ 56.693 626.849 null] >> endobj 568 0 obj << /D [561 0 R /XYZ 56.693 629.738 null] >> endobj 295 0 obj << /D [561 0 R /XYZ 56.693 549.692 null] >> endobj 569 0 obj << /D [561 0 R /XYZ 56.693 543.715 null] >> endobj 570 0 obj << /D [561 0 R /XYZ 56.693 546.604 null] >> endobj 296 0 obj << /D [561 0 R /XYZ 56.693 466.558 null] >> endobj 571 0 obj << /D [561 0 R /XYZ 56.693 460.58 null] >> endobj 572 0 obj << /D [561 0 R /XYZ 56.693 463.469 null] >> endobj 58 0 obj << /D [561 0 R /XYZ 56.693 408.146 null] >> endobj 143 0 obj << /D [561 0 R /XYZ 56.693 371.149 null] >> endobj 573 0 obj << /D [561 0 R /XYZ 56.693 312.941 null] >> endobj 574 0 obj << /D [561 0 R /XYZ 56.693 238.563 null] >> endobj 575 0 obj << /D [561 0 R /XYZ 56.693 176.24 null] >> endobj 576 0 obj << /D [561 0 R /XYZ 56.693 170.263 null] >> endobj 577 0 obj << /D [561 0 R /XYZ 56.693 173.75 null] >> endobj 578 0 obj << /D [561 0 R /XYZ 56.693 162.791 null] >> endobj 579 0 obj << /D [561 0 R /XYZ 56.693 98.087 null] >> endobj 560 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 607 0 obj << /Length 1647 /Filter /FlateDecode >> stream xڽYK6W(YoJ-z6E H=l@^Jr͡Ç,yQ!g8Ï8X8\&/T(T@H$cep^n~8/~.J>[]|?$6ɦgpZɌZIFA^E 2c&g'p@,0R#k\`D,x?mE$n%=A1wբL7uZI_~z8 &KkUk} t>vL;|I+ҽ.}ܖźѓVN"K M/D$_֛Lu^ɫm00ӵsָG`)woԵ.sS(f͌yR7 rɶ.`"ɲ{[M m ˻Ipce2&g{P7^dPiKz[nL| b ~"ɽ#ލReT.K9M> ?Pi~ 7ee}?"D}ǝ6&lJBX6ESe2diT 깱?b= _@c8Y[.$|o A~^2a|3]vQC9 gKj7gZrKx;:n( (E&2q݁4`"7f'Eqn[p)D3SLX>;=e.b6M,a} O={%#d 2vϼDwD%gB'GOM NP⶯dFqHěBSH¼HON}##60(B'!޾7';eJ9? %M<e=e⓷cfIFj`udayptGi.Lwi`afhҷGk˚R_fe+}@Wg a1֠}XeBMwI`Ν^t82fw;G9-V2حSYi2G9wL͎P(3aE( ή( P 1bmr0vW|vG)GrGP TNb1L 7H 0`C嵌)WLkySĸ}[!žˆ{@F&^P4jޟ}ޯP'GzLA.q:C*+:@)E=]O}ȪJn9" Jak*HWi`wo0Qjv̎C9ʲ#*{e>5?c}e]]bmSЀbnf#:.\CtIPI]'c)\g],E7=sr&P 2 1܂';~HWQM@As&}dvq}}_)hk>k2 tµώ6̫JYMI@`n Ϩ\ v'W:RiDIң,*vUJKfS+ ʝ{ endstream endobj 636 0 obj << /Type /Page /Contents 637 0 R /Resources 635 0 R /MediaBox [0 0 595.276 841.89] /Parent 627 0 R /Annots [ 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 632 0 R 633 0 R 634 0 R ] >> endobj 597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 716.417 100.19 730.364] /A << /S /GoTo /D (gboolean) >> >> endobj 598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 716.417 277.936 730.364] /A << /S /GoTo /D (BtAudioSession--audio-locked) >> >> endobj 599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 704.362 110.71 718.309] /A << /S /GoTo /D (GstElement) >> >> endobj 600 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 704.362 268.083 718.309] /A << /S /GoTo /D (BtAudioSession--audio-sink) >> >> endobj 601 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 692.307 85.794 706.255] /A << /S /GoTo /D (gchar) >> >> endobj 602 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 692.307 297.153 706.255] /A << /S /GoTo /D (BtAudioSession--audio-sink-device) >> >> endobj 603 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 680.252 85.794 694.2] /A << /S /GoTo /D (gchar) >> >> endobj 604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 680.252 292.979 694.2] /A << /S /GoTo /D (BtAudioSession--audio-sink-name) >> >> endobj 632 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 617.929 296.366 631.877] /A << /S /GoTo /D (BtAudioSession-struct) >> >> endobj 633 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.367 397.342 147.817 408.246] /A << /S /GoTo /D (BtApplication) >> >> endobj 634 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [127.078 385.387 225.667 396.29] /A << /S /GoTo /D (bt-audio-session-new) >> >> endobj 638 0 obj << /D [636 0 R /XYZ -16.307 878.039 null] >> endobj 639 0 obj << /D [636 0 R /XYZ 56.693 741.323 null] >> endobj 640 0 obj << /D [636 0 R /XYZ 56.693 642.836 null] >> endobj 641 0 obj << /D [636 0 R /XYZ 56.693 580.512 null] >> endobj 642 0 obj << /D [636 0 R /XYZ 56.693 574.535 null] >> endobj 643 0 obj << /D [636 0 R /XYZ 56.693 578.022 null] >> endobj 644 0 obj << /D [636 0 R /XYZ 56.693 567.063 null] >> endobj 645 0 obj << /D [636 0 R /XYZ 56.693 502.359 null] >> endobj 646 0 obj << /D [636 0 R /XYZ 56.693 444.131 null] >> endobj 647 0 obj << /D [636 0 R /XYZ 56.693 344.06 null] >> endobj 631 0 obj << /D [636 0 R /XYZ 56.693 318.698 null] >> endobj 648 0 obj << /D [636 0 R /XYZ 56.693 312.721 null] >> endobj 649 0 obj << /D [636 0 R /XYZ 56.693 315.61 null] >> endobj 650 0 obj << /D [636 0 R /XYZ 56.693 304.651 null] >> endobj 651 0 obj << /D [636 0 R /XYZ 56.693 155.968 null] >> endobj 652 0 obj << /D [636 0 R /XYZ 56.693 130.606 null] >> endobj 653 0 obj << /D [636 0 R /XYZ 56.693 124.629 null] >> endobj 654 0 obj << /D [636 0 R /XYZ 56.693 127.518 null] >> endobj 635 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 710 0 obj << /Length 1233 /Filter /FlateDecode >> stream x͙nFzYJ4%]n*HF`rI* )e340H31A7dpr-*dr-5E4<]Vd?1dxZ^e.\|ps4.u>Oޟ UܛZc<fxh?gp6=0 {D}-G.3bY; 8F>-AŁnAH(` P"/tiќoФNRU7ǪJB-8bGz n@w FrEHo}\}0z[2,NDjiߡ}1pF)Jwt.[.R7-56m͐x" -4 Ӭ( Rlv> khL(Dd#_v2257n%)BUzGYxzDQ|7]jATzHj Tۆ'-fW/h?J]{i#Y*a[?}jmj|U[w^Ro/\~Ox; endstream endobj 709 0 obj << /Type /Page /Contents 710 0 R /Resources 708 0 R /MediaBox [0 0 595.276 841.89] /Parent 627 0 R /Annots [ 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R ] >> endobj 660 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 162.505 105.769 176.453] /A << /S /GoTo /D (gboolean) >> >> endobj 661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 162.505 389.885 176.453] /A << /S /GoTo /D (bt-settings-determine-audiosink-name) >> >> endobj 662 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 150.45 118.8 164.398] /A << /S /GoTo /D (GHashTable) >> >> endobj 663 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 150.45 376.585 164.398] /A << /S /GoTo /D (bt-settings-parse-ic-playback-spec) >> >> endobj 664 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 138.396 91.373 152.343] /A << /S /GoTo /D (gchar) >> >> endobj 665 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 138.396 382.124 152.343] /A << /S /GoTo /D (bt-settings-format-ic-playback-spec) >> >> endobj 666 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 126.341 110.769 140.288] /A << /S /GoTo /D (BtSettings) >> >> endobj 667 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 126.341 301.238 140.288] /A << /S /GoTo /D (bt-settings-make) >> >> endobj 711 0 obj << /D [709 0 R /XYZ -11.232 878.039 null] >> endobj 712 0 obj << /D [709 0 R /XYZ 56.693 741.323 null] >> endobj 655 0 obj << /D [709 0 R /XYZ 56.693 715.961 null] >> endobj 713 0 obj << /D [709 0 R /XYZ 56.693 709.984 null] >> endobj 714 0 obj << /D [709 0 R /XYZ 56.693 712.873 null] >> endobj 657 0 obj << /D [709 0 R /XYZ 56.693 596.961 null] >> endobj 715 0 obj << /D [709 0 R /XYZ 56.693 590.984 null] >> endobj 716 0 obj << /D [709 0 R /XYZ 56.693 593.873 null] >> endobj 658 0 obj << /D [709 0 R /XYZ 56.693 495.894 null] >> endobj 717 0 obj << /D [709 0 R /XYZ 56.693 489.916 null] >> endobj 718 0 obj << /D [709 0 R /XYZ 56.693 492.806 null] >> endobj 659 0 obj << /D [709 0 R /XYZ 56.693 376.894 null] >> endobj 719 0 obj << /D [709 0 R /XYZ 56.693 370.916 null] >> endobj 720 0 obj << /D [709 0 R /XYZ 56.693 373.805 null] >> endobj 60 0 obj << /D [709 0 R /XYZ 56.693 284.674 null] >> endobj 582 0 obj << /D [709 0 R /XYZ 56.693 245.62 null] >> endobj 721 0 obj << /D [709 0 R /XYZ 56.693 187.412 null] >> endobj 722 0 obj << /D [709 0 R /XYZ 56.693 91.695 null] >> endobj 708 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 754 0 obj << /Length 2363 /Filter /FlateDecode >> stream xڵ]o+,PԶl;.P @[3JfGЉ-au1#ۑ_=$Q,xJ!ɔ%*"*4{wʾTٻfþ2Ṫcz{ \)vJnѪ}n{C`%g I+NVxn]"FIxM>듪u?pB;%(¼g[盬pN9ɧq|HFDq/! 6}(SqFWž./gL!L_\>A1BKz@Sخ a BPrNWpIDt*lo-VfN"7>d xC(wPBާcQ6GB#'+C]f[{X4bE* ``."qxHթ -Jq`DOV{l|g <,)4'bSIGtB}"E gMΌ0CU aU G}x7b(L!E#>!oG))Ca5U1:TE1;Nv]3P4MH}83"Q),0O$ ʪ/ccC`Gc+;wHs`ulPuu⡎;T FۧF"%Hr2Ggxr |Sp2rpYWAC)!ɢ-?hF/Le9Mhm) ) /o_D" S S4L`ݱ<7%:mn%Ƽ?mg van{tw* ]La[)X>|:~c@y~d^IX*:,}B?uKQggyZy^NW(c=^\\F+9E|Wyy?omC\84žPyOUvh+w*gSwϲi{|h\>Brl5幩kVdr_{B]~<'34`yuvJj> endobj 668 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 747.457 85.794 761.405] /A << /S /GoTo /D (gchar) >> >> endobj 669 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 747.457 264.765 761.405] /A << /S /GoTo /D (BtSettings--audiosink) >> >> endobj 670 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 735.402 85.794 749.35] /A << /S /GoTo /D (gchar) >> >> endobj 671 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 735.402 293.836 749.35] /A << /S /GoTo /D (BtSettings--audiosink-device) >> >> endobj 672 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 723.347 84.15 737.295] /A << /S /GoTo /D (guint) >> >> endobj 673 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 723.347 260.88 737.295] /A << /S /GoTo /D (BtSettings--channels) >> >> endobj 674 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 711.292 100.19 725.24] /A << /S /GoTo /D (gboolean) >> >> endobj 675 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 711.292 316.352 725.24] /A << /S /GoTo /D (BtSettings--coherence-upnp-active) >> >> endobj 676 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 699.238 84.15 713.185] /A << /S /GoTo /D (guint) >> >> endobj 677 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 699.238 309.009 713.185] /A << /S /GoTo /D (BtSettings--coherence-upnp-port) >> >> endobj 678 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 687.183 100.19 701.13] /A << /S /GoTo /D (gboolean) >> >> endobj 679 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 687.183 287.44 701.13] /A << /S /GoTo /D (BtSettings--compact-theme) >> >> endobj 680 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 675.128 100.19 689.076] /A << /S /GoTo /D (gboolean) >> >> endobj 681 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 675.128 271.39 689.076] /A << /S /GoTo /D (BtSettings--dark-theme) >> >> endobj 682 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 663.073 85.794 677.021] /A << /S /GoTo /D (gchar) >> >> endobj 683 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 663.073 274.17 677.021] /A << /S /GoTo /D (BtSettings--grid-density) >> >> endobj 684 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 651.018 100.19 664.966] /A << /S /GoTo /D (gboolean) >> >> endobj 685 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 651.018 299.206 664.966] /A << /S /GoTo /D (BtSettings--ic-playback-active) >> >> endobj 686 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 638.963 85.794 652.911] /A << /S /GoTo /D (gchar) >> >> endobj 687 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 638.963 293.517 652.911] /A << /S /GoTo /D (BtSettings--ic-playback-spec) >> >> endobj 688 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 626.909 100.19 640.856] /A << /S /GoTo /D (gboolean) >> >> endobj 689 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 626.909 311.23 640.856] /A << /S /GoTo /D (BtSettings--jack-transport-master) >> >> endobj 690 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 614.854 100.19 628.801] /A << /S /GoTo /D (gboolean) >> >> endobj 691 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 614.854 304.795 628.801] /A << /S /GoTo /D (BtSettings--jack-transport-slave) >> >> endobj 692 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 602.799 84.15 616.747] /A << /S /GoTo /D (guint) >> >> endobj 693 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 602.799 254.643 616.747] /A << /S /GoTo /D (BtSettings--latency) >> >> endobj 694 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 590.744 85.794 604.692] /A << /S /GoTo /D (gchar) >> >> endobj 695 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 590.744 297.97 604.692] /A << /S /GoTo /D (BtSettings--missing-machines) >> >> endobj 696 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 578.689 84.15 592.637] /A << /S /GoTo /D (guint) >> >> endobj 697 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 578.689 267.266 592.637] /A << /S /GoTo /D (BtSettings--news-seen) >> >> endobj 698 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 566.634 85.794 580.582] /A << /S /GoTo /D (gchar) >> >> endobj 699 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 566.634 281.911 580.582] /A << /S /GoTo /D (BtSettings--presented-tips) >> >> endobj 700 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 554.58 85.794 568.527] /A << /S /GoTo /D (gchar) >> >> endobj 701 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 554.58 278.573 568.527] /A << /S /GoTo /D (BtSettings--record-folder) >> >> endobj 702 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 542.525 85.794 556.472] /A << /S /GoTo /D (gchar) >> >> endobj 703 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 542.525 281.353 556.472] /A << /S /GoTo /D (BtSettings--sample-folder) >> >> endobj 704 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 530.47 84.15 544.418] /A << /S /GoTo /D (guint) >> >> endobj 705 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 530.47 272.496 544.418] /A << /S /GoTo /D (BtSettings--sample-rate) >> >> endobj 706 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 518.415 100.19 532.363] /A << /S /GoTo /D (gboolean) >> >> endobj 707 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 518.415 264.516 532.363] /A << /S /GoTo /D (BtSettings--show-tips) >> >> endobj 728 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 506.36 85.794 520.308] /A << /S /GoTo /D (gchar) >> >> endobj 729 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 506.36 271.948 520.308] /A << /S /GoTo /D (BtSettings--song-folder) >> >> endobj 730 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 494.305 100.19 508.253] /A << /S /GoTo /D (gboolean) >> >> endobj 731 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 494.305 281.711 508.253] /A << /S /GoTo /D (BtSettings--statusbar-hide) >> >> endobj 732 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 482.251 85.794 496.198] /A << /S /GoTo /D (gchar) >> >> endobj 733 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 482.251 295.759 496.198] /A << /S /GoTo /D (BtSettings--system-audiosink) >> >> endobj 734 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 470.196 100.19 484.144] /A << /S /GoTo /D (gboolean) >> >> endobj 735 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 470.196 262.544 484.144] /A << /S /GoTo /D (BtSettings--tabs-hide) >> >> endobj 736 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 458.141 100.19 472.089] /A << /S /GoTo /D (gboolean) >> >> endobj 737 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 458.141 274.519 472.089] /A << /S /GoTo /D (BtSettings--toolbar-hide) >> >> endobj 738 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 446.086 85.794 460.034] /A << /S /GoTo /D (gchar) >> >> endobj 739 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 446.086 276.182 460.034] /A << /S /GoTo /D (BtSettings--toolbar-style) >> >> endobj 740 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 434.031 79.168 447.979] /A << /S /GoTo /D (gint) >> >> endobj 741 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 434.031 286.095 447.979] /A << /S /GoTo /D (BtSettings--window-height) >> >> endobj 742 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 421.976 79.168 435.924] /A << /S /GoTo /D (gint) >> >> endobj 743 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 421.976 283.884 435.924] /A << /S /GoTo /D (BtSettings--window-width) >> >> endobj 744 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 409.922 79.168 423.869] /A << /S /GoTo /D (gint) >> >> endobj 745 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 409.922 280.008 423.869] /A << /S /GoTo /D (BtSettings--window-xpos) >> >> endobj 746 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 397.867 79.168 411.815] /A << /S /GoTo /D (gint) >> >> endobj 747 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 397.867 280.008 411.815] /A << /S /GoTo /D (BtSettings--window-ypos) >> >> endobj 748 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 335.544 273.124 349.491] /A << /S /GoTo /D (BtSettings-struct) >> >> endobj 749 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.537 157.189 176.282 168.093] /A << /S /GoTo /D (GObject) >> >> endobj 750 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [342.256 157.189 402.35 168.093] /A << /S /GoTo /D (g-object-get) >> >> endobj 751 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [420.641 157.189 479.629 168.093] /A << /S /GoTo /D (g-object-set) >> >> endobj 755 0 obj << /D [753 0 R /XYZ -16.307 878.039 null] >> endobj 756 0 obj << /D [753 0 R /XYZ 56.693 360.45 null] >> endobj 757 0 obj << /D [753 0 R /XYZ 56.693 301.883 null] >> endobj 758 0 obj << /D [753 0 R /XYZ 56.693 297.157 null] >> endobj 759 0 obj << /D [753 0 R /XYZ 56.693 300.644 null] >> endobj 760 0 obj << /D [753 0 R /XYZ 56.693 289.685 null] >> endobj 761 0 obj << /D [753 0 R /XYZ 56.693 228.024 null] >> endobj 762 0 obj << /D [753 0 R /XYZ 56.693 172.838 null] >> endobj 763 0 obj << /D [753 0 R /XYZ 56.693 105.698 null] >> endobj 723 0 obj << /D [753 0 R /XYZ 56.693 81.588 null] >> endobj 752 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 800 0 obj << /Length 1503 /Filter /FlateDecode >> stream xڽYs8~#Ueͽ37K{I3"0M{C[2`cClljOGDMz{QdQL IHjFSt׿%! lj-~ڙMl4? M܏>VhhA]qv>z( "҆Q^&e &].Uspqjl=lZDvn8]DO(\JPJ$4]$Ҭwߝ8yJeH56X[4KvS_D&[oo&a6SBSIvTJ\J ֌UZb dԲ" K )H0 baHR`D|&k+|a(xy~ *חVWc!nC @00yѪ'ULҨlJ`iNDqldJKyvF4{_Cc9Y-@ZʒB\4\ R`M%ho_Q ;oakd%W;p/ʫWi$Jx&VEKJ%ǘzہ ? yqyxloiRìÂx1ထ3Ч>ӵ nFK!Hp!@qs15ZF;~*[wQjg$Ά= sw ~W;gDTиζk̭/.yRаa28<~FPn\g?삌b! `'iYWHhGZs4oA\| +wo)"WHkI:ϛX[EPa[g;}vX%I>}A&kƦ(Ĵb=yw^7f.$ҙfY.#8Y3 }9bwcζ3&J=%*9ٝaWEgpLI'\gۣ2knm9pu[jT/[Ł|yX_<+rؖ;fX61@|,J%DY3})s(!^H endstream endobj 799 0 obj << /Type /Page /Contents 800 0 R /Resources 798 0 R /MediaBox [0 0 595.276 841.89] /Parent 627 0 R /Annots [ 797 0 R ] >> endobj 797 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 505.067 83.303 513.914] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 801 0 obj << /D [799 0 R /XYZ -11.232 878.039 null] >> endobj 802 0 obj << /D [799 0 R /XYZ 56.693 761.903 null] >> endobj 803 0 obj << /D [799 0 R /XYZ 56.693 755.228 null] >> endobj 804 0 obj << /D [799 0 R /XYZ 56.693 744.269 null] >> endobj 805 0 obj << /D [799 0 R /XYZ 56.693 733.31 null] >> endobj 806 0 obj << /D [799 0 R /XYZ 56.693 722.351 null] >> endobj 725 0 obj << /D [799 0 R /XYZ 56.693 464.274 null] >> endobj 807 0 obj << /D [799 0 R /XYZ 56.693 458.296 null] >> endobj 808 0 obj << /D [799 0 R /XYZ 56.693 461.185 null] >> endobj 809 0 obj << /D [799 0 R /XYZ 56.693 450.226 null] >> endobj 726 0 obj << /D [799 0 R /XYZ 56.693 228.114 null] >> endobj 810 0 obj << /D [799 0 R /XYZ 56.693 222.137 null] >> endobj 811 0 obj << /D [799 0 R /XYZ 56.693 225.026 null] >> endobj 812 0 obj << /D [799 0 R /XYZ 56.693 214.067 null] >> endobj 798 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 816 0 obj << /Length 1332 /Filter /FlateDecode >> stream xXMs6WHu*$SԙɤQۃP"0(vC{ Kdf4$@av!戠7"QcϐTX1[sY&s7W4 1YIu ՇEY_IG['Kxq !HE!f`K01G1*5m`m! };>~Ǭpo`l XΑ}tXFqpTcX](m|t c jDTݱVs{Omm"?@0!-\-B"pn <:N s05~yfs;N=Iݖ$GI:|q8dǻw]nYꜪ}e Rnm6U][V3@SBb!\ lW6!2/$otu3͐c3+ ͶRP1&$Jm60}JcNOGy&d(G<S?:<I&%ND0AH_"{ Ĭ(t^*X[_(\鄁J#O& ~؃@%dS}X|ܟsJ!z# BI,*"YL|:__3ۻ<_~n%l+]"a~ endstream endobj 815 0 obj << /Type /Page /Contents 816 0 R /Resources 814 0 R /MediaBox [0 0 595.276 841.89] /Parent 627 0 R /Annots [ 813 0 R ] >> endobj 813 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [116.289 565.53 144.842 574.377] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 817 0 obj << /D [815 0 R /XYZ -16.307 878.039 null] >> endobj 727 0 obj << /D [815 0 R /XYZ 56.693 691.938 null] >> endobj 818 0 obj << /D [815 0 R /XYZ 56.693 687.651 null] >> endobj 819 0 obj << /D [815 0 R /XYZ 56.693 690.541 null] >> endobj 820 0 obj << /D [815 0 R /XYZ 56.693 679.582 null] >> endobj 821 0 obj << /D [815 0 R /XYZ 56.693 508.323 null] >> endobj 794 0 obj << /D [815 0 R /XYZ 56.693 484.652 null] >> endobj 822 0 obj << /D [815 0 R /XYZ 56.693 480.365 null] >> endobj 823 0 obj << /D [815 0 R /XYZ 56.693 483.254 null] >> endobj 824 0 obj << /D [815 0 R /XYZ 56.693 406.417 null] >> endobj 764 0 obj << /D [815 0 R /XYZ 56.693 382.746 null] >> endobj 825 0 obj << /D [815 0 R /XYZ 56.693 378.459 null] >> endobj 826 0 obj << /D [815 0 R /XYZ 56.693 381.348 null] >> endobj 765 0 obj << /D [815 0 R /XYZ 56.693 274.617 null] >> endobj 827 0 obj << /D [815 0 R /XYZ 56.693 270.33 null] >> endobj 828 0 obj << /D [815 0 R /XYZ 56.693 273.219 null] >> endobj 766 0 obj << /D [815 0 R /XYZ 56.693 166.488 null] >> endobj 829 0 obj << /D [815 0 R /XYZ 56.693 162.201 null] >> endobj 830 0 obj << /D [815 0 R /XYZ 56.693 165.09 null] >> endobj 814 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 833 0 obj << /Length 1129 /Filter /FlateDecode >> stream xՙK6DNrq~M -dYȒ;[kŢDr834 Z!n'׳ՍbB% +ˑpCp*!$—Ew2)H;:'d`5/,gDlei)gU B^>:MƷ]m=̣*,2z"+R7Yqr5b2c~NSʏfu3" dqE+빘eu 2Q1h`- 13XٓQb+7㢪`r٥yՓ.%]X)}\Զ֭|e4f8"jͨ<${G x97s6[qVnN4PQ9|D =f4d3ecM=QH?vhD %k _$y%dFy&ʲ W$$4Ci44pГБ? =I✨sv~\4X|4pM1Ha%Z.w% soU*EV'2(La3UjgRc"hߑ?,+{2" yN滽M, xy9@TR,Uù!%\Ò9=NyNLO]r.&96 endstream endobj 832 0 obj << /Type /Page /Contents 833 0 R /Resources 831 0 R /MediaBox [0 0 595.276 841.89] /Parent 847 0 R >> endobj 834 0 obj << /D [832 0 R /XYZ -11.232 878.039 null] >> endobj 767 0 obj << /D [832 0 R /XYZ 56.693 741.921 null] >> endobj 835 0 obj << /D [832 0 R /XYZ 56.693 736.26 null] >> endobj 836 0 obj << /D [832 0 R /XYZ 56.693 739.15 null] >> endobj 768 0 obj << /D [832 0 R /XYZ 56.693 624.959 null] >> endobj 837 0 obj << /D [832 0 R /XYZ 56.693 619.299 null] >> endobj 838 0 obj << /D [832 0 R /XYZ 56.693 622.188 null] >> endobj 769 0 obj << /D [832 0 R /XYZ 56.693 507.998 null] >> endobj 839 0 obj << /D [832 0 R /XYZ 56.693 502.337 null] >> endobj 840 0 obj << /D [832 0 R /XYZ 56.693 505.227 null] >> endobj 770 0 obj << /D [832 0 R /XYZ 56.693 391.036 null] >> endobj 841 0 obj << /D [832 0 R /XYZ 56.693 385.376 null] >> endobj 842 0 obj << /D [832 0 R /XYZ 56.693 388.265 null] >> endobj 771 0 obj << /D [832 0 R /XYZ 56.693 274.075 null] >> endobj 843 0 obj << /D [832 0 R /XYZ 56.693 268.414 null] >> endobj 844 0 obj << /D [832 0 R /XYZ 56.693 271.304 null] >> endobj 772 0 obj << /D [832 0 R /XYZ 56.693 157.113 null] >> endobj 845 0 obj << /D [832 0 R /XYZ 56.693 151.453 null] >> endobj 846 0 obj << /D [832 0 R /XYZ 56.693 154.342 null] >> endobj 831 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 850 0 obj << /Length 1124 /Filter /FlateDecode >> stream xՙM6:Nlݙ̶3Ma6):ΡM,$|dlru(Dp P 0wOSp]Y[йN0݆aF" XAXPRb6$w,fz6g$MYA? 07`W\$T~MC$>P1T̩2[i/XBFYBh$?~ёc[1f&eKW+;Thۖ H Vq$T `q`汴ӣ_o@878*v&Dp(K@EpeL0S02nՔPp%.>ۉyG;'ҌݓLT{zc'W!-Uk6EǍ} PƟM@B ĐlݬA"\ ұ$[v{OqØ0Ne%! ׺@Ieԧ*_}ԪbjۤVj&[]㯻oP.zŊlZlaQ 1H 6!2cZ1fA!A~xNk\b 8eӣg$Jz p Gj49R0ʿIӲpeG[GG:2,%s3 @S$ nOxa*05b#PU;2 a^ _0, Ő#42p1>%  gb<.ShiFv"J{AL~HZlYT"SON(ͩ Ko .{) ĩk߲_%Ifx筚nd B/Eߐ(tiN5*Nu1 @8рВ? rB^'ua g^2(()㍟n׏:oN/͵lrh&~*_zWi>4.H#9@0zҒ? f3bbR9x\b̡T췅@,o-YGYiu㺻yA̸1J endstream endobj 849 0 obj << /Type /Page /Contents 850 0 R /Resources 848 0 R /MediaBox [0 0 595.276 841.89] /Parent 847 0 R >> endobj 851 0 obj << /D [849 0 R /XYZ -16.307 878.039 null] >> endobj 773 0 obj << /D [849 0 R /XYZ 56.693 741.921 null] >> endobj 852 0 obj << /D [849 0 R /XYZ 56.693 736.722 null] >> endobj 853 0 obj << /D [849 0 R /XYZ 56.693 739.611 null] >> endobj 774 0 obj << /D [849 0 R /XYZ 56.693 627.928 null] >> endobj 854 0 obj << /D [849 0 R /XYZ 56.693 622.73 null] >> endobj 855 0 obj << /D [849 0 R /XYZ 56.693 625.619 null] >> endobj 775 0 obj << /D [849 0 R /XYZ 56.693 513.936 null] >> endobj 856 0 obj << /D [849 0 R /XYZ 56.693 508.737 null] >> endobj 857 0 obj << /D [849 0 R /XYZ 56.693 511.626 null] >> endobj 776 0 obj << /D [849 0 R /XYZ 56.693 399.944 null] >> endobj 858 0 obj << /D [849 0 R /XYZ 56.693 394.745 null] >> endobj 859 0 obj << /D [849 0 R /XYZ 56.693 397.634 null] >> endobj 777 0 obj << /D [849 0 R /XYZ 56.693 268.797 null] >> endobj 860 0 obj << /D [849 0 R /XYZ 56.693 263.598 null] >> endobj 861 0 obj << /D [849 0 R /XYZ 56.693 266.488 null] >> endobj 778 0 obj << /D [849 0 R /XYZ 56.693 154.805 null] >> endobj 862 0 obj << /D [849 0 R /XYZ 56.693 149.606 null] >> endobj 863 0 obj << /D [849 0 R /XYZ 56.693 152.495 null] >> endobj 848 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 866 0 obj << /Length 1031 /Filter /FlateDecode >> stream xݙM6 MN)BeddC\,3Ʀ69eBbL3=ɲW$Z 7V[dULIH[h5E= o6>UEh$T…νekmt8}=5+Ɔ3X f8 5PD}քLf#A1|{֠z IJ0 Snv@v3tGLIA})%;~ ._tYqKx#;wib0_$cm%Vz }sײcM\a΄ٿTaFb ;FK; 0`Gw8x_6@+Kalwe<|$|Bz5 V=8ħ^Xp7CD$Ç9>O÷yspX)B2*/21R٠&ck%Zqz m&eCJ2M'-̕WM0F0Wc*MEh̩O ^$;47h6|19ҍkD͛ b8Z3iQY^yƮ8 鮰P> E)$ -`Y٣PT`NaEYr*4 *F]qc"<Ck"dee%E֩--BX ,wcEWUB0"D;b> -*0}&*zG0r"tºP :'QƎnQzp޲z$9FxvlڛwB@qkA(&XoweП\*Sy&jA $+/L`c'd%-8Y٣`RbIzqa닋?YA?K̮r_IƪsOŶCgr endstream endobj 865 0 obj << /Type /Page /Contents 866 0 R /Resources 864 0 R /MediaBox [0 0 595.276 841.89] /Parent 847 0 R >> endobj 867 0 obj << /D [865 0 R /XYZ -11.232 878.039 null] >> endobj 779 0 obj << /D [865 0 R /XYZ 56.693 741.921 null] >> endobj 868 0 obj << /D [865 0 R /XYZ 56.693 736.722 null] >> endobj 869 0 obj << /D [865 0 R /XYZ 56.693 739.611 null] >> endobj 780 0 obj << /D [865 0 R /XYZ 56.693 627.928 null] >> endobj 870 0 obj << /D [865 0 R /XYZ 56.693 622.73 null] >> endobj 871 0 obj << /D [865 0 R /XYZ 56.693 625.619 null] >> endobj 781 0 obj << /D [865 0 R /XYZ 56.693 513.936 null] >> endobj 872 0 obj << /D [865 0 R /XYZ 56.693 508.737 null] >> endobj 873 0 obj << /D [865 0 R /XYZ 56.693 511.626 null] >> endobj 782 0 obj << /D [865 0 R /XYZ 56.693 399.944 null] >> endobj 874 0 obj << /D [865 0 R /XYZ 56.693 394.745 null] >> endobj 875 0 obj << /D [865 0 R /XYZ 56.693 397.634 null] >> endobj 783 0 obj << /D [865 0 R /XYZ 56.693 268.797 null] >> endobj 876 0 obj << /D [865 0 R /XYZ 56.693 263.598 null] >> endobj 877 0 obj << /D [865 0 R /XYZ 56.693 266.488 null] >> endobj 784 0 obj << /D [865 0 R /XYZ 56.693 154.805 null] >> endobj 878 0 obj << /D [865 0 R /XYZ 56.693 149.606 null] >> endobj 879 0 obj << /D [865 0 R /XYZ 56.693 152.495 null] >> endobj 864 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 882 0 obj << /Length 1030 /Filter /FlateDecode >> stream xՙo6W}G h&@ hb]䘱ɖ'KӇ#E9qhHIxwF`م@C-]+1O|-ϣpע4᝹1Y^7u>ߜ](+ˤh-h7^,4XI?'z=~Є\/ooL+p[\$T~Go#;jTMce l_ʦv]M2gSްf hôU9"(.VtDw^C\LD H* %ٿX@ P+ Jn6XO R7 ؏+1c¶,5K&$$dܫ? λ}~3$Hv9>N7qsF"BlRI4@*EiQpcz5b<~+Nd%ļ"OgQBO#4; ͟efͮYsF;"OtʳfEs<ކ`g<_yo-7~9|HQ#L7Ȯ#30b?} endstream endobj 881 0 obj << /Type /Page /Contents 882 0 R /Resources 880 0 R /MediaBox [0 0 595.276 841.89] /Parent 847 0 R >> endobj 883 0 obj << /D [881 0 R /XYZ -16.307 878.039 null] >> endobj 785 0 obj << /D [881 0 R /XYZ 56.693 741.921 null] >> endobj 884 0 obj << /D [881 0 R /XYZ 56.693 736.722 null] >> endobj 885 0 obj << /D [881 0 R /XYZ 56.693 739.611 null] >> endobj 786 0 obj << /D [881 0 R /XYZ 56.693 627.928 null] >> endobj 886 0 obj << /D [881 0 R /XYZ 56.693 622.73 null] >> endobj 887 0 obj << /D [881 0 R /XYZ 56.693 625.619 null] >> endobj 787 0 obj << /D [881 0 R /XYZ 56.693 513.936 null] >> endobj 888 0 obj << /D [881 0 R /XYZ 56.693 508.737 null] >> endobj 889 0 obj << /D [881 0 R /XYZ 56.693 511.626 null] >> endobj 788 0 obj << /D [881 0 R /XYZ 56.693 399.944 null] >> endobj 890 0 obj << /D [881 0 R /XYZ 56.693 394.745 null] >> endobj 891 0 obj << /D [881 0 R /XYZ 56.693 397.634 null] >> endobj 789 0 obj << /D [881 0 R /XYZ 56.693 285.951 null] >> endobj 892 0 obj << /D [881 0 R /XYZ 56.693 280.752 null] >> endobj 893 0 obj << /D [881 0 R /XYZ 56.693 283.642 null] >> endobj 790 0 obj << /D [881 0 R /XYZ 56.693 171.959 null] >> endobj 894 0 obj << /D [881 0 R /XYZ 56.693 166.76 null] >> endobj 895 0 obj << /D [881 0 R /XYZ 56.693 169.649 null] >> endobj 880 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 920 0 obj << /Length 1335 /Filter /FlateDecode >> stream xYnF}WT@_ @6FiS}HhY-M[rI財 {̜YEt3 ^k,)4GRae9 ^?}*y4f ,Ż>tZ](}zm2Zc,Z"r^54;0 M?4goT|D̸>m@ڠQcJT&K)i,Zip-*+Fa ެ&-#l`%Fte1ǚR*̨@ [cQhw`K<0uC+BKal82 ZJIi, 1g>w7x굯{X;:j:!d8_δ…Q, pU KU>Z.4*Yo19|c܃NјSWK"Cx]E:?Ӯ?#5@8nXc@FA\3 ݗ+nK.Ooqі2~tT ے1ևSʥ6f;'p04:[S2$bJ`ʪomʢ5{Ip_ns 5 Q9|L)0 q$P @M_R*DԄqvq[4R%iN/r`塹s$@ygiݗ2MRojԉM P-1gkfIT&;bua8br$@ow ]%q !2IJeA[ʄqjPKg5ѾrdTKՅ/ʰ!C'H-l) !/EB M (gk-!GT&o!{L5wʯTp2RdY+_h~ᆀXѓ'\o%Cx;Caf9Z*uwuzXX\&?w|rru8 endstream endobj 919 0 obj << /Type /Page /Contents 920 0 R /Resources 918 0 R /MediaBox [0 0 595.276 841.89] /Parent 847 0 R /Annots [ 896 0 R 897 0 R 898 0 R 899 0 R 900 0 R 901 0 R 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R ] >> endobj 896 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 271.599 86.76 285.547] /A << /S /GoTo /D (void) >> >> endobj 897 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 271.599 309.637 285.547] /A << /S /GoTo /D (bt-child-proxy-get) >> >> endobj 898 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 259.544 102.999 273.492] /A << /S /GoTo /D (GObject) >> >> endobj 899 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 259.544 376.456 273.492] /A << /S /GoTo /D (bt-child-proxy-get-child-by-index) >> >> endobj 900 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 247.49 102.999 261.437] /A << /S /GoTo /D (GObject) >> >> endobj 901 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 247.49 376.047 261.437] /A << /S /GoTo /D (bt-child-proxy-get-child-by-name) >> >> endobj 902 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 235.435 89.729 249.383] /A << /S /GoTo /D (guint) >> >> endobj 903 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 235.435 374.383 249.383] /A << /S /GoTo /D (bt-child-proxy-get-children-count) >> >> endobj 904 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 223.38 86.76 237.328] /A << /S /GoTo /D (void) >> >> endobj 905 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 223.38 348.371 237.328] /A << /S /GoTo /D (bt-child-proxy-get-property) >> >> endobj 906 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 211.325 86.76 225.273] /A << /S /GoTo /D (void) >> >> endobj 907 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 211.325 335.958 225.273] /A << /S /GoTo /D (bt-child-proxy-get-valist) >> >> endobj 908 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 199.27 105.769 213.218] /A << /S /GoTo /D (gboolean) >> >> endobj 909 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 199.27 325.139 213.218] /A << /S /GoTo /D (bt-child-proxy-lookup) >> >> endobj 910 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 187.215 86.76 201.163] /A << /S /GoTo /D (void) >> >> endobj 911 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 187.215 308.531 201.163] /A << /S /GoTo /D (bt-child-proxy-set) >> >> endobj 912 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 175.161 86.76 189.108] /A << /S /GoTo /D (void) >> >> endobj 913 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 175.161 347.265 189.108] /A << /S /GoTo /D (bt-child-proxy-set-property) >> >> endobj 914 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 163.106 86.76 177.054] /A << /S /GoTo /D (void) >> >> endobj 915 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 163.106 334.852 177.054] /A << /S /GoTo /D (bt-child-proxy-set-valist) >> >> endobj 916 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 100.783 286.962 114.73] /A << /S /GoTo /D (BtChildProxy-struct) >> >> endobj 917 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 88.728 322.259 102.676] /A << /S /GoTo /D (BtChildProxyInterface) >> >> endobj 921 0 obj << /D [919 0 R /XYZ -11.232 878.039 null] >> endobj 791 0 obj << /D [919 0 R /XYZ 56.693 741.921 null] >> endobj 922 0 obj << /D [919 0 R /XYZ 56.693 735.943 null] >> endobj 923 0 obj << /D [919 0 R /XYZ 56.693 738.833 null] >> endobj 792 0 obj << /D [919 0 R /XYZ 56.693 604.988 null] >> endobj 924 0 obj << /D [919 0 R /XYZ 56.693 599.01 null] >> endobj 925 0 obj << /D [919 0 R /XYZ 56.693 601.9 null] >> endobj 793 0 obj << /D [919 0 R /XYZ 56.693 485.988 null] >> endobj 926 0 obj << /D [919 0 R /XYZ 56.693 480.01 null] >> endobj 927 0 obj << /D [919 0 R /XYZ 56.693 482.899 null] >> endobj 61 0 obj << /D [919 0 R /XYZ 56.693 393.768 null] >> endobj 928 0 obj << /D [919 0 R /XYZ 56.693 354.714 null] >> endobj 929 0 obj << /D [919 0 R /XYZ 56.693 296.506 null] >> endobj 930 0 obj << /D [919 0 R /XYZ 56.693 125.689 null] >> endobj 918 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 949 0 obj << /Length 2058 /Filter /FlateDecode >> stream xڽZs_tNgziϽL\SP$Hvg)lٌ`]vAQoQՇ0b+'Q!ng_*]rI7e͏z+]%o>DԋV DS(Їe/, qn.{zl/ K7}Qđwg(7dp`{=|y8q$#q`ea6VgJ~:c_FI,/A iBAq^2E8 f"#2 ;[KǿZyv3'xU #P1^\3Ǣ24ve2j?&ǟީW&m̤U2_+_j>_*u/>UË@є \'(oH1B}hk'w .˿ʊΌgyBdg{b$RBUim,,u//ݬzv)83aɼt6b<+V\ZmUnu.~A;?6b&>S,ێ6[{k|gnl8ěګlZHTBGv髕1$@+x( c<SVdjsLeiRX[kȗUi99`"8)w5w>@2onL[̏+D%?b(?O]>`1dZ¡MUYͺo K) ? dfuö:]덛j]Ug3.]8wX_=7cns &yf,gKK`ػpv&ZUl4vsU{gMM.(=@t Kةk[bfΓ$dYDhf \=Z*Б!dRD}Qwf]nkK(tanTް_ش3Yaެ4ڸ%;'\lˎE\wEN01Bm"FyjwaW=] ep6LPhWluАL+Ptgg+J8W<Eֺ_l²XDP(M}, _'xD 1;*3G-Mz#M(B葩8U:Y…ΪKiXo9 Y_br< \fUܶ-56DLǟh>aX`Fܼ>Yl)ﳁO(퉒n;~C]pI#xs^.Ct( `@*dН$ U4"/O/cݪf6d~'q 9zF\g B"G˃)w%!TS]]y]Az.ws`ΟV4T{@ ;~mib-'=8CIm>mcR$ϝSuFUM`;'H?w]mnb 2bN mV,IE|"}rO {z[y[0ex-$X}y9d0:?Yh^~iyT GcnѹR V,>/'daOژ:%vYqb/:Kxہ+.y|M/9_j=cf]BlO7 P endstream endobj 948 0 obj << /Type /Page /Contents 949 0 R /Resources 947 0 R /MediaBox [0 0 595.276 841.89] /Parent 847 0 R /Annots [ 943 0 R 944 0 R 945 0 R 946 0 R ] >> endobj 943 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.645 576.085 227.27 586.989] /A << /S /GoTo /D (GstPad) >> >> endobj 944 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [535.208 576.085 565.435 586.989] /A << /S /GoTo /D (GstBin) >> >> endobj 945 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [464.198 546.197 550.863 557.101] /A << /S /GoTo /D (bt-child-proxy-get) >> >> endobj 946 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 534.242 141.255 545.146] /A << /S /GoTo /D (bt-child-proxy-set) >> >> endobj 950 0 obj << /D [948 0 R /XYZ -16.307 878.039 null] >> endobj 951 0 obj << /D [948 0 R /XYZ 56.693 741.323 null] >> endobj 952 0 obj << /D [948 0 R /XYZ 56.693 735.346 null] >> endobj 953 0 obj << /D [948 0 R /XYZ 56.693 738.833 null] >> endobj 954 0 obj << /D [948 0 R /XYZ 56.693 727.874 null] >> endobj 955 0 obj << /D [948 0 R /XYZ 56.693 663.17 null] >> endobj 956 0 obj << /D [948 0 R /XYZ 56.693 604.942 null] >> endobj 957 0 obj << /D [948 0 R /XYZ 56.693 439.117 null] >> endobj 931 0 obj << /D [948 0 R /XYZ 56.693 413.756 null] >> endobj 958 0 obj << /D [948 0 R /XYZ 56.693 407.778 null] >> endobj 959 0 obj << /D [948 0 R /XYZ 56.693 410.667 null] >> endobj 960 0 obj << /D [948 0 R /XYZ 56.693 399.708 null] >> endobj 961 0 obj << /D [948 0 R /XYZ 56.693 388.749 null] >> endobj 962 0 obj << /D [948 0 R /XYZ 56.693 377.79 null] >> endobj 932 0 obj << /D [948 0 R /XYZ 56.693 155.872 null] >> endobj 963 0 obj << /D [948 0 R /XYZ 56.693 149.894 null] >> endobj 964 0 obj << /D [948 0 R /XYZ 56.693 152.783 null] >> endobj 965 0 obj << /D [948 0 R /XYZ 56.693 141.824 null] >> endobj 966 0 obj << /D [948 0 R /XYZ 56.693 130.866 null] >> endobj 947 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 972 0 obj << /Length 1310 /Filter /FlateDecode >> stream xYIsF+qrTUSN2xN"!&Z2F r h]?h,)t3ERae9 _}˳IҿާY/iE8\8LVCX`3צhM!Z+%/zwMGDYH.3|~}uV(1%VxU> 8"ʣl@eկyR̥Fg\`_8m141m+j84( L"1-B,}q~ > endobj 968 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [130.406 632.614 158.959 643.518] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 969 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [130.406 373.44 158.959 384.344] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 973 0 obj << /D [971 0 R /XYZ -11.232 878.039 null] >> endobj 933 0 obj << /D [971 0 R /XYZ 56.693 575.945 null] >> endobj 974 0 obj << /D [971 0 R /XYZ 56.693 569.967 null] >> endobj 975 0 obj << /D [971 0 R /XYZ 56.693 572.856 null] >> endobj 976 0 obj << /D [971 0 R /XYZ 56.693 561.897 null] >> endobj 977 0 obj << /D [971 0 R /XYZ 56.693 550.938 null] >> endobj 934 0 obj << /D [971 0 R /XYZ 56.693 316.771 null] >> endobj 978 0 obj << /D [971 0 R /XYZ 56.693 310.794 null] >> endobj 979 0 obj << /D [971 0 R /XYZ 56.693 313.683 null] >> endobj 980 0 obj << /D [971 0 R /XYZ 56.693 302.724 null] >> endobj 935 0 obj << /D [971 0 R /XYZ 56.693 110.4 null] >> endobj 981 0 obj << /D [971 0 R /XYZ 56.693 104.423 null] >> endobj 982 0 obj << /D [971 0 R /XYZ 56.693 107.312 null] >> endobj 983 0 obj << /D [971 0 R /XYZ 56.693 96.353 null] >> endobj 970 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 992 0 obj << /Length 1933 /Filter /FlateDecode >> stream xZ]o6}У=4 Ebo-EumV`H Ceǫb4(D[vDC^s=7w5xy=|kO#-gHj>, .×ū8 /Yˉ{\ { `%3b& 2}5/Do׃G-p&؛xq{O(9> `tia>.2C>d;EZiKBoZ^/taK"M %sޒnܰ KP L&ʚ:Y,G$gV P6\EyptK2sQTޅ7! M^7w@/ƒ!|ϛ*|թW8^%Qa+z>0E5X~ Vcݕ,o8 2j9Ϲuw.)Ae͖ITx8?AR|{XJ`n gHi>:I~ ~On{>3{Ԙ O0P3wgh5<>%BRo۰ߓ@Ϊ_aN~4N9ߙ8;rqBq怽hjd7 6-\杅3wfϠٷ8z83} f&~0C2ߕ mEE 0)4m\T2jE#]RZ11'Seͻ{O]k4.r8N&x]. :U'}%. DiPr?%oDɶPnGpng mHؒZ<ݍ`#J UXRU*]GMzCi%В0˦afL~cK9kӆz/0:c5|5#{^AʓHjLiKm_]vb ݽ4L'"^[Tt; Cj1n cRrg endstream endobj 991 0 obj << /Type /Page /Contents 992 0 R /Resources 990 0 R /MediaBox [0 0 595.276 841.89] /Parent 984 0 R /Annots [ 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R ] >> endobj 985 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [483.538 710.63 549.47 721.534] /A << /S /GoTo /D (g-value-unset) >> >> endobj 986 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 628.509 268.192 638.969] /A << /S /GoTo /D (GValue) >> >> endobj 987 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.102 231.624 219.959 242.528] /A << /S /GoTo /D (GParamSpec) >> >> endobj 988 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.278 123.735 313.024 136.253] /A << /S /GoTo /D (GObject) >> >> endobj 989 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.408 75.914 283.266 86.818] /A << /S /GoTo /D (GParamSpec) >> >> endobj 993 0 obj << /D [991 0 R /XYZ -16.307 878.039 null] >> endobj 994 0 obj << /D [991 0 R /XYZ 56.693 762.899 null] >> endobj 995 0 obj << /D [991 0 R /XYZ 56.693 751.94 null] >> endobj 936 0 obj << /D [991 0 R /XYZ 56.693 577.742 null] >> endobj 996 0 obj << /D [991 0 R /XYZ 56.693 571.765 null] >> endobj 997 0 obj << /D [991 0 R /XYZ 56.693 574.654 null] >> endobj 998 0 obj << /D [991 0 R /XYZ 56.693 563.695 null] >> endobj 999 0 obj << /D [991 0 R /XYZ 56.693 552.736 null] >> endobj 1000 0 obj << /D [991 0 R /XYZ 56.693 541.777 null] >> endobj 937 0 obj << /D [991 0 R /XYZ 56.693 319.858 null] >> endobj 1001 0 obj << /D [991 0 R /XYZ 56.693 313.881 null] >> endobj 1002 0 obj << /D [991 0 R /XYZ 56.693 316.77 null] >> endobj 1003 0 obj << /D [991 0 R /XYZ 56.693 305.811 null] >> endobj 1004 0 obj << /D [991 0 R /XYZ 56.693 294.852 null] >> endobj 1005 0 obj << /D [991 0 R /XYZ 56.693 283.893 null] >> endobj 1006 0 obj << /D [991 0 R /XYZ 56.693 272.934 null] >> endobj 990 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1012 0 obj << /Length 1731 /Filter /FlateDecode >> stream xZ[sF}WQtzSI<ͤm8yI2%*[]0`d}zd\ ίgo 2ja2pT$y}y>zfq2YG:Z ^={qV2 ˕BQش@d+fjπ"'K(\)WL෷FXye>/x42^r,Y67\ WCÏd"uW18aQ6pƑ,L.EɤHi2@QUq^LJolT :a*4*~-)Q^U\SC*hW5~g=i3^*˓t21pu0"HcŽ)Zt?Y½!;~qv!J}W븓JL4C^eUL)O&gp=$!LTpftaڲ#{߅\]2e_!]YCy[Fa5OfO-wm噻&N[n4/[N[£tt4 5!kUP]ja_&Mw> endobj 1009 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [248.248 270.549 280.118 281.01] /A << /S /GoTo /D (GValue) >> >> endobj 1013 0 obj << /D [1011 0 R /XYZ -11.232 878.039 null] >> endobj 938 0 obj << /D [1011 0 R /XYZ 56.693 675.874 null] >> endobj 1014 0 obj << /D [1011 0 R /XYZ 56.693 669.897 null] >> endobj 1015 0 obj << /D [1011 0 R /XYZ 56.693 672.786 null] >> endobj 1016 0 obj << /D [1011 0 R /XYZ 56.693 661.827 null] >> endobj 1017 0 obj << /D [1011 0 R /XYZ 56.693 650.868 null] >> endobj 1018 0 obj << /D [1011 0 R /XYZ 56.693 639.909 null] >> endobj 939 0 obj << /D [1011 0 R /XYZ 56.693 429.946 null] >> endobj 1019 0 obj << /D [1011 0 R /XYZ 56.693 423.968 null] >> endobj 1020 0 obj << /D [1011 0 R /XYZ 56.693 426.857 null] >> endobj 1021 0 obj << /D [1011 0 R /XYZ 56.693 415.898 null] >> endobj 1022 0 obj << /D [1011 0 R /XYZ 56.693 404.94 null] >> endobj 1023 0 obj << /D [1011 0 R /XYZ 56.693 393.981 null] >> endobj 940 0 obj << /D [1011 0 R /XYZ 56.693 219.783 null] >> endobj 1024 0 obj << /D [1011 0 R /XYZ 56.693 213.805 null] >> endobj 1025 0 obj << /D [1011 0 R /XYZ 56.693 216.695 null] >> endobj 1026 0 obj << /D [1011 0 R /XYZ 56.693 205.736 null] >> endobj 1027 0 obj << /D [1011 0 R /XYZ 56.693 194.777 null] >> endobj 1028 0 obj << /D [1011 0 R /XYZ 56.693 183.818 null] >> endobj 1010 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F108 345 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1032 0 obj << /Length 1461 /Filter /FlateDecode >> stream xYےF}+RaۺbW\v8$/ławʿ%X]a@KUX̙=ݽ-Ao{bB9 +ˑ)]8<n$uٗO<}0>Lփϣw7 'Bkl8MSD.a6aAN4}QXD}fMgf;D}KWn35[NL$Bc)uF/BXǻ(Q4N6A c3f[˪txAcK: Ɓ~BCr,h6 gtKNӭ  Ja탸~.Vg0qm-גAaS<XjEVւ@tn%mD(ʫ%D:œtTf4:3 s8բLB6jAVcdkZ!P!҅ BqUT衮dinW۵B&GJKr^nsH6{C'lneTb#\Ibp((fΙtXi()Eؙl-ۥFvB{&pzD79аIR֩.˴m`EIڽ [|uSb qͫ:? {d.)S% .Hof5E@W/ ~ N?H&W=P ]RTaGRͰtS!SxXm=C*7^+wTygg c\WVA\Ca/A4|d V\^Ofe2J<I*^nj!LVK@>]6A4F[*A;RU[0? 4|=e3Y zzp)> ZbVP|X#jC˴7h2/χA<]6._MS5IlG$۬B0[ *Qg(gTD\g endstream endobj 1031 0 obj << /Type /Page /Contents 1032 0 R /Resources 1030 0 R /MediaBox [0 0 595.276 841.89] /Parent 984 0 R /Annots [ 1029 0 R ] >> endobj 1029 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 443.572 113.051 454.476] /A << /S /GoTo /D (BtChildProxy) >> >> endobj 1033 0 obj << /D [1031 0 R /XYZ -16.307 878.039 null] >> endobj 1034 0 obj << /D [1031 0 R /XYZ 56.693 651.261 null] >> endobj 941 0 obj << /D [1031 0 R /XYZ 56.693 625.899 null] >> endobj 1035 0 obj << /D [1031 0 R /XYZ 56.693 619.922 null] >> endobj 1036 0 obj << /D [1031 0 R /XYZ 56.693 622.811 null] >> endobj 942 0 obj << /D [1031 0 R /XYZ 56.693 542.765 null] >> endobj 1037 0 obj << /D [1031 0 R /XYZ 56.693 536.787 null] >> endobj 1038 0 obj << /D [1031 0 R /XYZ 56.693 539.676 null] >> endobj 1039 0 obj << /D [1031 0 R /XYZ 56.693 528.717 null] >> endobj 1040 0 obj << /D [1031 0 R /XYZ 56.693 517.758 null] >> endobj 1041 0 obj << /D [1031 0 R /XYZ 56.693 506.8 null] >> endobj 1042 0 obj << /D [1031 0 R /XYZ 56.693 495.841 null] >> endobj 1043 0 obj << /D [1031 0 R /XYZ 56.693 484.882 null] >> endobj 1030 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1075 0 obj << /Length 1721 /Filter /FlateDecode >> stream xڵZmo6_!  CR")>[t5+YfbJr"ےdЊɻ=scb2:-B'D!ܙ:#z)39݋ŷoU}Q݋U^Hჼb]-tiurO@GAq/gA؆[+Gc,mFc8A:CLX@͚onL 3xGte=ĶӖ%b^ 5+[y4; ﷸ6#6Ny(px@B vx֍ڂ䜆 ς:}Og}Ut0q P֬jaRF*>kDDrFYOH s=`dݨ==/ _砌ӱa!C&bBPǥa>lRx{6o:#S A^-1ElfQc3hhHrU(SB3(Mj=^V"x) ^Ż#2Y=DϛDQ6Vjld)yH~@ƞڿzGNh*s^4m@`}V+0W)ZuYp upFp@4W RBAFi-]Y]aRI& !Tiufx"X|Ypm}U] 0԰Q7T% bL#eJB(p%ogIN[{9?!11c{:· ߔ}t5Ds+AcJ=;K!uIϋ-"bHԭgt  Ʀ064@b0!lq(Ud|7v =k1! H00r `J7xf ==^vFC'߻B.#` \](lVK3cTnŞ]|^O-7OI5oȝnmu &V05Ye%gQ'rw[z'A!O-^ endstream endobj 1074 0 obj << /Type /Page /Contents 1075 0 R /Resources 1073 0 R /MediaBox [0 0 595.276 841.89] /Parent 984 0 R /Annots [ 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R ] >> endobj 1044 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 650.992 86.76 664.94] /A << /S /GoTo /D (void) >> >> endobj 1045 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 650.992 394.288 664.94] /A << /S /GoTo /D (bt-persistence-collect-hashtable-entries) >> >> endobj 1046 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 638.937 123.481 652.885] /A << /S /GoTo /D (BtPersistence) >> >> endobj 1047 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 638.937 310.732 652.885] /A << /S /GoTo /D (bt-persistence-load) >> >> endobj 1048 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 626.882 105.769 640.83] /A << /S /GoTo /D (gboolean) >> >> endobj 1049 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 626.882 353.342 640.83] /A << /S /GoTo /D (bt-persistence-load-hashtable) >> >> endobj 1050 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 614.827 117.953 628.775] /A << /S /GoTo /D (xmlNodePtr) >> >> endobj 1051 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 614.827 310.932 628.775] /A << /S /GoTo /D (bt-persistence-save) >> >> endobj 1052 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 602.773 105.769 616.72] /A << /S /GoTo /D (gboolean) >> >> endobj 1053 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 602.773 353.541 616.72] /A << /S /GoTo /D (bt-persistence-save-hashtable) >> >> endobj 1054 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 590.718 105.769 604.666] /A << /S /GoTo /D (gboolean) >> >> endobj 1055 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 590.718 328.097 604.666] /A << /S /GoTo /D (bt-persistence-save-list) >> >> endobj 1056 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 528.395 285.836 542.342] /A << /S /GoTo /D (BtPersistence-struct) >> >> endobj 1057 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 516.34 321.133 530.288] /A << /S /GoTo /D (BtPersistenceInterface) >> >> endobj 1058 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [191.349 398.466 237.615 409.37] /A << /S /GoTo /D (BtMachine) >> >> endobj 1059 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [241.486 398.466 280.968 409.37] /A << /S /GoTo /D (BtPattern) >> >> endobj 1060 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [284.838 398.466 369.839 409.37] /A << /S /GoTo /D (BtProcessorMachine) >> >> endobj 1061 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [373.709 398.466 423.293 409.37] /A << /S /GoTo /D (BtSequence) >> >> endobj 1062 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [427.164 398.466 461.266 409.37] /A << /S /GoTo /D (BtSetup) >> >> endobj 1063 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [465.136 398.466 529.674 409.37] /A << /S /GoTo /D (BtSinkMachine) >> >> endobj 1064 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [533.545 398.466 565.435 409.37] /A << /S /GoTo /D (BtSong) >> >> endobj 1065 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 386.511 104.184 397.415] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 1066 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.173 386.511 181.105 397.415] /A << /S /GoTo /D (BtSourceMachine) >> >> endobj 1067 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [184.094 386.511 217.588 397.415] /A << /S /GoTo /D (BtWave) >> >> endobj 1068 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.577 386.511 273.04 397.415] /A << /S /GoTo /D (BtWavelevel) >> >> endobj 1069 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [276.029 386.511 328.89 397.415] /A << /S /GoTo /D (BtWavetable) >> >> endobj 1070 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.265 386.511 377.188 397.415] /A << /S /GoTo /D (BtWire) >> >> endobj 1071 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.295 123.396 136.842 134.3] /A << /S /GoTo /D (GHashTable) >> >> endobj 1072 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [284.885 123.396 380.934 134.3] /A << /S /GoTo /D (g-hash-table-foreach) >> >> endobj 1076 0 obj << /D [1074 0 R /XYZ -11.232 878.039 null] >> endobj 62 0 obj << /D [1074 0 R /XYZ 56.693 761.903 null] >> endobj 1077 0 obj << /D [1074 0 R /XYZ 56.693 734.107 null] >> endobj 1078 0 obj << /D [1074 0 R /XYZ 56.693 675.899 null] >> endobj 1079 0 obj << /D [1074 0 R /XYZ 56.693 553.301 null] >> endobj 1080 0 obj << /D [1074 0 R /XYZ 56.693 484.817 null] >> endobj 1081 0 obj << /D [1074 0 R /XYZ 56.693 480.804 null] >> endobj 1082 0 obj << /D [1074 0 R /XYZ 56.693 484.291 null] >> endobj 1083 0 obj << /D [1074 0 R /XYZ 56.693 473.332 null] >> endobj 1084 0 obj << /D [1074 0 R /XYZ 56.693 413.403 null] >> endobj 1085 0 obj << /D [1074 0 R /XYZ 56.693 347.995 null] >> endobj 1086 0 obj << /D [1074 0 R /XYZ 56.693 294.541 null] >> endobj 1087 0 obj << /D [1074 0 R /XYZ 56.693 229.133 null] >> endobj 1088 0 obj << /D [1074 0 R /XYZ 56.693 205.736 null] >> endobj 1089 0 obj << /D [1074 0 R /XYZ 56.693 201.723 null] >> endobj 1090 0 obj << /D [1074 0 R /XYZ 56.693 204.612 null] >> endobj 1091 0 obj << /D [1074 0 R /XYZ 56.693 193.653 null] >> endobj 1092 0 obj << /D [1074 0 R /XYZ 56.693 182.694 null] >> endobj 1093 0 obj << /D [1074 0 R /XYZ 56.693 171.735 null] >> endobj 1094 0 obj << /D [1074 0 R /XYZ 56.693 160.777 null] >> endobj 1073 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1122 0 obj << /Length 1856 /Filter /FlateDecode >> stream xZr6+2&n:ixh TJy- A/Q( %88.ν"\^F4҂`@B@jJoY}L)ub/Wfa߻Ds~xpV0 J0h$j|Q\l@#- =yp4sQU9ope>GΧ aHN &M m RP!&VsG=4e@1c>f^/Gpb-YA!4J/h*aFDsJLv~P>VϦGS&4VnCe#TڒdA%Ag95<ʢE5<. }vf/^JGAJtqOh`: wGȐ6ޮѼ`0 e#2$!EhsJum 1JĶf_FXiO@6LÕ;v@\Ұ*dHIIJ5 "{ Ĉ E"sӠ?Pd&[T`o0wv;ܯcvq@_ӬFW|FּM:@mXaz*qݹIۋ RZ D-:1G4(D}zng"14>Z*|*2+ӣWI۶ۭ!n@$ъϧXbCևh-!dSSip thOO*a2ۦx^K4|+ԃ[6MWuzOIΗjTM@jR's7@z$#.&npá endstream endobj 1121 0 obj << /Type /Page /Contents 1122 0 R /Resources 1120 0 R /MediaBox [0 0 595.276 841.89] /Parent 984 0 R /Annots [ 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R ] >> endobj 1115 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [281.545 588.73 310.098 599.634] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1116 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 527.232 272.068 541.179] /A << /S /GoTo /D (GObject) >> >> endobj 1117 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.061 392.567 186.614 403.471] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1118 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 208.083 287.869 222.031] /A << /S /GoTo /D (GHashTable) >> >> endobj 1119 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 147.357 83.303 156.204] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1123 0 obj << /D [1121 0 R /XYZ -16.307 878.039 null] >> endobj 1095 0 obj << /D [1121 0 R /XYZ 56.693 687.923 null] >> endobj 1124 0 obj << /D [1121 0 R /XYZ 56.693 681.946 null] >> endobj 1125 0 obj << /D [1121 0 R /XYZ 56.693 684.835 null] >> endobj 1126 0 obj << /D [1121 0 R /XYZ 56.693 673.876 null] >> endobj 1127 0 obj << /D [1121 0 R /XYZ 56.693 662.917 null] >> endobj 1128 0 obj << /D [1121 0 R /XYZ 56.693 651.958 null] >> endobj 1129 0 obj << /D [1121 0 R /XYZ 56.693 640.999 null] >> endobj 1130 0 obj << /D [1121 0 R /XYZ 56.693 630.04 null] >> endobj 1096 0 obj << /D [1121 0 R /XYZ 56.693 335.898 null] >> endobj 1131 0 obj << /D [1121 0 R /XYZ 56.693 329.921 null] >> endobj 1132 0 obj << /D [1121 0 R /XYZ 56.693 332.81 null] >> endobj 1133 0 obj << /D [1121 0 R /XYZ 56.693 321.851 null] >> endobj 1134 0 obj << /D [1121 0 R /XYZ 56.693 310.892 null] >> endobj 1098 0 obj << /D [1121 0 R /XYZ 56.693 106.581 null] >> endobj 1135 0 obj << /D [1121 0 R /XYZ 56.693 100.616 null] >> endobj 1136 0 obj << /D [1121 0 R /XYZ 56.693 103.506 null] >> endobj 1137 0 obj << /D [1121 0 R /XYZ 56.693 92.547 null] >> endobj 1120 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1147 0 obj << /Length 1503 /Filter /FlateDecode >> stream xY]s8}WvoKӷtvlJc k&_W 1`0tv|ttu?ε z@]u.OALTXE1^>I3Ii"M4h>򷿇0 >_|iUŠ 3X4C{~3 k& h44>#%9C̸}!~wi/Udَ3lA6(d+^|ϼlBKa fr7) {JT8uHp':.ud'TD9h趯e1s/=I$}K);H~[+3+̨jh`9|iOߢôdGn4wC_(uypBI|V9s4Z>9:p{t$EiXZdJ131eO6 4R kT""3LiX!,ݲ38QɊ2pBk ðAa*bmʆ,hb=I. lhɦyָaE3n5ZmqU8r':Hbvɼ.& yd#@E a<13?s&-L;/_ɲ. wMTp>W(tdc : \έۊ,B bX)$ \ /Ғ č"=4}tJ\KٮjRV XG#%fZwgwac5֖x:rH4`mFq4aOyNnޖ nWz7i*yZϤ8M;UZv%Gc^)#))nnPwMOu1 0sAy2>=F|^ڮ']jpa4R>[i/+m6WxJLu|`- [oid0.2]>gO9W!b HA:N_n,6Xk~67sdl6 cPhL+Oy;HXKbR|o^#/gk"2^pmۉ}_VZ~Ey#IuW],P> endobj 1138 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.351 597.257 287.903 608.16] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1139 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 430.705 287.869 444.653] /A << /S /GoTo /D (GHashTable) >> >> endobj 1140 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 369.929 83.303 378.776] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1141 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [281.467 262.819 337.695 273.723] /A << /S /GoTo /D (BtPersistence) >> >> endobj 1142 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [413.062 262.819 501.021 273.723] /A << /S /GoTo /D (bt-persistence-save) >> >> endobj 1143 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 203.468 261.009 215.268] /A << /S /GoTo /D (GList) >> >> endobj 1144 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 128.688 83.303 137.535] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1148 0 obj << /D [1146 0 R /XYZ -11.232 878.039 null] >> endobj 1149 0 obj << /D [1146 0 R /XYZ 56.693 762.899 null] >> endobj 1099 0 obj << /D [1146 0 R /XYZ 56.693 558.52 null] >> endobj 1150 0 obj << /D [1146 0 R /XYZ 56.693 552.543 null] >> endobj 1151 0 obj << /D [1146 0 R /XYZ 56.693 555.432 null] >> endobj 1152 0 obj << /D [1146 0 R /XYZ 56.693 544.473 null] >> endobj 1153 0 obj << /D [1146 0 R /XYZ 56.693 533.514 null] >> endobj 1100 0 obj << /D [1146 0 R /XYZ 56.693 329.135 null] >> endobj 1154 0 obj << /D [1146 0 R /XYZ 56.693 323.158 null] >> endobj 1155 0 obj << /D [1146 0 R /XYZ 56.693 326.047 null] >> endobj 1156 0 obj << /D [1146 0 R /XYZ 56.693 315.088 null] >> endobj 1157 0 obj << /D [1146 0 R /XYZ 56.693 304.129 null] >> endobj 1145 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F108 345 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1162 0 obj << /Length 1194 /Filter /FlateDecode >> stream xYIo7W(}Ao.bҦrThI8c7q7< iCO#s8}4Aw|4YlShDRae9]/}L$dλwnzizvi2x +Ɔ3X4Ck3jt|mDaA_Jt]"h^#5lIJ0 ~џ#RP5$V'|uqnK]?>^Њ?J[D(y;dq,$K&椏k"&K9K01lEޡeţ:Zx+r`J2lBKa ]AK=QeЂ P`y:T2r.̽r8_'šo?KI,e%V !VY.XSGѷ %5 (lpXTbs"ƙ-Îz LB3 JK|B`c MQx4ҽC6 Kϗ: 5e`ߴ4%u nV4Hb(+S*j99fbsFO.4Ȝ|-aDݯl>HBi9Z a$nlKݝT& ~߬-ćH%CFdL\=vW%xq2xV; o,DU-?†حM'PIG;ۡ#n(}i|ک`cЎH4o^bֻhqV]͡m75iά`(8cRRZeSG"H޿S`4`ޟ})VROullE94b+in+w;H/"xd| ljlK*`2Oۿ'5< t3Bw2- ¡7n<( ۬#aX&0OuPK 6 NuVr{ U*xV^ĵĄI$t))uRHDzBֆ{fGgoCA\~3д$lvv~d(fVeH1$ap0H Ca&_d" g 8WׄUCn- 0&c{MpbLgɵp>RK8QKۜY'd,-yE88a= endstream endobj 1161 0 obj << /Type /Page /Contents 1162 0 R /Resources 1160 0 R /MediaBox [0 0 595.276 841.89] /Parent 1158 0 R /Annots [ 1159 0 R ] >> endobj 1159 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 535.691 111.925 544.538] /A << /S /GoTo /D (BtPersistence) >> >> endobj 1163 0 obj << /D [1161 0 R /XYZ -16.307 878.039 null] >> endobj 1164 0 obj << /D [1161 0 R /XYZ 56.693 741.323 null] >> endobj 1101 0 obj << /D [1161 0 R /XYZ 56.693 715.961 null] >> endobj 1165 0 obj << /D [1161 0 R /XYZ 56.693 709.984 null] >> endobj 1166 0 obj << /D [1161 0 R /XYZ 56.693 712.873 null] >> endobj 1102 0 obj << /D [1161 0 R /XYZ 56.693 632.827 null] >> endobj 1167 0 obj << /D [1161 0 R /XYZ 56.693 626.849 null] >> endobj 1168 0 obj << /D [1161 0 R /XYZ 56.693 629.738 null] >> endobj 1169 0 obj << /D [1161 0 R /XYZ 56.693 618.78 null] >> endobj 1170 0 obj << /D [1161 0 R /XYZ 56.693 607.821 null] >> endobj 1171 0 obj << /D [1161 0 R /XYZ 56.693 596.862 null] >> endobj 1174 0 obj << /D [1161 0 R /XYZ 56.693 574.944 null] >> endobj 1160 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F111 1172 0 R /F115 1173 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1192 0 obj << /Length 1228 /Filter /FlateDecode >> stream xڵX]o6} P6!A@,5ևYI<_dN,Ip!Jlu~ta2Zc@k 5ڍQD]1a0Rx޻J~{֠oE9`gSPD V`j ɜ?FOyy*<1̉anAC)AO>EϾ J (5lJÖRД\1uG7CJ|>pҏrzb`5 q#,G1˜8"(yNSu>,Xd7 q&q?N< x90 αQa4Χy$K`+i8L#!,VB;WG\g<=9?2tcks4nTAn%U巘w[p@dL:6A j\ɣi.3eO*yfiͪ ^g6ۋe{1:L)lzcj/1'Kb+ri4o㬃pj~񒵊J@OI> endobj 1175 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [265.01 514.983 311.276 525.887] /A << /S /GoTo /D (BtMachine) >> >> endobj 1176 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 448.75 126.112 462.698] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 1177 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 448.75 315.465 462.698] /A << /S /GoTo /D (bt-cmd-pattern-new) >> >> endobj 1178 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 386.427 120.533 400.375] /A << /S /GoTo /D (BtPatternCmd) >> >> endobj 1179 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 386.427 265.313 400.375] /A << /S /GoTo /D (BtCmdPattern--command) >> >> endobj 1180 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 374.372 107.94 388.32] /A << /S /GoTo /D (BtMachine) >> >> endobj 1181 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 374.372 259.774 388.32] /A << /S /GoTo /D (BtCmdPattern--machine) >> >> endobj 1182 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 362.317 85.794 376.265] /A << /S /GoTo /D (gchar) >> >> endobj 1183 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 362.317 247.6 376.265] /A << /S /GoTo /D (BtCmdPattern--name) >> >> endobj 1184 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 350.263 93.564 364.21] /A << /S /GoTo /D (BtSong) >> >> endobj 1185 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 350.263 244.84 364.21] /A << /S /GoTo /D (BtCmdPattern--song) >> >> endobj 1186 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 287.94 288.466 301.887] /A << /S /GoTo /D (BtCmdPattern-struct) >> >> endobj 1187 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 275.885 288.466 289.832] /A << /S /GoTo /D (BtPatternCmd) >> >> endobj 1193 0 obj << /D [1191 0 R /XYZ -11.232 878.039 null] >> endobj 63 0 obj << /D [1191 0 R /XYZ 56.693 761.903 null] >> endobj 64 0 obj << /D [1191 0 R /XYZ 56.693 566.635 null] >> endobj 1194 0 obj << /D [1191 0 R /XYZ 56.693 531.865 null] >> endobj 1195 0 obj << /D [1191 0 R /XYZ 56.693 473.657 null] >> endobj 1196 0 obj << /D [1191 0 R /XYZ 56.693 411.334 null] >> endobj 1197 0 obj << /D [1191 0 R /XYZ 56.693 312.846 null] >> endobj 1198 0 obj << /D [1191 0 R /XYZ 56.693 238.468 null] >> endobj 1199 0 obj << /D [1191 0 R /XYZ 56.693 232.491 null] >> endobj 1200 0 obj << /D [1191 0 R /XYZ 56.693 235.978 null] >> endobj 1201 0 obj << /D [1191 0 R /XYZ 56.693 225.019 null] >> endobj 1202 0 obj << /D [1191 0 R /XYZ 56.693 214.06 null] >> endobj 1203 0 obj << /D [1191 0 R /XYZ 56.693 203.101 null] >> endobj 1204 0 obj << /D [1191 0 R /XYZ 56.693 192.142 null] >> endobj 1205 0 obj << /D [1191 0 R /XYZ 56.693 127.438 null] >> endobj 1190 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1220 0 obj << /Length 1711 /Filter /FlateDecode >> stream xڽYKs6WVS!xbfu^ 3PTHHI}|,ŨM1%hd̂(gD$ /߿yO@/2ZOu{&:޽xp@dF,"MKH/샨|{=}XՄ—"/z7_p0wF81 $3߬3_@һv:Wf(h Īm0$Ğʌ "%<(Vq`ZAP]Zhsx `KcΓo#ߣUY4z`؁2r$gH*JrG_3H8Lt0ki8ğsU=F{NQgˍ6&H٪} f-kps7Fە'ljl}JD!ٰT&V&K $h\d|f;eNI# `аh@`@-3q+?W|b09;<iG/sq`\AB!L^&zꖬ]0Q"aX bf{73KԿ IҎ\ R9|sH& X[+" C2q|Ls7o],IJ&nrGfn;+;\1tnf bRz!dbLJWGS`p4z}r×ۨ/"VH }A LJ2 Y$b8eSp ARd˅cskZI7#H9pgaH5q_9ԒDmmQTбJC!H(k-ʠ"1.7n,ոey$a C e OHUe+?޹\" [eVnN@2꯿./sgyUJ #.=7TeCoU_pM.[CO! |ϑ֡^l~*(2,6 {"T}cbl;AxߍOPUVrF\a#B>eltсP`\޾<؈9bzNE:E[AnI!;ɦ?7 endstream endobj 1219 0 obj << /Type /Page /Contents 1220 0 R /Resources 1218 0 R /MediaBox [0 0 595.276 841.89] /Parent 1158 0 R /Annots [ 1188 0 R 1189 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R ] >> endobj 1188 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.114 724.422 241.697 735.326] /A << /S /GoTo /D (BtSequence) >> >> endobj 1189 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [465.515 724.422 524.374 735.326] /A << /S /GoTo /D (BtPatternCmd) >> >> endobj 1213 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.821 568.503 222.161 579.407] /A << /S /GoTo /D (BT-PATTERN-CMD-NORMAL:CAPS) >> >> endobj 1214 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [238.43 568.503 308.786 579.407] /A << /S /GoTo /D (bt-pattern-new) >> >> endobj 1215 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.322 441.251 295.181 455.199] /A << /S /GoTo /D (BtPatternCmd) >> >> endobj 1216 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 392.529 163.681 401.376] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1217 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.262 279.386 233.528 290.289] /A << /S /GoTo /D (BtMachine) >> >> endobj 1221 0 obj << /D [1219 0 R /XYZ -16.307 878.039 null] >> endobj 1222 0 obj << /D [1219 0 R /XYZ 56.693 741.323 null] >> endobj 1223 0 obj << /D [1219 0 R /XYZ 56.693 683.095 null] >> endobj 1206 0 obj << /D [1219 0 R /XYZ 56.693 657.733 null] >> endobj 1224 0 obj << /D [1219 0 R /XYZ 56.693 651.756 null] >> endobj 1225 0 obj << /D [1219 0 R /XYZ 56.693 654.645 null] >> endobj 1226 0 obj << /D [1219 0 R /XYZ 56.693 643.686 null] >> endobj 1227 0 obj << /D [1219 0 R /XYZ 56.693 632.727 null] >> endobj 1228 0 obj << /D [1219 0 R /XYZ 56.693 621.768 null] >> endobj 1229 0 obj << /D [1219 0 R /XYZ 56.693 349.146 null] >> endobj 1212 0 obj << /D [1219 0 R /XYZ 56.693 323.784 null] >> endobj 1230 0 obj << /D [1219 0 R /XYZ 56.693 317.806 null] >> endobj 1231 0 obj << /D [1219 0 R /XYZ 56.693 320.696 null] >> endobj 1207 0 obj << /D [1219 0 R /XYZ 56.693 240.649 null] >> endobj 1232 0 obj << /D [1219 0 R /XYZ 62.67 154.279 null] >> endobj 1233 0 obj << /D [1219 0 R /XYZ 62.67 100.481 null] >> endobj 1218 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1240 0 obj << /Length 1164 /Filter /FlateDecode >> stream xڽXMs8+TsEQ[{wd%TmmLb[`gal!'Bzju~ݘauoGukvҿ#_G?$劵qK/I ׋ ηǃ3ˈEX-<4Z Qr\ol uo\<[q"i7F𷏄Q,ryB[Xqu,)%p*zzQ&m CaXA *1DĀ"R㋓OR7ҖQ&kCJcQqEԙܚП{ԡSt:&/|a8`KKbs1 GYqkFy0r͕z-Wwcc+6{Sۇ5&hp$m )9:Z8ͱ햋2wY!J (Z?#o݇S^U@* ~3hllGuBj;^-.&eaDrNar-I endstream endobj 1239 0 obj << /Type /Page /Contents 1240 0 R /Resources 1238 0 R /MediaBox [0 0 595.276 841.89] /Parent 1158 0 R >> endobj 1241 0 obj << /D [1239 0 R /XYZ -11.232 878.039 null] >> endobj 1242 0 obj << /D [1239 0 R /XYZ 62.67 714.082 null] >> endobj 1243 0 obj << /D [1239 0 R /XYZ 62.67 636.374 null] >> endobj 1244 0 obj << /D [1239 0 R /XYZ 62.67 576.598 null] >> endobj 1245 0 obj << /D [1239 0 R /XYZ 56.693 522.145 null] >> endobj 1208 0 obj << /D [1239 0 R /XYZ 56.693 496.783 null] >> endobj 1246 0 obj << /D [1239 0 R /XYZ 56.693 490.806 null] >> endobj 1247 0 obj << /D [1239 0 R /XYZ 56.693 493.695 null] >> endobj 1209 0 obj << /D [1239 0 R /XYZ 56.693 377.783 null] >> endobj 1248 0 obj << /D [1239 0 R /XYZ 56.693 371.806 null] >> endobj 1249 0 obj << /D [1239 0 R /XYZ 56.693 374.695 null] >> endobj 1210 0 obj << /D [1239 0 R /XYZ 56.693 276.716 null] >> endobj 1250 0 obj << /D [1239 0 R /XYZ 56.693 270.738 null] >> endobj 1251 0 obj << /D [1239 0 R /XYZ 56.693 273.628 null] >> endobj 1211 0 obj << /D [1239 0 R /XYZ 56.693 157.716 null] >> endobj 1252 0 obj << /D [1239 0 R /XYZ 56.693 151.738 null] >> endobj 1253 0 obj << /D [1239 0 R /XYZ 56.693 154.627 null] >> endobj 1238 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1267 0 obj << /Length 2065 /Filter /FlateDecode >> stream xڵZێ6}߯KR i 4in im`YrtE^ɖwe+~(:<3Ccoaٓ˳g2* $ߓ\%.޻ɓ۷Lgɓj4/b{&80t3=װLJ| DC{&Bvy@#[&^:{{sxÈlZ$p_'I6OŁRDO"8)F푂Q$%HuS6j/b" hWK*<.!vE:IyM';`nH5Iw?uE|}HXX_2*GIֶ\BW>UM4)X$uzVyg07W1(V\}6)[X*YTյ:W N6ׁ:?j&7{OD,tƙ=vVp'l3ZFBi 3W(amh*7r>=)1dN[fPHE"7*WҋN-M ۛՇHZsH=;OYiSp;yoə.ɪܽEyUhӷ0J/BXaB:ȋDZ\"w:m\ܱ bP踡+ Cϲ^V[ˢ&apwXD%ߌOCq}'v^xO P~@Tr,Y,LN\ϘgˤCؐFM.d- pd_n9tŶ Ve0$ KebнS HflՉ{ S6-B5kܞ6sEsc%!G{c2}Aчٮ;|VP/LTxe<; @ZO&ԯ*)as; N9bt{-z&{T!IȰƝsFBmN"={/B0̎7JK# endstream endobj 1266 0 obj << /Type /Page /Contents 1267 0 R /Resources 1265 0 R /MediaBox [0 0 595.276 841.89] /Parent 1158 0 R /Annots [ 1235 0 R 1236 0 R 1237 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R ] >> endobj 1235 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [405.183 717.225 467.917 728.129] /A << /S /GoTo /D (BtCmdPatterns) >> >> endobj 1236 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 650.992 184.223 664.94] /A << /S /GoTo /D (BtCmdPatternControlSource) >> >> endobj 1237 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 650.992 379.654 664.94] /A << /S /GoTo /D (bt-cmd-pattern-control-source-new) >> >> endobj 1254 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 588.669 96.872 602.617] /A << /S /GoTo /D (gpointer) >> >> endobj 1255 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 588.669 278.235 602.617] /A << /S /GoTo /D (BtCmdPatternControlSource--default-value) >> >> endobj 1256 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 576.614 107.94 590.562] /A << /S /GoTo /D (BtMachine) >> >> endobj 1257 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 576.614 259.774 590.562] /A << /S /GoTo /D (BtCmdPatternControlSource--machine) >> >> endobj 1258 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 564.559 111.258 578.507] /A << /S /GoTo /D (BtSequence) >> >> endobj 1259 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 564.559 262.534 578.507] /A << /S /GoTo /D (BtCmdPatternControlSource--sequence) >> >> endobj 1260 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 552.504 110.162 566.452] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 1261 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 552.504 264.207 566.452] /A << /S /GoTo /D (BtCmdPatternControlSource--song-info) >> >> endobj 1262 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 490.181 346.578 504.129] /A << /S /GoTo /D (BtCmdPatternControlSource-struct) >> >> endobj 1263 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [502.382 239.622 565.435 250.526] /A << /S /GoTo /D (BtCmdPatternControlSource--default-value) >> >> endobj 1268 0 obj << /D [1266 0 R /XYZ -16.307 878.039 null] >> endobj 65 0 obj << /D [1266 0 R /XYZ 56.693 761.903 null] >> endobj 1269 0 obj << /D [1266 0 R /XYZ 56.693 734.107 null] >> endobj 1270 0 obj << /D [1266 0 R /XYZ 56.693 675.899 null] >> endobj 1271 0 obj << /D [1266 0 R /XYZ 56.693 613.575 null] >> endobj 1272 0 obj << /D [1266 0 R /XYZ 56.693 515.088 null] >> endobj 1273 0 obj << /D [1266 0 R /XYZ 56.693 456.869 null] >> endobj 1274 0 obj << /D [1266 0 R /XYZ 56.693 452.26 null] >> endobj 1275 0 obj << /D [1266 0 R /XYZ 56.693 455.747 null] >> endobj 1276 0 obj << /D [1266 0 R /XYZ 56.693 444.788 null] >> endobj 1277 0 obj << /D [1266 0 R /XYZ 56.693 433.829 null] >> endobj 1278 0 obj << /D [1266 0 R /XYZ 56.693 422.87 null] >> endobj 1279 0 obj << /D [1266 0 R /XYZ 56.693 411.911 null] >> endobj 1280 0 obj << /D [1266 0 R /XYZ 56.693 350.533 null] >> endobj 1281 0 obj << /D [1266 0 R /XYZ 56.693 295.63 null] >> endobj 1282 0 obj << /D [1266 0 R /XYZ 56.693 176.342 null] >> endobj 1283 0 obj << /D [1266 0 R /XYZ 56.693 152.349 null] >> endobj 1284 0 obj << /D [1266 0 R /XYZ 56.693 147.74 null] >> endobj 1285 0 obj << /D [1266 0 R /XYZ 56.693 150.629 null] >> endobj 1286 0 obj << /D [1266 0 R /XYZ 56.693 139.67 null] >> endobj 1287 0 obj << /D [1266 0 R /XYZ 56.693 128.711 null] >> endobj 1288 0 obj << /D [1266 0 R /XYZ 56.693 117.752 null] >> endobj 1289 0 obj << /D [1266 0 R /XYZ 56.693 106.793 null] >> endobj 1290 0 obj << /D [1266 0 R /XYZ 56.693 95.834 null] >> endobj 1265 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1300 0 obj << /Length 1461 /Filter /FlateDecode >> stream xڽYMs6WHu* S֙L'%JVG"rۻ$@DEإ # .ǃkmF13$V#m)Oѝw-M#&w$/7,Lh^?6X?_\x+>gh(׾waٜoA& fJ4Y >4#| IJ0 Kt;c@]J0Hm/j:Zi&Q{8Jxid&6G3_ Tzad Bo-"2 @[EVqvd6qx8\ynXͻo{G2XDOD>nJݧ)Ejw^V/ `}YI N,1n0%Q0x]Ĵș@r)9ˁxpc _Y܆ݹel ]WMrjW!gy ; Y=5~5H K1l|ͪi~ mwo{Cb Lѧ[w7 U, 3@6KDZ@B[-HQqJšq޺pyYkx?ҧ@Bp1{69Zk1V #D f~ `ܣ3j[RR-{|,(Oi8 t :l(,KuZ?pJ4ʕ\Muz*նHj/ujjsom=#"fv+]3|/"WwllgOB\H0NV=eiZv:^1\bo). : w72o~8%" |ܠG %+}3CO4 z>I3H9agt4QLSLS\D~QWS"/'.5&[G@E9.?%1-̄|udl?6{3-,O㺄y[7a. @S{|>A/N<'Sq>Sz4?M'<Kճ\fV8SPoz*8Ϥ]*?K/%`D|Ͽ ' endstream endobj 1299 0 obj << /Type /Page /Contents 1300 0 R /Resources 1298 0 R /MediaBox [0 0 595.276 841.89] /Parent 1312 0 R /Annots [ 1264 0 R ] >> endobj 1264 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [318.795 748.787 425.932 759.691] /A << /S /GoTo /D (gst-control-source-bind) >> >> endobj 1301 0 obj << /D [1299 0 R /XYZ -11.232 878.039 null] >> endobj 1302 0 obj << /D [1299 0 R /XYZ 56.693 523.153 null] >> endobj 1297 0 obj << /D [1299 0 R /XYZ 56.693 497.791 null] >> endobj 1303 0 obj << /D [1299 0 R /XYZ 56.693 491.814 null] >> endobj 1304 0 obj << /D [1299 0 R /XYZ 56.693 494.703 null] >> endobj 1305 0 obj << /D [1299 0 R /XYZ 56.693 412.066 null] >> endobj 1293 0 obj << /D [1299 0 R /XYZ 56.693 386.705 null] >> endobj 1306 0 obj << /D [1299 0 R /XYZ 56.693 380.727 null] >> endobj 1307 0 obj << /D [1299 0 R /XYZ 56.693 383.616 null] >> endobj 1294 0 obj << /D [1299 0 R /XYZ 56.693 285.637 null] >> endobj 1308 0 obj << /D [1299 0 R /XYZ 56.693 279.66 null] >> endobj 1309 0 obj << /D [1299 0 R /XYZ 56.693 282.549 null] >> endobj 1295 0 obj << /D [1299 0 R /XYZ 56.693 184.57 null] >> endobj 1310 0 obj << /D [1299 0 R /XYZ 56.693 178.592 null] >> endobj 1311 0 obj << /D [1299 0 R /XYZ 56.693 181.481 null] >> endobj 1298 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F108 345 0 R /F81 10 0 R /F98 124 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1414 0 obj << /Length 2269 /Filter /FlateDecode >> stream xڵ\IFW8@ޗmă Ca!cUs[I\J<)~lvshh0{8{Ѹ#v"2> w_9W}9qkqj6\}4+84Z!J{`sf=18F+gh:/"JѧH1J}6eF, h'k*/q͗1D sQdfl&[[¥ne8] <9p Eӄ3q⬋8z;F;m\eu@ Xo[mbiÓ,VdLHi!*oO~/>W/|k 9=3NSVA;ߟ9~GĩGhΈҮM_Sq8N>/Jp_ԅCԛ$U\"2 QqeOxW'e|Ce_OQU9 PƔg DtJ{`Mu8P8::"bӲhˢ>gy)&bY}*.Vmրš΀rmB?U@?T`5 wVP @aSmezGFM&Z>"7U)o 2|%TښShzaﹺ,az D謁hN8`Pp99O@:QN VFH"J5e]Y;VQ!WP[]uq8&KT(z-2qrpH AZ1XM+!@$z$Y̳8e(4밉 P2b &'Ke#TKL H v"yHi/t/{$ 26=@807X# b*]BRteESw1P<6uAiE@4d(QB! B `ث$'K[}nwNn0> >,uBRUyP&O7B#@,,uRmjġ6A0CT탧}=Cwm`bJm&R͞{D[2@)lFu $ Z>k.˯@w"'b5O^b'DB 2^.BD/#-ʮ#K:ʳH1JYFY)0Qn ɞjzaAἽX, (G)w">MLJR@_tc $Rü r F=NS!ŚgXA&aL~/]CTPqBA!s?¨ I¼,6.<'S=*I10t P#1|#m`ի0ΐt 85fL<:×Ipsf]o$'Z߄V+-I<LcB2WpΚ xr&anɸ_&xl=}8va!jż*Eo &v[e[Aza&+yψե޵Wӹ╰Au袩kXOubT'Q/3F%9wa.y~nY{ u]ڤ'tctci,` i SUam w~yY x?!o}:! 1> endobj 1314 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 545.465 105.769 559.413] /A << /S /GoTo /D (gboolean) >> >> endobj 1315 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 545.465 340.66 559.413] /A << /S /GoTo /D (bt-machine-activate-adder) >> >> endobj 1316 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 533.41 105.769 547.358] /A << /S /GoTo /D (gboolean) >> >> endobj 1317 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 533.41 352.276 547.358] /A << /S /GoTo /D (bt-machine-activate-spreader) >> >> endobj 1318 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 521.355 86.76 535.303] /A << /S /GoTo /D (void) >> >> endobj 1319 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 521.355 330.1 535.303] /A << /S /GoTo /D (bt-machine-add-pattern) >> >> endobj 1320 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 509.301 86.76 523.248] /A << /S /GoTo /D (void) >> >> endobj 1321 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 509.301 378.797 523.248] /A << /S /GoTo /D (bt-machine-bind-parameter-control) >> >> endobj 1322 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 497.246 86.76 511.193] /A << /S /GoTo /D (void) >> >> endobj 1323 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 497.246 401.491 511.193] /A << /S /GoTo /D (bt-machine-bind-poly-parameter-control) >> >> endobj 1324 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 485.191 105.769 499.139] /A << /S /GoTo /D (gboolean) >> >> endobj 1325 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 485.191 356.62 499.139] /A << /S /GoTo /D (bt-machine-enable-input-gain) >> >> endobj 1326 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 473.136 105.769 487.084] /A << /S /GoTo /D (gboolean) >> >> endobj 1327 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 473.136 380.072 487.084] /A << /S /GoTo /D (bt-machine-enable-input-post-level) >> >> endobj 1328 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 461.081 105.769 475.029] /A << /S /GoTo /D (gboolean) >> >> endobj 1329 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 461.081 376.187 475.029] /A << /S /GoTo /D (bt-machine-enable-input-pre-level) >> >> endobj 1330 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 449.026 105.769 462.974] /A << /S /GoTo /D (gboolean) >> >> endobj 1331 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 449.026 361.601 462.974] /A << /S /GoTo /D (bt-machine-enable-output-gain) >> >> endobj 1332 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 436.972 105.769 450.919] /A << /S /GoTo /D (gboolean) >> >> endobj 1333 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 436.972 385.053 450.919] /A << /S /GoTo /D (bt-machine-enable-output-post-level) >> >> endobj 1334 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 424.917 105.769 438.864] /A << /S /GoTo /D (gboolean) >> >> endobj 1335 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 424.917 381.168 438.864] /A << /S /GoTo /D (bt-machine-enable-output-pre-level) >> >> endobj 1336 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 412.862 144.353 426.81] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 1337 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 412.862 383.23 426.81] /A << /S /GoTo /D (bt-machine-get-global-param-group) >> >> endobj 1338 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 400.807 126.112 414.755] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 1339 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 400.807 369.801 414.755] /A << /S /GoTo /D (bt-machine-get-pattern-by-index) >> >> endobj 1340 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 388.752 126.112 402.7] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 1341 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 388.752 369.392 402.7] /A << /S /GoTo /D (bt-machine-get-pattern-by-name) >> >> endobj 1342 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 376.697 144.353 390.645] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 1343 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 376.697 378.239 390.645] /A << /S /GoTo /D (bt-machine-get-prefs-param-group) >> >> endobj 1344 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 364.643 91.373 378.59] /A << /S /GoTo /D (gchar) >> >> endobj 1345 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 364.643 386.548 378.59] /A << /S /GoTo /D (bt-machine-get-unique-pattern-name) >> >> endobj 1346 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 352.588 144.353 366.536] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 1347 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 352.588 379.704 366.536] /A << /S /GoTo /D (bt-machine-get-voice-param-group) >> >> endobj 1348 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 340.533 98.177 354.481] /A << /S /GoTo /D (BtWire) >> >> endobj 1349 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 340.533 388.211 354.481] /A << /S /GoTo /D (bt-machine-get-wire-by-dst-machine) >> >> endobj 1350 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 328.478 105.769 342.426] /A << /S /GoTo /D (gboolean) >> >> endobj 1351 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 328.478 342.932 342.426] /A << /S /GoTo /D (bt-machine-handles-waves) >> >> endobj 1352 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 316.423 105.769 330.371] /A << /S /GoTo /D (gboolean) >> >> endobj 1353 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 316.423 351.828 330.371] /A << /S /GoTo /D (bt-machine-has-active-adder) >> >> endobj 1354 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 304.368 105.769 318.316] /A << /S /GoTo /D (gboolean) >> >> endobj 1355 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 304.368 363.444 318.316] /A << /S /GoTo /D (bt-machine-has-active-spreader) >> >> endobj 1356 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 292.314 105.769 306.261] /A << /S /GoTo /D (gboolean) >> >> endobj 1357 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 292.314 332.869 306.261] /A << /S /GoTo /D (bt-machine-has-patterns) >> >> endobj 1358 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 280.259 105.769 294.207] /A << /S /GoTo /D (gboolean) >> >> endobj 1359 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 280.259 339.524 294.207] /A << /S /GoTo /D (bt-machine-is-polyphonic) >> >> endobj 1360 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 268.204 86.76 282.152] /A << /S /GoTo /D (void) >> >> endobj 1361 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 268.204 373.805 282.152] /A << /S /GoTo /D (bt-machine-randomize-parameters) >> >> endobj 1362 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 256.149 86.76 270.097] /A << /S /GoTo /D (void) >> >> endobj 1363 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 256.149 345.293 270.097] /A << /S /GoTo /D (bt-machine-remove-pattern) >> >> endobj 1364 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 244.094 86.76 258.042] /A << /S /GoTo /D (void) >> >> endobj 1365 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 244.094 350.562 258.042] /A << /S /GoTo /D (bt-machine-reset-parameters) >> >> endobj 1366 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 232.04 86.76 245.987] /A << /S /GoTo /D (void) >> >> endobj 1367 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 232.04 360.435 245.987] /A << /S /GoTo /D (bt-machine-set-param-defaults) >> >> endobj 1368 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 219.985 86.76 233.932] /A << /S /GoTo /D (void) >> >> endobj 1369 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 219.985 388.759 233.932] /A << /S /GoTo /D (bt-machine-unbind-parameter-control) >> >> endobj 1370 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 207.93 86.76 221.878] /A << /S /GoTo /D (void) >> >> endobj 1371 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 207.93 392.635 221.878] /A << /S /GoTo /D (bt-machine-unbind-parameter-controls) >> >> endobj 1372 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 145.607 110.71 159.554] /A << /S /GoTo /D (GstElement) >> >> endobj 1373 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 145.607 280.596 159.554] /A << /S /GoTo /D (BtMachine--adder-convert) >> >> endobj 1374 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 133.552 96.872 147.5] /A << /S /GoTo /D (gpointer) >> >> endobj 1375 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 133.552 297.95 147.5] /A << /S /GoTo /D (BtMachine--construction-error) >> >> endobj 1376 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 121.497 91.343 135.445] /A << /S /GoTo /D (gulong) >> >> endobj 1377 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 121.497 283.017 135.445] /A << /S /GoTo /D (BtMachine--global-params) >> >> endobj 1378 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 109.442 85.794 123.39] /A << /S /GoTo /D (gchar) >> >> endobj 1379 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 109.442 233.772 123.39] /A << /S /GoTo /D (BtMachine--id) >> >> endobj 1380 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 97.387 110.71 111.335] /A << /S /GoTo /D (GstElement) >> >> endobj 1381 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 97.387 266.927 111.335] /A << /S /GoTo /D (BtMachine--input-gain) >> >> endobj 1382 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 85.333 110.71 99.28] /A << /S /GoTo /D (GstElement) >> >> endobj 1383 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 85.333 288.715 99.28] /A << /S /GoTo /D (BtMachine--input-post-level) >> >> endobj 1384 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 73.278 110.71 87.225] /A << /S /GoTo /D (GstElement) >> >> endobj 1385 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 73.278 284.83 87.225] /A << /S /GoTo /D (BtMachine--input-pre-level) >> >> endobj 1415 0 obj << /D [1413 0 R /XYZ -16.307 878.039 null] >> endobj 1296 0 obj << /D [1413 0 R /XYZ 56.693 741.921 null] >> endobj 1416 0 obj << /D [1413 0 R /XYZ 56.693 735.943 null] >> endobj 1417 0 obj << /D [1413 0 R /XYZ 56.693 738.833 null] >> endobj 66 0 obj << /D [1413 0 R /XYZ 56.693 665.577 null] >> endobj 1103 0 obj << /D [1413 0 R /XYZ 56.693 628.58 null] >> endobj 1418 0 obj << /D [1413 0 R /XYZ 56.693 570.372 null] >> endobj 1419 0 obj << /D [1413 0 R /XYZ 56.693 170.513 null] >> endobj 1412 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1472 0 obj << /Length 1978 /Filter /FlateDecode >> stream xڵ[sF)LGT_>8uMCDZ˴T8l,d"9?5^]\\\T&0H*@H$ "*0g <V?6ɲ0ه/54JVrf-+=Dw.^\{AK8 N(`6W~se>oZ"̱khIAQ0W.""℈`qL]D(i;$uP}x*{`^CΐQU_$/#|M׷ONFkjNt7H@M&F1; B 4 ᪛?k̰3" _hFizLv/s1 ziFp`gP/9D"&+7 58t/b;biN 6PR?BD@-@" xPCa5=8hFi# 3hPÁA!F %uM$YwBH1Lm,%aJƛꦤei%j 2̉(ַzyf# Ќiu,p"LDLguyl̻R0O5K$4Y;b*`-an\jhc=<5m U ʰ)"Aih޵tCLC?10¾eXāabB038NV^YYY2V*MaTE_t 7]pa,)ӵuN¸9 ̪ 9<աY91QIdi--ʮR6$6VzT1zAdw)G@QH'iTf7iz$jzF˭%oƕ{6dU}89LеJH-*B#Czw$/"q|*ZR  ((rJLjr*M'}pTy/"Qe \a'#M&iɭKCnݺ>mˇW]_G6 .O,ܢ-OR\8/DWf櫶OPV)W¤~5a6Ԃ `nxP\B4XvŁ'S'l[3f4ͳT(}yď: >,$}wCDMg͎\DaY]Fƶ崞.m}$DI_I< $/9jd2Dye _O3aD3啉]~޽Ptg=> ?)墩Ӟ?!#Lth{p4(D_a,m}=!,: PSZSeH/fOd@b5H#d9:fvivf*t\Mg*|vBs:J93 j&B[3 fҳ$]lĩTh峊qt,s ÈVNwnɥS,3bxeZōZ]f 0y>Tv븽 P}lvyg~m:& 37ɲXdcXI?e2?Ǐ2eOv̢mp08tFvy8 HCv߅^MlzW?Y}2OB4^z/92?wL^ endstream endobj 1471 0 obj << /Type /Page /Contents 1472 0 R /Resources 1470 0 R /MediaBox [0 0 595.276 841.89] /Parent 1312 0 R /Annots [ 1386 0 R 1387 0 R 1388 0 R 1389 0 R 1390 0 R 1391 0 R 1392 0 R 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R 1398 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R 1404 0 R 1405 0 R 1406 0 R 1407 0 R 1408 0 R 1409 0 R 1410 0 R 1411 0 R 1457 0 R 1458 0 R 1459 0 R 1460 0 R 1461 0 R 1462 0 R 1463 0 R 1464 0 R 1465 0 R 1466 0 R 1467 0 R 1468 0 R ] >> endobj 1386 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 739.387 110.71 753.335] /A << /S /GoTo /D (GstElement) >> >> endobj 1387 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 739.387 259.774 753.335] /A << /S /GoTo /D (BtMachine--machine) >> >> endobj 1388 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 727.332 110.71 741.28] /A << /S /GoTo /D (GstElement) >> >> endobj 1389 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 727.332 271.909 741.28] /A << /S /GoTo /D (BtMachine--output-gain) >> >> endobj 1390 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 715.278 110.71 729.225] /A << /S /GoTo /D (GstElement) >> >> endobj 1391 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 715.278 293.696 729.225] /A << /S /GoTo /D (BtMachine--output-post-level) >> >> endobj 1392 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 703.223 110.71 717.17] /A << /S /GoTo /D (GstElement) >> >> endobj 1393 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 703.223 289.811 717.17] /A << /S /GoTo /D (BtMachine--output-pre-level) >> >> endobj 1394 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 691.168 96.872 705.116] /A << /S /GoTo /D (gpointer) >> >> endobj 1395 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 691.168 257.562 705.116] /A << /S /GoTo /D (BtMachine--patterns) >> >> endobj 1396 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 679.113 85.794 693.061] /A << /S /GoTo /D (gchar) >> >> endobj 1397 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 679.113 276.382 693.061] /A << /S /GoTo /D (BtMachine--plugin-name) >> >> endobj 1398 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 667.058 91.343 681.006] /A << /S /GoTo /D (gulong) >> >> endobj 1399 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 667.058 278.025 681.006] /A << /S /GoTo /D (BtMachine--prefs-params) >> >> endobj 1400 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 655.003 85.794 668.951] /A << /S /GoTo /D (gchar) >> >> endobj 1401 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 655.003 274.16 668.951] /A << /S /GoTo /D (BtMachine--pretty-name) >> >> endobj 1402 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 642.949 96.872 656.896] /A << /S /GoTo /D (gpointer) >> >> endobj 1403 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 642.949 265.861 656.896] /A << /S /GoTo /D (BtMachine--properties) >> >> endobj 1404 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 630.894 93.564 644.841] /A << /S /GoTo /D (BtSong) >> >> endobj 1405 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 630.894 244.84 644.841] /A << /S /GoTo /D (BtMachine--song) >> >> endobj 1406 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 618.839 127.865 632.787] /A << /S /GoTo /D (BtMachineState) >> >> endobj 1407 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 618.839 244.282 632.787] /A << /S /GoTo /D (BtMachine--state) >> >> endobj 1408 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 606.784 91.343 620.732] /A << /S /GoTo /D (gulong) >> >> endobj 1409 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 606.784 279.49 620.732] /A << /S /GoTo /D (BtMachine--voice-params) >> >> endobj 1410 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 594.729 91.343 608.677] /A << /S /GoTo /D (gulong) >> >> endobj 1411 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 594.729 251.276 608.677] /A << /S /GoTo /D (BtMachine--voices) >> >> endobj 1457 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 532.406 81.181 546.354] /A << /S /GoTo /D (void) >> >> endobj 1458 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 532.406 280.795 546.354] /A << /S /GoTo /D (BtMachine-pattern-added) >> >> endobj 1459 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 532.406 579.053 546.354] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 1460 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 520.351 81.181 534.299] /A << /S /GoTo /D (void) >> >> endobj 1461 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 520.351 291.565 534.299] /A << /S /GoTo /D (BtMachine-pattern-removed) >> >> endobj 1462 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 520.351 579.053 534.299] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 1463 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 458.028 275.873 471.976] /A << /S /GoTo /D (BtMachine-struct) >> >> endobj 1464 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 445.973 297.462 459.921] /A << /S /GoTo /D (BtMachineClass) >> >> endobj 1465 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 433.919 295.798 447.866] /A << /S /GoTo /D (BtMachineState) >> >> endobj 1466 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [151.446 202.817 213.224 213.721] /A << /S /GoTo /D (GstChildProxy) >> >> endobj 1467 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.599 202.817 286.827 213.721] /A << /S /GoTo /D (BtPersistence) >> >> endobj 1468 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [156.119 86.361 188.009 97.265] /A << /S /GoTo /D (BtSong) >> >> endobj 1473 0 obj << /D [1471 0 R /XYZ -11.232 878.039 null] >> endobj 1474 0 obj << /D [1471 0 R /XYZ 56.693 557.313 null] >> endobj 1475 0 obj << /D [1471 0 R /XYZ 56.693 482.935 null] >> endobj 1476 0 obj << /D [1471 0 R /XYZ 56.693 396.502 null] >> endobj 1477 0 obj << /D [1471 0 R /XYZ 56.693 390.524 null] >> endobj 1478 0 obj << /D [1471 0 R /XYZ 56.693 394.011 null] >> endobj 1479 0 obj << /D [1471 0 R /XYZ 56.693 383.053 null] >> endobj 1480 0 obj << /D [1471 0 R /XYZ 56.693 372.094 null] >> endobj 1481 0 obj << /D [1471 0 R /XYZ 56.693 361.135 null] >> endobj 1482 0 obj << /D [1471 0 R /XYZ 56.693 350.176 null] >> endobj 1483 0 obj << /D [1471 0 R /XYZ 56.693 339.217 null] >> endobj 1484 0 obj << /D [1471 0 R /XYZ 56.693 328.258 null] >> endobj 1485 0 obj << /D [1471 0 R /XYZ 56.693 317.299 null] >> endobj 1486 0 obj << /D [1471 0 R /XYZ 56.693 306.34 null] >> endobj 1487 0 obj << /D [1471 0 R /XYZ 56.693 295.381 null] >> endobj 1488 0 obj << /D [1471 0 R /XYZ 56.693 284.422 null] >> endobj 1489 0 obj << /D [1471 0 R /XYZ 56.693 219.719 null] >> endobj 1490 0 obj << /D [1471 0 R /XYZ 56.693 161.491 null] >> endobj 1491 0 obj << /D [1471 0 R /XYZ 56.693 103.263 null] >> endobj 1470 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1520 0 obj << /Length 1773 /Filter /FlateDecode >> stream xYKs6WHu*/S=LgRǝL -E:$d] Jiَ" a V '$ 2<.A8AAr| O߾&:񈆧zn{PKըj6/.ߝ4HAl,X$$Z2IY3ys92a0l(o&?`, nM1J_&O裻ɤr63na^mk2?SFC⛼9ҵEժF=E;e=Qx;+io, U馪Rm*umdj*).nZL»mתAHڵMm *ո#"%f(KoÉ۽{*>|? muh;ÛF-e&v[wT5W5:BEՉh79]UvؙtNH&,ru> :mV\Ovyߠn;;&7pr=7<"EQ.Gצjy7Lg=crg 8'ƸF]n7 XjpN²nJ}u3eiNVVBW9b2}[BaY)I6Н^ʠM6ح \ uWTWr gAɵZ`9SתZ`uaW,}wʔ1y܈Aú ˶M#U՞Z@7RskS1eZx) ajR/Τ* [Ϯ{VUJ [F/+:sx6_vP>hDۺgا\ ƽT+L7*oK=C+UȞjCKhxp띶%T6e}78zs!Gv WT}QB.zxo̕k05;9jUܠaw~]礶~ 7mz_gp'Q任@fegD1O0+e`o*$*HQnᵪ\ _4! OAW$Xlk֤h1϶%)věytK\ۢ_Ɔx˺^bsrVH3TiaoV-1MHyj@;^ KɀO󢞋pH|7s9B$A C%.0IJcύ#Hm!bPsk#={+D`^(m\%L!`Uwya|7cL۹b{WN99R2Fd&_n W20(RRJ"rk H M}s0)G"² hK̴\i]'fxG ާxzG ) bG 7ޞaztGUwᗡʱ$8п endstream endobj 1519 0 obj << /Type /Page /Contents 1520 0 R /Resources 1518 0 R /MediaBox [0 0 595.276 841.89] /Parent 1312 0 R /Annots [ 1469 0 R 1512 0 R 1513 0 R 1514 0 R 1515 0 R 1516 0 R 1517 0 R ] >> endobj 1469 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.2 720.956 222.111 729.803] /A << /S /GoTo /D (GstElements) >> >> endobj 1512 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [288.461 523.631 334.727 534.535] /A << /S /GoTo /D (BtMachine) >> >> endobj 1513 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.203 505.699 283.061 516.603] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 1514 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [487.672 505.699 537.255 516.603] /A << /S /GoTo /D (BtSequence) >> >> endobj 1515 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [405.4 383.653 436.324 394.557] /A << /S /GoTo /D (BtWire) >> >> endobj 1516 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 249.622 83.303 258.469] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1517 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.101 153.471 429.024 164.375] /A << /S /GoTo /D (BtWire) >> >> endobj 1521 0 obj << /D [1519 0 R /XYZ -16.307 878.039 null] >> endobj 1522 0 obj << /D [1519 0 R /XYZ 56.693 464.372 null] >> endobj 1420 0 obj << /D [1519 0 R /XYZ 56.693 439.01 null] >> endobj 1523 0 obj << /D [1519 0 R /XYZ 56.693 433.033 null] >> endobj 1524 0 obj << /D [1519 0 R /XYZ 56.693 435.922 null] >> endobj 1525 0 obj << /D [1519 0 R /XYZ 56.693 424.963 null] >> endobj 1421 0 obj << /D [1519 0 R /XYZ 56.693 208.829 null] >> endobj 1526 0 obj << /D [1519 0 R /XYZ 56.693 202.851 null] >> endobj 1527 0 obj << /D [1519 0 R /XYZ 56.693 205.74 null] >> endobj 1528 0 obj << /D [1519 0 R /XYZ 56.693 194.781 null] >> endobj 1518 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F91 52 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1534 0 obj << /Length 1817 /Filter /FlateDecode >> stream xZ[F~W2xԧ*Y5RdKh/Koͯ{ N"!1;;w/nW7JiIe0yDR@i8*LfׯY;SW:ImzjOri՛!Jf`R(dg>Mvkݪ1BK}v<4&fneY W H!hdMRDq} Qt4*VG>A,\_0/CEBK"MҹŽ1 s+.& V09Yj.шgf:a-qwذBjpهJ#%yMgYF*{gs^M %x1ABBvH0\K{?8Tߛ=[Y$@fIV^wyIxݾiL52ǃ 9_g} %mY.b{z_*M@E@#ux8y\lm)KVQFsqj-l,$+nvKB #ڤ*C[kb{GDILχX]ɸvU.Yw]!$EX%2w-p݊*'Tɰl'gJjJ [% CW| wN`# "3L:k@9A:ڔh`wtD0Yrszm9gz_eWֽ\BqgQDX-KӰʺ HvvEN.m ww VY>-1Ͽ孬Qs\n-6xZg$7M.^2<8cIo5xO|UuH;Cch>}:#!Ν`dй37~$+{Jlt)*mzݕ+*GQ5܉ atgߓ8oeO i0eIMp!?;>abuEkSLbXaH1o uK$9{+-خ/ SXr>~xk⭴q~bd60'AUBdU͡ȝ3vMhm 2$=XZJ9W.;0<~AD3꘺pR\b}DC'<.vETl27s>/r >FLSr8$M(n)"/U؂w3|ZmBIq8S6l7arPJ\CVRarOVM.@p =L.REE敘e8jX#4:ϻV0w$2@YwSz: T="d{b"[7+'&B$“'n{[Y=10èBG W |O*1C:ҰaZ?n0(xmn᫪ˊY:|+ZBmߓdoe]6}%pn+3 \m2fQW[S# |IK-К~%fHpъC;ڝřp endstream endobj 1533 0 obj << /Type /Page /Contents 1534 0 R /Resources 1532 0 R /MediaBox [0 0 595.276 841.89] /Parent 1312 0 R /Annots [ 1530 0 R 1531 0 R ] >> endobj 1530 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 688.374 83.303 697.221] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1531 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [341.034 581.264 411.389 592.168] /A << /S /GoTo /D (bt-pattern-new) >> >> endobj 1535 0 obj << /D [1533 0 R /XYZ -11.232 878.039 null] >> endobj 1422 0 obj << /D [1533 0 R /XYZ 56.693 647.581 null] >> endobj 1536 0 obj << /D [1533 0 R /XYZ 56.693 641.603 null] >> endobj 1537 0 obj << /D [1533 0 R /XYZ 56.693 644.492 null] >> endobj 1538 0 obj << /D [1533 0 R /XYZ 56.693 633.533 null] >> endobj 1539 0 obj << /D [1533 0 R /XYZ 56.693 622.574 null] >> endobj 1423 0 obj << /D [1533 0 R /XYZ 56.693 460.431 null] >> endobj 1540 0 obj << /D [1533 0 R /XYZ 56.693 454.454 null] >> endobj 1541 0 obj << /D [1533 0 R /XYZ 56.693 457.343 null] >> endobj 1542 0 obj << /D [1533 0 R /XYZ 56.693 446.384 null] >> endobj 1543 0 obj << /D [1533 0 R /XYZ 56.693 435.425 null] >> endobj 1544 0 obj << /D [1533 0 R /XYZ 56.693 424.466 null] >> endobj 1545 0 obj << /D [1533 0 R /XYZ 56.693 413.507 null] >> endobj 1546 0 obj << /D [1533 0 R /XYZ 56.693 402.549 null] >> endobj 1424 0 obj << /D [1533 0 R /XYZ 56.693 185.007 null] >> endobj 1547 0 obj << /D [1533 0 R /XYZ 56.693 180.554 null] >> endobj 1548 0 obj << /D [1533 0 R /XYZ 56.693 183.444 null] >> endobj 1549 0 obj << /D [1533 0 R /XYZ 56.693 172.485 null] >> endobj 1550 0 obj << /D [1533 0 R /XYZ 56.693 161.526 null] >> endobj 1551 0 obj << /D [1533 0 R /XYZ 56.693 150.567 null] >> endobj 1552 0 obj << /D [1533 0 R /XYZ 56.693 139.608 null] >> endobj 1553 0 obj << /D [1533 0 R /XYZ 56.693 128.649 null] >> endobj 1532 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1560 0 obj << /Length 1251 /Filter /FlateDecode >> stream xYMF+0;=S9e]^WdMNeL $"קH @ pîv~=,#țs`qi`L b^ yޯ~M^+ֽO7~cwA fwZjI3Dpݻ֤t^:t1H8hy -aT:K>g#D\h<#;tXyuJa1P'P~ `@uyVP\Qs.)(S{aR8gcb jd!<}~f!qN_0CcVcCΫ HnPm VM@8T#Q["jkrqqeGTd: Φ%c`و=+}i&"69-ij;$fENa_'5+3OCT.%(\%=?=qS#[m6i,Ew19A :8-5T"_k3jnjwTMKd^ /zg }<73?U20࿘bY CO=4qe"&q9*DV 4 :{2.p`?Džtp[ h2AJS]P3xBEgʲ}DrE3dSJuWrUܶ r7uRl1eS_3O|w´NޕڶͫTV-XtQ~ڠ24:q;eTů;nӫnN#_;Co@k;׃'eUE*A;MR&DSݼz#?s&u˜KUSk;4\\ 3Pg]þC= IT0mu"!j}%չ̚"7}ÌbB;b8Gz 6=ɺt!pj4f(?ZɌ?Of:ыh Q"f"('[K((q3Oo)m)2B6oGn`+]O:WmM߿m ԷmVT΂-a,p~6`e>h}g.!:78}Pj}CA]ӛiQ~` _\`Z?a?-,QA#vv>FP\+(vn'ߒAn= R);缎 &ŷp~uPƿYt?$q8&/a endstream endobj 1559 0 obj << /Type /Page /Contents 1560 0 R /Resources 1558 0 R /MediaBox [0 0 595.276 841.89] /Parent 1312 0 R /Annots [ 1554 0 R 1555 0 R 1556 0 R 1557 0 R ] >> endobj 1554 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 456.941 83.303 467.128] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1555 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 456.941 164.468 467.128] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1556 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 226.76 83.303 236.946] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1557 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 226.76 164.468 236.946] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1561 0 obj << /D [1559 0 R /XYZ -16.307 878.039 null] >> endobj 1425 0 obj << /D [1559 0 R /XYZ 56.693 635.715 null] >> endobj 1562 0 obj << /D [1559 0 R /XYZ 56.693 629.737 null] >> endobj 1563 0 obj << /D [1559 0 R /XYZ 56.693 632.626 null] >> endobj 1564 0 obj << /D [1559 0 R /XYZ 56.693 621.667 null] >> endobj 1426 0 obj << /D [1559 0 R /XYZ 56.693 417.488 null] >> endobj 1565 0 obj << /D [1559 0 R /XYZ 56.693 411.51 null] >> endobj 1566 0 obj << /D [1559 0 R /XYZ 56.693 414.4 null] >> endobj 1567 0 obj << /D [1559 0 R /XYZ 56.693 403.441 null] >> endobj 1427 0 obj << /D [1559 0 R /XYZ 56.693 187.306 null] >> endobj 1568 0 obj << /D [1559 0 R /XYZ 56.693 181.328 null] >> endobj 1569 0 obj << /D [1559 0 R /XYZ 56.693 184.218 null] >> endobj 1570 0 obj << /D [1559 0 R /XYZ 56.693 173.259 null] >> endobj 1558 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1579 0 obj << /Length 1062 /Filter /FlateDecode >> stream xMo8<ڋ 7SS4-zOP5`YINw;)qPDB #ƌL #Wa8\(M8 ;rӿX}Vd3X8{|}s'>8~LU2|~8X4EiVC贲7^_rNop#LEƋgFoY B9Ǟ\)b$PϫPr?1sz*o+ `#4/]E!62bxӵߙB~o]Ļ.I-m? a5A$ ŬF٭ρY S+B ep`t+w pk\P"]0 !ٔqki%a}̋ʄO`[a[2FK~\n(r (0u%7>xx=L?edo-5-!z:4A<TOu8QP ׹1Tׇ賺`bc tT#~p||$2j%t˖8DQ` n_^>Mr=/Ji4?R owg!oV;YdU endstream endobj 1578 0 obj << /Type /Page /Contents 1579 0 R /Resources 1577 0 R /MediaBox [0 0 595.276 841.89] /Parent 1590 0 R /Annots [ 1571 0 R 1572 0 R 1573 0 R 1574 0 R 1575 0 R 1576 0 R ] >> endobj 1571 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 675.079 83.303 685.266] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1572 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 675.079 164.468 685.266] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1573 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 456.852 83.303 467.039] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1574 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 456.852 164.468 467.039] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1575 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 226.67 83.303 236.857] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1576 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 226.67 164.468 236.857] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1580 0 obj << /D [1578 0 R /XYZ -11.232 878.039 null] >> endobj 1428 0 obj << /D [1578 0 R /XYZ 56.693 635.625 null] >> endobj 1581 0 obj << /D [1578 0 R /XYZ 56.693 629.648 null] >> endobj 1582 0 obj << /D [1578 0 R /XYZ 56.693 632.537 null] >> endobj 1583 0 obj << /D [1578 0 R /XYZ 56.693 621.578 null] >> endobj 1429 0 obj << /D [1578 0 R /XYZ 56.693 417.399 null] >> endobj 1584 0 obj << /D [1578 0 R /XYZ 56.693 411.421 null] >> endobj 1585 0 obj << /D [1578 0 R /XYZ 56.693 414.31 null] >> endobj 1586 0 obj << /D [1578 0 R /XYZ 56.693 403.351 null] >> endobj 1430 0 obj << /D [1578 0 R /XYZ 56.693 187.217 null] >> endobj 1587 0 obj << /D [1578 0 R /XYZ 56.693 181.239 null] >> endobj 1588 0 obj << /D [1578 0 R /XYZ 56.693 184.128 null] >> endobj 1589 0 obj << /D [1578 0 R /XYZ 56.693 173.17 null] >> endobj 1577 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1601 0 obj << /Length 1503 /Filter /FlateDecode >> stream xYKF+t)3rʺ[S6.J Qb#qoOf V%aK z{׳88 {o 2`8 DҰ@x* 'Cx#Oo8oi8!J6ѲeƁY\)FA@^{a!'V`=|~{`č@(y|Gw'5"P  Wx9#JuDCl:@ZJon2pך Ɲ|l'|NSf}Fɭ7&2*¿DiaDYUy8#/ݼ&{{1HDqI0l};<=Rqm:x(2]Me8βWG,x۾o?5Zñ_YyO#H+c> Ѭ?q>-׏rj4KBO,0g RD@HD (2iLmшn; wUѯ/ӵ}UP2pEBLNh_8ӻY " A\hH8$/0+ĠD^ (tv @$f?\Փ@b\o7W :ʲs^M8b7^7Qp;3o^:kG9RHG jdr_tN =[?ڡ fnIIhL(h-ӊ bFw B<e`aG.4cn)jtTxK"iOTt88D!Øs!/lZFVN/7(}$G۾$]9dzmF˫ZHwg۷f"]v7Gls`.Πa(W#=-#oeط%zѥGe=[cZ<fNfdb,Š`_/Kmq0`>i^U~lHHuk Y"Q  xE`ĊuZg^*L_z-yȚ>2 :e~]dFٲFU[~/&JTb$ ;M o,-J"*t> endobj 1591 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 675.079 83.303 685.266] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1592 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 675.079 164.468 685.266] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1593 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 467.99 147.462 478.894] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 1594 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.749 467.99 187.302 478.894] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1595 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [99.422 333.05 206.549 343.954] /A << /S /GoTo /D (bt-machine-add-pattern) >> >> endobj 1596 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 185.007 114.555 195.911] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 1597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.981 185.007 189.533 195.911] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1602 0 obj << /D [1600 0 R /XYZ -16.307 878.039 null] >> endobj 1432 0 obj << /D [1600 0 R /XYZ 56.693 635.625 null] >> endobj 1603 0 obj << /D [1600 0 R /XYZ 56.693 629.648 null] >> endobj 1604 0 obj << /D [1600 0 R /XYZ 56.693 632.537 null] >> endobj 1605 0 obj << /D [1600 0 R /XYZ 56.693 621.578 null] >> endobj 1433 0 obj << /D [1600 0 R /XYZ 56.693 411.321 null] >> endobj 1606 0 obj << /D [1600 0 R /XYZ 56.693 405.344 null] >> endobj 1607 0 obj << /D [1600 0 R /XYZ 56.693 408.233 null] >> endobj 1608 0 obj << /D [1600 0 R /XYZ 56.693 397.274 null] >> endobj 1609 0 obj << /D [1600 0 R /XYZ 56.693 386.315 null] >> endobj 1434 0 obj << /D [1600 0 R /XYZ 56.693 128.338 null] >> endobj 1610 0 obj << /D [1600 0 R /XYZ 56.693 122.36 null] >> endobj 1611 0 obj << /D [1600 0 R /XYZ 56.693 125.249 null] >> endobj 1612 0 obj << /D [1600 0 R /XYZ 56.693 114.29 null] >> endobj 1613 0 obj << /D [1600 0 R /XYZ 56.693 103.331 null] >> endobj 1599 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1620 0 obj << /Length 1454 /Filter /FlateDecode >> stream xXKs6W(u*oӛ3g2IuSPRGŃ( -`ۏE+#2GB"Y4<fчU{U$_Gc* 'fn MmI:tūG1̊JQP$ U<|$VvE8"[K(t= G3#\G`Dq9tiMzgb9:.WY$UeO&fϲdmh>kVWu]V2Q<2"bN Z٬P12m2Xazj\,"?+T>  i| Q7ى7d˻1["@8%R&x{?TKa\#E!t-9 \PC89D}ڃCp~j :nC*yuR+a{n^Y};d'Ϋٍ;o;*+uǀï7Geyܗ:2<_aiqώfys yU(P9I U0NO?,#0b4w%@"P[e qWRC!]nHD (ұ wKYG c$o{.TOȮQ+J"M6t/߹GBи 7M].l j5A\ĐXHH77D ilAʿ0 0J; Xbn[xoKivh[tU uJ Xx} [wF~brᙄ!q>a4QM>.0U|R'RuKPiKq&0ssh`e\ߓ/7HJq&YQP)? 4(P]  _^ٴZ噟-Lfrq!VmفsіW7\#-$Md6`5n1 s ZLg~\.: 9ˆl?d[ն8:_)rB>&?F@S4CUM `ߏKQsޱ"bD>|dSm64B:hM2 KimWd4Ub3+_MMFc={9-lB^ endstream endobj 1619 0 obj << /Type /Page /Contents 1620 0 R /Resources 1618 0 R /MediaBox [0 0 595.276 841.89] /Parent 1590 0 R /Annots [ 1598 0 R 1614 0 R 1615 0 R 1616 0 R 1617 0 R ] >> endobj 1598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 736.832 162.824 747.736] /A << /S /GoTo /D (bt-machine-add-pattern) >> >> endobj 1614 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 600.644 114.555 611.548] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 1615 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.981 600.644 189.533 611.548] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1616 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 376.34 147.462 387.244] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 1617 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.749 376.34 187.302 387.244] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1621 0 obj << /D [1619 0 R /XYZ -11.232 878.039 null] >> endobj 1435 0 obj << /D [1619 0 R /XYZ 56.693 543.975 null] >> endobj 1622 0 obj << /D [1619 0 R /XYZ 56.693 537.997 null] >> endobj 1623 0 obj << /D [1619 0 R /XYZ 56.693 540.887 null] >> endobj 1624 0 obj << /D [1619 0 R /XYZ 56.693 529.928 null] >> endobj 1436 0 obj << /D [1619 0 R /XYZ 56.693 319.671 null] >> endobj 1625 0 obj << /D [1619 0 R /XYZ 56.693 313.693 null] >> endobj 1626 0 obj << /D [1619 0 R /XYZ 56.693 316.583 null] >> endobj 1627 0 obj << /D [1619 0 R /XYZ 56.693 305.624 null] >> endobj 1437 0 obj << /D [1619 0 R /XYZ 56.693 81.588 null] >> endobj 1618 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1638 0 obj << /Length 1497 /Filter /FlateDecode >> stream xYMs6W(u" ڛ;g2I'hh5H4.P)JL鉤<,vvRAW[mF1nH* GUSt;Awy~ $|kF:Fi0^A*na8 -%:_ w 3%/{wM;D0Z\"I f\;ṟ&iI,Œ İ J#4݋_ 8`jGw^h6†[3n= L 6LOc(ҫ4Y=D(Ad(2@Ce9'7bL@> `P1G!-#ϢŴN7mE &Ʈ*~Gvu6vb`E`10hV$[:%u&Zv)ޒTr珫(w3̂ѝ6>!s$A&a(vEj8uU^{f07 ;ݪCH @כhJ#L?X cP4X,p5= gHnDdYA$`IL]m*&paz  pѼ>A=?bjLZ \,ۀ0Zdס;壸aPB:₟&kCY;2j\ؗT9 K(칎U78n 2ѭG{)&38z7q"d@>oQlZf8@* %}'2CuFF2Ve،2K"VcVk ~ [nl{9)e4e?C`-8S`QkargU)4PWi0j>/CR>gxںirMlsa=z/;E LuTڀ<۩i۩#E>) HNIȠ8KI 7xRZP5u<B;H9ūOq5ꍿ}|n$uÓ[flϼCy8H֎xH7[Jh/-ݜ&v_&Ǻ^3dk$(Q 8ߗ~7v7oѠtwٜ{^~DdHuj+f f5o*bk缞+l-7u&~rzwĊ7oJ\t@A+4 K*5x՛6 endstream endobj 1637 0 obj << /Type /Page /Contents 1638 0 R /Resources 1636 0 R /MediaBox [0 0 595.276 841.89] /Parent 1590 0 R /Annots [ 1628 0 R 1629 0 R 1630 0 R 1631 0 R 1632 0 R 1633 0 R ] >> endobj 1628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 567.667 147.462 578.571] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 1629 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.749 567.667 187.302 578.571] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1630 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [380.963 444.682 427.229 455.586] /A << /S /GoTo /D (BtMachine) >> >> endobj 1631 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 297.356 101.285 307.543] /A << /S /GoTo /D (BtWire) >> >> endobj 1632 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [112.573 297.356 141.126 307.543] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1633 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 262.831 98.137 271.677] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 1639 0 obj << /D [1637 0 R /XYZ -16.307 878.039 null] >> endobj 1640 0 obj << /D [1637 0 R /XYZ 56.693 761.903 null] >> endobj 1641 0 obj << /D [1637 0 R /XYZ 56.693 755.228 null] >> endobj 1642 0 obj << /D [1637 0 R /XYZ 56.693 744.269 null] >> endobj 1643 0 obj << /D [1637 0 R /XYZ 56.693 733.31 null] >> endobj 1438 0 obj << /D [1637 0 R /XYZ 56.693 510.998 null] >> endobj 1644 0 obj << /D [1637 0 R /XYZ 56.693 505.021 null] >> endobj 1645 0 obj << /D [1637 0 R /XYZ 56.693 507.91 null] >> endobj 1646 0 obj << /D [1637 0 R /XYZ 56.693 496.951 null] >> endobj 1647 0 obj << /D [1637 0 R /XYZ 56.693 485.992 null] >> endobj 1439 0 obj << /D [1637 0 R /XYZ 56.693 222.037 null] >> endobj 1648 0 obj << /D [1637 0 R /XYZ 56.693 216.059 null] >> endobj 1649 0 obj << /D [1637 0 R /XYZ 56.693 218.949 null] >> endobj 1650 0 obj << /D [1637 0 R /XYZ 56.693 207.99 null] >> endobj 1636 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F108 345 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1660 0 obj << /Length 1237 /Filter /FlateDecode >> stream x͙[S6+tՒۧ0ӝB:};qi,e},ٱ'>lG:>9!t18NUB,@)BTh!Ec1IJ0\/NӚLIq()&_ˬTw]\^C c1HťVt]b'#JшCG (͗&yv/|߯:$̤TsgBvL#X5\9Z9 mwd EMo&اM$?DPZvhEcEeX[!fT CԠi-MiO7HeJN0w)Ւ_>-M`5SVj!k{w$ -GmS~O6Kgllɴ: ( ܚQW8Yfy3LfyAgg lBğ)(Om bڡu5 q+hv,af2שS7BmnwR`xrePJn,,;{ϒWUۧڝ8("ʼ<A&(79fbiLvH|qF7ܒ)\*4IUeJ# \$Cu$k'Y-?lƙq8: Zz*ii08Ԫcd`49d86Yl4#?{HMt(D_ J-$Dҽ/4Ւӹ}sU_U{@_jp;1_phg%Q9+ \7uíg𤊳>Q%VOVOn֚ct5cJJ؁k>A3 D>T!NS-=}8@E~U,AzFT'=c{ 3"5y@>Œź)!W<> endobj 1634 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 727.283 83.303 737.47] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1635 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.948 727.283 214.649 737.47] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1651 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 710.69 98.137 719.537] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 1652 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [353.746 614.54 384.67 625.443] /A << /S /GoTo /D (BtWire) >> >> endobj 1653 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 504.319 83.303 513.166] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1654 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.314 408.168 395.237 419.072] /A << /S /GoTo /D (BtWire) >> >> endobj 1655 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 297.948 83.303 306.795] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1656 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.899 201.797 198.38 212.701] /A << /S /GoTo /D (BtPattern) >> >> endobj 1657 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 78.435 83.303 89.339] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1661 0 obj << /D [1659 0 R /XYZ -11.232 878.039 null] >> endobj 1440 0 obj << /D [1659 0 R /XYZ 56.693 669.897 null] >> endobj 1662 0 obj << /D [1659 0 R /XYZ 56.693 663.919 null] >> endobj 1663 0 obj << /D [1659 0 R /XYZ 56.693 666.808 null] >> endobj 1664 0 obj << /D [1659 0 R /XYZ 56.693 655.85 null] >> endobj 1441 0 obj << /D [1659 0 R /XYZ 56.693 463.526 null] >> endobj 1665 0 obj << /D [1659 0 R /XYZ 56.693 457.548 null] >> endobj 1666 0 obj << /D [1659 0 R /XYZ 56.693 460.437 null] >> endobj 1667 0 obj << /D [1659 0 R /XYZ 56.693 449.478 null] >> endobj 1442 0 obj << /D [1659 0 R /XYZ 56.693 257.154 null] >> endobj 1668 0 obj << /D [1659 0 R /XYZ 56.693 251.177 null] >> endobj 1669 0 obj << /D [1659 0 R /XYZ 56.693 254.066 null] >> endobj 1670 0 obj << /D [1659 0 R /XYZ 56.693 243.107 null] >> endobj 1658 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1676 0 obj << /Length 1424 /Filter /FlateDecode >> stream xY[sF~W _Ou&LIf<2 HT4Y]@A2v;g;"h8 nE[MTXYQS4{z$$ pa<.ooxOW7 ;X56QJwU hh$VoJ4^ 4>!5|IJ0 К؊Ba}J(2Tz.8E$$J' wX4X\i\Rak,JC4iDk/ ,_Z_Y:–P6Lg+] !V] tc .*{ciʞ`\cKe=qjIS%L~ӧ|t/Q' Iʚ>өn M)IXDC~`tgnq׮+n` WbMuđ+ȉi1fOaqQzCi2Y˧·<0/>#^P6r֐KOpBn%$lA,J`yWf #0Ԑźu?m ̓:,&F'dfjW:|VWAEWnە&Wʔ}:B֡w`R ΀+O[M133T3X<؍-by89.1 SIӝ@`V mhS}(p^{@0yÛMD?Uų,8a?b[I8WaTp\I~?l֓jgplJ.f&~OV{IŚֳ3os! _K>osAaBFCOt0 ߚ= @yvC)sk٨Eg8\ endstream endobj 1675 0 obj << /Type /Page /Contents 1676 0 R /Resources 1674 0 R /MediaBox [0 0 595.276 841.89] /Parent 1590 0 R /Annots [ 1672 0 R 1673 0 R ] >> endobj 1672 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 562.331 83.303 573.235] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1673 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.878 562.331 209.578 573.235] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 1677 0 obj << /D [1675 0 R /XYZ -16.307 878.039 null] >> endobj 1443 0 obj << /D [1675 0 R /XYZ 56.693 741.921 null] >> endobj 1678 0 obj << /D [1675 0 R /XYZ 56.693 735.943 null] >> endobj 1679 0 obj << /D [1675 0 R /XYZ 56.693 738.833 null] >> endobj 1680 0 obj << /D [1675 0 R /XYZ 56.693 727.874 null] >> endobj 1444 0 obj << /D [1675 0 R /XYZ 56.693 523.595 null] >> endobj 1681 0 obj << /D [1675 0 R /XYZ 56.693 517.617 null] >> endobj 1682 0 obj << /D [1675 0 R /XYZ 56.693 520.506 null] >> endobj 1683 0 obj << /D [1675 0 R /XYZ 56.693 509.547 null] >> endobj 1445 0 obj << /D [1675 0 R /XYZ 56.693 371.315 null] >> endobj 1684 0 obj << /D [1675 0 R /XYZ 56.693 365.337 null] >> endobj 1685 0 obj << /D [1675 0 R /XYZ 56.693 368.226 null] >> endobj 1686 0 obj << /D [1675 0 R /XYZ 56.693 357.267 null] >> endobj 1687 0 obj << /D [1675 0 R /XYZ 56.693 346.308 null] >> endobj 1446 0 obj << /D [1675 0 R /XYZ 56.693 184.588 null] >> endobj 1688 0 obj << /D [1675 0 R /XYZ 56.693 178.751 null] >> endobj 1689 0 obj << /D [1675 0 R /XYZ 56.693 181.64 null] >> endobj 1690 0 obj << /D [1675 0 R /XYZ 56.693 170.681 null] >> endobj 1674 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1697 0 obj << /Length 1704 /Filter /FlateDecode >> stream xZ[oF~WTdCnUQ_+!n P$ݭ{clL0Ly wΜ̹Ly2AFR\!4,P&|?8G?}y4^NʯDM~~wV@d+4 @+^ʮt={@`ȓ&V`r?).<3A0LEaܝ@ 0wdb/R(Ձ1َphBeR6Gd f y`Mvl^i {Hph右84OYY##H FFXU#IaPV[;.D"Ml:Zi8EW0}Cu%-yd,;J^:rV1 Ɯd?= lX?oXj:1nFM*nZfy=JPB!h#4No `g ivoێAj %A;LHTb%[mS3-MoGf.k1iVj1Ze#NIaEE<}_ 18iUB'wr^ickeV`e4"(փ.C\8$2O XUmxFC"̭1P8JҪ_$ 8u6&3UhKBD&6YN[VDž )WRqJKWFheeZ@j1H`ޟaV{PBjj* W DXDŽKl3/rt X#E.Vt1oe;)nc,xRg0",nUZuC/ov[0j|P.u:$GBI:]4<^B()9¨QsŐTekcGh[(A$OVK7PKYo,'~a9 C! sKӥVS"%'`F:ۜ. C°br!SðжvJ XZtɡ+7fJV!eȐa8PWb |*OғIUX۲NŞ#094!~#tJ!顰Ɍ/rk Y#=V[ 8h%-y׵ "0Q0CoL ݯU{ bIF{[#&aGJ Kkԧ挴ק>4{RR/(NCҎ噒DFb8&ʆz(qy$ZN݇?츻,o56XDtSSP%GM̢D8&A힚TyK}߮3im{,lI*[e0vK:(ړ¢-+T#+rq4=&&Z.>*11}\Xv7=[Zve9i4P"#ytY:?&iܬ®! ZH{r QP6rOʰ} G*{8}C3iU|M([n+yK|S]ǭxҸcZGbq/SgzՇmr0u?< endstream endobj 1696 0 obj << /Type /Page /Contents 1697 0 R /Resources 1695 0 R /MediaBox [0 0 595.276 841.89] /Parent 1717 0 R >> endobj 1698 0 obj << /D [1696 0 R /XYZ -11.232 878.039 null] >> endobj 1447 0 obj << /D [1696 0 R /XYZ 56.693 712.033 null] >> endobj 1699 0 obj << /D [1696 0 R /XYZ 56.693 706.055 null] >> endobj 1700 0 obj << /D [1696 0 R /XYZ 56.693 708.945 null] >> endobj 1701 0 obj << /D [1696 0 R /XYZ 56.693 697.986 null] >> endobj 1448 0 obj << /D [1696 0 R /XYZ 56.693 547.798 null] >> endobj 1702 0 obj << /D [1696 0 R /XYZ 56.693 541.82 null] >> endobj 1703 0 obj << /D [1696 0 R /XYZ 56.693 544.71 null] >> endobj 1704 0 obj << /D [1696 0 R /XYZ 56.693 533.751 null] >> endobj 1705 0 obj << /D [1696 0 R /XYZ 56.693 522.792 null] >> endobj 1706 0 obj << /D [1696 0 R /XYZ 56.693 511.833 null] >> endobj 1449 0 obj << /D [1696 0 R /XYZ 56.693 337.635 null] >> endobj 1707 0 obj << /D [1696 0 R /XYZ 56.693 331.657 null] >> endobj 1708 0 obj << /D [1696 0 R /XYZ 56.693 334.547 null] >> endobj 1709 0 obj << /D [1696 0 R /XYZ 56.693 323.588 null] >> endobj 1710 0 obj << /D [1696 0 R /XYZ 56.693 186.736 null] >> endobj 1509 0 obj << /D [1696 0 R /XYZ 56.693 162.698 null] >> endobj 1711 0 obj << /D [1696 0 R /XYZ 56.693 158.044 null] >> endobj 1712 0 obj << /D [1696 0 R /XYZ 56.693 160.933 null] >> endobj 1713 0 obj << /D [1696 0 R /XYZ 56.693 149.974 null] >> endobj 1714 0 obj << /D [1696 0 R /XYZ 56.693 139.015 null] >> endobj 1715 0 obj << /D [1696 0 R /XYZ 56.693 128.056 null] >> endobj 1716 0 obj << /D [1696 0 R /XYZ 56.693 117.097 null] >> endobj 1695 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1720 0 obj << /Length 1025 /Filter /FlateDecode >> stream xڽXK6Wh59hzpVNl)Iޡ(mrW9I It3Y&"b H*,GSSڠty5Ofs&t_%i?F( Sp_Y6U R6ӅPݜɯ_ B0)Qxo<"I f\1}B3fF))›rtF4+l/oo:Vk47aǸmJ5Zx]AF JW>2/P% T/>`# Ra)MI$X.\KLDqE}S s kH×C銎w7ѕ%J ImeL)8K[}Qg=a׸Kq]bRH!!0`1!u7tHt|l||1!Ǥ"S{ikdɱw8 MOHkWRXRo0{2 %Ӈ}:7n1qX MsÒ*̨@ [cQmm#iv񹅤yT_z_mC4Աc tWV%32\@iAe=H1jsEEB$ C|4Gr3n8˚XHn+I[@bn`J._4(D[ާyK^#& Mұ>tq0*϶=E3 4s|픘q 4Yq_yG$TGmft [! ?_>㵃j[qvi%mj%*ϘRRV5lا}=Y(؝I=))ܹSXzXJk1$^ƹ;"HRYHӏg=(&/c#3v2h5tBd2c/ }'\H K*8bF{̓6= wӖg︸:R,*6iv⥬W.8AkdtuReEknB endstream endobj 1719 0 obj << /Type /Page /Contents 1720 0 R /Resources 1718 0 R /MediaBox [0 0 595.276 841.89] /Parent 1717 0 R /Annots [ 1691 0 R 1692 0 R 1693 0 R 1694 0 R ] >> endobj 1691 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 665.36 86.361 679.308] /A << /S /GoTo /D (GList) >> >> endobj 1692 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.029 638.959 404.953 647.806] /A << /S /GoTo /D (BtWire) >> >> endobj 1693 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 545.809 86.361 559.756] /A << /S /GoTo /D (GList) >> >> endobj 1694 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.029 519.408 404.953 528.254] /A << /S /GoTo /D (BtWire) >> >> endobj 1721 0 obj << /D [1719 0 R /XYZ -16.307 878.039 null] >> endobj 1510 0 obj << /D [1719 0 R /XYZ 56.693 456.686 null] >> endobj 1722 0 obj << /D [1719 0 R /XYZ 56.693 450.708 null] >> endobj 1723 0 obj << /D [1719 0 R /XYZ 56.693 453.598 null] >> endobj 1724 0 obj << /D [1719 0 R /XYZ 56.693 442.639 null] >> endobj 1725 0 obj << /D [1719 0 R /XYZ 56.693 431.68 null] >> endobj 1726 0 obj << /D [1719 0 R /XYZ 56.693 409.762 null] >> endobj 1718 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F108 345 0 R /F98 124 0 R /F111 1172 0 R /F115 1173 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1730 0 obj << /Length 1217 /Filter /FlateDecode >> stream xڥXKs6W`r:7:n3QZʡf< =jI*rolYbKƈVw:yST1#$V)G:VS4AWIwg]f?&Iҭ;oK;͇ᵗl2xdVq+Ɔ3XAkAG& fJ4t}"5{3r$%q3o"뻣xP "=o7L/~t,Wa&lkl bcBE`m%&L"-9\,K2 t(ũ\@du\nm&om*MNL|OE/N9+ی$9ٰWSUT\OUtmU(&Q<6:۱"b3t'4,8%bkeC'Lsۯ:vt8S!M/ʷ2˖A6}[#:77[+1Mƿܕŝ-m!:zmc.[*^톭K >W\K/l 4\158u#8F{+?*p5 Ѣ;Idzr04]~Ÿ"XIߍ{(qc[TxИ(o;Sݺa)- RL4"{6@o8._}@@8A2KC< dM RԇA0ƱfEz.v))[Cuo"-rUIL lz'rГ8ړ5|j,9w;HF ESjϣ(*1 .x^]dG|Z@e^Q)`7Z@Φ*b0LBG)YCnnl7H@ "PQ¬-jMsk7j?5RmDI'1H\N!--{Oo\5,Z`BֱNYz#Oa 䣉Ca'7`_7ٜr褎f$U}6s*oL>Fx# o:!5zQmC0pwU < (E_ʇ֫P$ &ݰe[?V싊m^A endstream endobj 1729 0 obj << /Type /Page /Contents 1730 0 R /Resources 1728 0 R /MediaBox [0 0 595.276 841.89] /Parent 1717 0 R /Annots [ 1727 0 R ] >> endobj 1727 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [351.703 445.069 397.969 455.973] /A << /S /GoTo /D (BtMachine) >> >> endobj 1731 0 obj << /D [1729 0 R /XYZ -11.232 878.039 null] >> endobj 1502 0 obj << /D [1729 0 R /XYZ 56.693 462.568 null] >> endobj 1732 0 obj << /D [1729 0 R /XYZ 62.67 376.198 null] >> endobj 1733 0 obj << /D [1729 0 R /XYZ 62.67 346.31 null] >> endobj 1734 0 obj << /D [1729 0 R /XYZ 62.67 298.49 null] >> endobj 1735 0 obj << /D [1729 0 R /XYZ 62.67 220.781 null] >> endobj 1736 0 obj << /D [1729 0 R /XYZ 56.693 144.894 null] >> endobj 1450 0 obj << /D [1729 0 R /XYZ 56.693 120.357 null] >> endobj 1737 0 obj << /D [1729 0 R /XYZ 56.693 115.205 null] >> endobj 1738 0 obj << /D [1729 0 R /XYZ 56.693 118.094 null] >> endobj 1728 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F108 345 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1741 0 obj << /Length 1062 /Filter /FlateDecode >> stream x͙M6DNvQqdfPM \Yrey͡=#Q޵-gyI@Vz>184d~G b|^|)YLM^pg8ՍbѬYi 㤵E尿ӫ0k1_gO8Td|dYwsMʅ)c:Ũ4^m_"yv<|J >a L3K~\,l[EY"/NڕXjC{pʤ}٪'Z%(W;#lY[aB|uM Mv//޻e\S b( Ur*°Qo`g;sٯcۮJZ8@ݖoSFN+%j0CB!y]agbl[>CٌL+(/&ߖQ|2n(2* rnpdb4[Q>NʹWң{]STAɞ1JK؂hBMۑ* S_m􇖋Z`vCY׊?1}k& f8Q㪅Ղag@&UrR b$+MՕ endstream endobj 1740 0 obj << /Type /Page /Contents 1741 0 R /Resources 1739 0 R /MediaBox [0 0 595.276 841.89] /Parent 1717 0 R >> endobj 1742 0 obj << /D [1740 0 R /XYZ -16.307 878.039 null] >> endobj 1451 0 obj << /D [1740 0 R /XYZ 56.693 710.051 null] >> endobj 1743 0 obj << /D [1740 0 R /XYZ 56.693 704.073 null] >> endobj 1744 0 obj << /D [1740 0 R /XYZ 56.693 706.962 null] >> endobj 1452 0 obj << /D [1740 0 R /XYZ 56.693 608.983 null] >> endobj 1745 0 obj << /D [1740 0 R /XYZ 56.693 603.006 null] >> endobj 1746 0 obj << /D [1740 0 R /XYZ 56.693 605.895 null] >> endobj 1453 0 obj << /D [1740 0 R /XYZ 56.693 507.916 null] >> endobj 1747 0 obj << /D [1740 0 R /XYZ 56.693 501.938 null] >> endobj 1748 0 obj << /D [1740 0 R /XYZ 56.693 504.828 null] >> endobj 1454 0 obj << /D [1740 0 R /XYZ 56.693 388.916 null] >> endobj 1749 0 obj << /D [1740 0 R /XYZ 56.693 382.938 null] >> endobj 1750 0 obj << /D [1740 0 R /XYZ 56.693 385.827 null] >> endobj 1455 0 obj << /D [1740 0 R /XYZ 56.693 287.848 null] >> endobj 1751 0 obj << /D [1740 0 R /XYZ 56.693 281.871 null] >> endobj 1752 0 obj << /D [1740 0 R /XYZ 56.693 284.76 null] >> endobj 1456 0 obj << /D [1740 0 R /XYZ 56.693 186.781 null] >> endobj 1753 0 obj << /D [1740 0 R /XYZ 56.693 180.803 null] >> endobj 1754 0 obj << /D [1740 0 R /XYZ 56.693 183.693 null] >> endobj 1739 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1757 0 obj << /Length 1115 /Filter /FlateDecode >> stream xՙK6DNrQq~Iv=41Cꥵdّm7~Z˕ў9')"ng׋ՍbB +ˑPjwSt]}VI]m᚛n /ߓJŻC{Bkl8Nk@}mF6J'Oh}B{֠$)+Ї3r8:ClJh\Yܻ_JAόM_.E;efiWW;WIT>#J/nX4W*K V@ [cQ`t}kǟuv6}̜á-- ROӤ4һ k涙"EmgИmF1%v_?bD@IS,U/& cuf$ʠ°O}Kz5[2TFs%#\P5洵u%y̩בUЂƜ*wU:@bʫе$:k*)6S?$.oL/B] sMrꝄ&^B-w{'bK~D$THp!/a~L;;XSds XNwu{mOHN1rJWIr>--yְkBtq"*]qlܤz&4O%r`? `gGdfFe=g,>IqOIq|!F1y v;8wƸ^mAi-c.]m/jYlƭ%Uֺ IVWݡϯ^Rd ǻH6cKQय़žXr;Pj&0 uuTb((s?xPyʶyzBJ. Hcy}ؗI^v[:/8+Pڭg cYx endstream endobj 1756 0 obj << /Type /Page /Contents 1757 0 R /Resources 1755 0 R /MediaBox [0 0 595.276 841.89] /Parent 1717 0 R >> endobj 1758 0 obj << /D [1756 0 R /XYZ -11.232 878.039 null] >> endobj 1492 0 obj << /D [1756 0 R /XYZ 56.693 741.921 null] >> endobj 1759 0 obj << /D [1756 0 R /XYZ 56.693 736.56 null] >> endobj 1760 0 obj << /D [1756 0 R /XYZ 56.693 739.449 null] >> endobj 1493 0 obj << /D [1756 0 R /XYZ 56.693 644.203 null] >> endobj 1761 0 obj << /D [1756 0 R /XYZ 56.693 638.842 null] >> endobj 1762 0 obj << /D [1756 0 R /XYZ 56.693 641.732 null] >> endobj 1494 0 obj << /D [1756 0 R /XYZ 56.693 546.485 null] >> endobj 1763 0 obj << /D [1756 0 R /XYZ 56.693 541.125 null] >> endobj 1764 0 obj << /D [1756 0 R /XYZ 56.693 544.014 null] >> endobj 1495 0 obj << /D [1756 0 R /XYZ 56.693 448.768 null] >> endobj 1765 0 obj << /D [1756 0 R /XYZ 56.693 443.407 null] >> endobj 1766 0 obj << /D [1756 0 R /XYZ 56.693 446.296 null] >> endobj 1496 0 obj << /D [1756 0 R /XYZ 56.693 351.05 null] >> endobj 1767 0 obj << /D [1756 0 R /XYZ 56.693 345.689 null] >> endobj 1768 0 obj << /D [1756 0 R /XYZ 56.693 348.578 null] >> endobj 1497 0 obj << /D [1756 0 R /XYZ 56.693 253.332 null] >> endobj 1769 0 obj << /D [1756 0 R /XYZ 56.693 247.971 null] >> endobj 1770 0 obj << /D [1756 0 R /XYZ 56.693 250.861 null] >> endobj 1498 0 obj << /D [1756 0 R /XYZ 56.693 138.299 null] >> endobj 1771 0 obj << /D [1756 0 R /XYZ 56.693 132.938 null] >> endobj 1772 0 obj << /D [1756 0 R /XYZ 56.693 135.827 null] >> endobj 1755 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1775 0 obj << /Length 1085 /Filter /FlateDecode >> stream xڽ_s6zNQRߒk撛&tp8 cSۤٻL>I%;$Co_kekNd|~v)=3#V^<ꈕ&sp)ʄ,+|ˎK>{} !I|?ynwz>$qqy~ üo ׂplnl-ׂ(pӈkC&w> j_(ʋU "o6ͳjtw9@/_?=/ d>eZ+L֧:3S_tܲ}-UT gJP'xxn>=7BS߯OHuϒ`N[_@cyg@W@SkJ8P 17RiJ }s/O[oktC/mR@ endstream endobj 1774 0 obj << /Type /Page /Contents 1775 0 R /Resources 1773 0 R /MediaBox [0 0 595.276 841.89] /Parent 1717 0 R >> endobj 1776 0 obj << /D [1774 0 R /XYZ -16.307 878.039 null] >> endobj 1499 0 obj << /D [1774 0 R /XYZ 56.693 741.921 null] >> endobj 1777 0 obj << /D [1774 0 R /XYZ 56.693 735.943 null] >> endobj 1778 0 obj << /D [1774 0 R /XYZ 56.693 738.833 null] >> endobj 1500 0 obj << /D [1774 0 R /XYZ 56.693 622.921 null] >> endobj 1779 0 obj << /D [1774 0 R /XYZ 56.693 616.943 null] >> endobj 1780 0 obj << /D [1774 0 R /XYZ 56.693 619.832 null] >> endobj 1501 0 obj << /D [1774 0 R /XYZ 56.693 521.853 null] >> endobj 1781 0 obj << /D [1774 0 R /XYZ 56.693 515.876 null] >> endobj 1782 0 obj << /D [1774 0 R /XYZ 56.693 518.765 null] >> endobj 1503 0 obj << /D [1774 0 R /XYZ 56.693 420.786 null] >> endobj 1783 0 obj << /D [1774 0 R /XYZ 56.693 414.808 null] >> endobj 1784 0 obj << /D [1774 0 R /XYZ 56.693 417.698 null] >> endobj 1504 0 obj << /D [1774 0 R /XYZ 56.693 301.786 null] >> endobj 1785 0 obj << /D [1774 0 R /XYZ 56.693 295.808 null] >> endobj 1786 0 obj << /D [1774 0 R /XYZ 56.693 298.697 null] >> endobj 1505 0 obj << /D [1774 0 R /XYZ 56.693 200.718 null] >> endobj 1787 0 obj << /D [1774 0 R /XYZ 56.693 194.741 null] >> endobj 1788 0 obj << /D [1774 0 R /XYZ 56.693 197.63 null] >> endobj 1773 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1829 0 obj << /Length 1490 /Filter /FlateDecode >> stream xZr6}WQTmNfI%-AZIt)Ah2%S`wb4A3Dл[mV1H*,GQSt5A_߿YňI2G?+N>jO?$dq뷆 {X56Q1x^@c\ Px HoM{D='HRW{>~w"')|!?OW/#E+$^o+W!W>rDR)An1mX2rUZў:~O{ہt5dPE}N(8 Z< NIC[ 'm}M=5e1@ \/-rD ܰ'I49%M;°V8>)Ahw09|,N '-_ɺq\zgm젖zہp0A|%K#N06-5);U| f̄$b6-^ 8|ڍНX-$Í2I~VF{rq4Tij~paB9ڏ-< “\MY>6gPV˞v9LaΜrMWvVApbK`KfUs2wAe0X..۲lڬqY<^&B[7{/@E2[F+4s]eÓҒX7=K[ GΧ-uU ~mUckK[3`PL/umlwm) -̨i~O{{JUm-yF\q=8¡a%%rͱ7^>?Xfԥ.9SKN!^L?[]>h?vĈGF#]@ ]=2&3МŤ<ڔ>=]@3PjI'QLk/.Uwuy wcgLa)eMeіRYxƞcly)!n.?fۑ~T0o>l{/kmʽ!ebϾ~"F |o7U{vi,?vD5=t(ɛz[+n\?Wg޵U˦ǩy[2fӛ~l%PoDbү![3gjR =3Q K+ x?<5h endstream endobj 1828 0 obj << /Type /Page /Contents 1829 0 R /Resources 1827 0 R /MediaBox [0 0 595.276 841.89] /Parent 1843 0 R /Annots [ 1789 0 R 1790 0 R 1791 0 R 1792 0 R 1793 0 R 1794 0 R ] >> endobj 1789 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 488.854 125.813 499.758] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 1790 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 223.01 125.813 233.914] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 1791 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 88.886 91.373 102.833] /A << /S /GoTo /D (gchar) >> >> endobj 1792 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 88.886 406.752 102.833] /A << /S /GoTo /D (bt-parameter-group-describe-param-value) >> >> endobj 1793 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 76.831 86.76 90.779] /A << /S /GoTo /D (void) >> >> endobj 1794 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 76.831 390.413 90.779] /A << /S /GoTo /D (bt-parameter-group-get-param-details) >> >> endobj 1830 0 obj << /D [1828 0 R /XYZ -11.232 878.039 null] >> endobj 1831 0 obj << /D [1828 0 R /XYZ 56.693 741.323 null] >> endobj 1506 0 obj << /D [1828 0 R /XYZ 56.693 715.961 null] >> endobj 1832 0 obj << /D [1828 0 R /XYZ 56.693 709.984 null] >> endobj 1833 0 obj << /D [1828 0 R /XYZ 56.693 712.873 null] >> endobj 1834 0 obj << /D [1828 0 R /XYZ 56.693 701.914 null] >> endobj 1835 0 obj << /D [1828 0 R /XYZ 56.693 690.955 null] >> endobj 1836 0 obj << /D [1828 0 R /XYZ 56.693 679.996 null] >> endobj 1508 0 obj << /D [1828 0 R /XYZ 56.693 450.118 null] >> endobj 1837 0 obj << /D [1828 0 R /XYZ 56.693 444.14 null] >> endobj 1838 0 obj << /D [1828 0 R /XYZ 56.693 447.029 null] >> endobj 1839 0 obj << /D [1828 0 R /XYZ 56.693 436.071 null] >> endobj 1840 0 obj << /D [1828 0 R /XYZ 56.693 425.112 null] >> endobj 1841 0 obj << /D [1828 0 R /XYZ 56.693 414.153 null] >> endobj 67 0 obj << /D [1828 0 R /XYZ 56.693 208.997 null] >> endobj 1431 0 obj << /D [1828 0 R /XYZ 56.693 172 null] >> endobj 1842 0 obj << /D [1828 0 R /XYZ 56.693 113.792 null] >> endobj 1827 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1859 0 obj << /Length 2058 /Filter /FlateDecode >> stream xڵ[[oF~ P`!x.X`6(&F![45YȔKRq=ËDJ8Ԉ1e9so^^ݼ:H *ۇ $4 $"4{Ȣ/kUq:3/̓L׿h5  `H1 /-祚TOW^xdDŽ7y?]} _Bɧ(y| ףa X [!FraL Iw D  /a|*cGUnA`=W Mx5xEIrc!o*=ʥp<`yj6LD#%* 8'̢ƌDdxZ9GG0ɾ!6 I7Xp,O?MZK=e8_%9. ޼9óG%`jb<)V~TB^ϐrK1+< BTJRM2>Yge$U) . QiΧ(E,pSaF]50?NP^Ϣ9ųVs`PF0TD5t^L:͍ '6R}ciC Q(hS)}w40}cgCִ^)kUt4MTm=FyZs|hC+B~i~,&+ڤz$ɢt~J]zWu õFбphU,4tHcr_=搟XPYDOq q ch$ ҈(rxྚٶi[_-Y|\+]k\`{Zt@>Qw-M(TI$Y='m6]6R,4U~$wJx=/UK)?<Β"Y=ɸy_Y\q>v9&oSWMn&IkP:/Ifr47͙83QKZUu=[ŏQ4 7ilMoj6KCEi{[*wV0Q΢euBtY}/u[ Aq e^C"`U\EKulw=mMv=s|~?xlXLg.}Z}uaQ^i;F+RMc%u!`"/fkS5mY=Gw)⡜?~M}b{bx,DBg/ʦSL.lTj#]?8c ^b5 h/0ۤCwT19}7n6 endstream endobj 1858 0 obj << /Type /Page /Contents 1859 0 R /Resources 1857 0 R /MediaBox [0 0 595.276 841.89] /Parent 1843 0 R /Annots [ 1795 0 R 1796 0 R 1797 0 R 1798 0 R 1799 0 R 1800 0 R 1801 0 R 1802 0 R 1803 0 R 1804 0 R 1805 0 R 1806 0 R 1807 0 R 1808 0 R 1809 0 R 1810 0 R 1811 0 R 1812 0 R 1813 0 R 1814 0 R 1815 0 R 1816 0 R 1817 0 R 1818 0 R 1819 0 R 1820 0 R 1821 0 R 1822 0 R 1823 0 R 1824 0 R 1825 0 R 1826 0 R 1846 0 R 1847 0 R 1848 0 R 1849 0 R 1850 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R 1856 0 R ] >> endobj 1795 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 739.387 91.941 753.335] /A << /S /GoTo /D (glong) >> >> endobj 1796 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 739.387 386.388 753.335] /A << /S /GoTo /D (bt-parameter-group-get-param-index) >> >> endobj 1797 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 727.332 114.894 741.28] /A << /S /GoTo /D (gchar) >> >> endobj 1798 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 727.332 385.98 741.28] /A << /S /GoTo /D (bt-parameter-group-get-param-name) >> >> endobj 1799 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 715.278 99.124 729.225] /A << /S /GoTo /D (GValue) >> >> endobj 1800 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 715.278 400.675 729.225] /A << /S /GoTo /D (bt-parameter-group-get-param-no-value) >> >> endobj 1801 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 703.223 102.999 717.17] /A << /S /GoTo /D (GObject) >> >> endobj 1802 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 703.223 389.297 717.17] /A << /S /GoTo /D (bt-parameter-group-get-param-parent) >> >> endobj 1803 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 691.168 121.111 705.116] /A << /S /GoTo /D (GParamSpec) >> >> endobj 1804 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 691.168 382.104 705.116] /A << /S /GoTo /D (bt-parameter-group-get-param-spec) >> >> endobj 1805 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 679.113 96.115 693.061] /A << /S /GoTo /D (GType) >> >> endobj 1806 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 679.113 381.556 693.061] /A << /S /GoTo /D (bt-parameter-group-get-param-type) >> >> endobj 1807 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 667.058 91.941 681.006] /A << /S /GoTo /D (glong) >> >> endobj 1808 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 667.058 417.93 681.006] /A << /S /GoTo /D (bt-parameter-group-get-trigger-param-index) >> >> endobj 1809 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 655.003 91.941 668.951] /A << /S /GoTo /D (glong) >> >> endobj 1810 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 655.003 411.943 668.951] /A << /S /GoTo /D (bt-parameter-group-get-wave-param-index) >> >> endobj 1811 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 642.949 105.769 656.896] /A << /S /GoTo /D (gboolean) >> >> endobj 1812 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 642.949 395.145 656.896] /A << /S /GoTo /D (bt-parameter-group-is-param-no-value) >> >> endobj 1813 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 630.894 105.769 644.841] /A << /S /GoTo /D (gboolean) >> >> endobj 1814 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 630.894 385.432 644.841] /A << /S /GoTo /D (bt-parameter-group-is-param-trigger) >> >> endobj 1815 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 618.839 144.353 632.787] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 1816 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 618.839 333.716 632.787] /A << /S /GoTo /D (bt-parameter-group-new) >> >> endobj 1817 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 606.784 86.76 620.732] /A << /S /GoTo /D (void) >> >> endobj 1818 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 606.784 389.606 620.732] /A << /S /GoTo /D (bt-parameter-group-randomize-values) >> >> endobj 1819 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 594.729 86.76 608.677] /A << /S /GoTo /D (void) >> >> endobj 1820 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 594.729 366.363 608.677] /A << /S /GoTo /D (bt-parameter-group-reset-values) >> >> endobj 1821 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 582.674 86.76 596.622] /A << /S /GoTo /D (void) >> >> endobj 1822 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 582.674 390.861 596.622] /A << /S /GoTo /D (bt-parameter-group-set-param-default) >> >> endobj 1823 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 570.62 86.76 584.567] /A << /S /GoTo /D (void) >> >> endobj 1824 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 570.62 394.737 584.567] /A << /S /GoTo /D (bt-parameter-group-set-param-defaults) >> >> endobj 1825 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 558.565 86.76 572.512] /A << /S /GoTo /D (void) >> >> endobj 1826 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 558.565 384.625 572.512] /A << /S /GoTo /D (bt-parameter-group-set-param-value) >> >> endobj 1846 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 496.242 107.94 510.189] /A << /S /GoTo /D (BtMachine) >> >> endobj 1847 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 496.242 259.774 510.189] /A << /S /GoTo /D (BtParameterGroup--machine) >> >> endobj 1848 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 484.187 91.343 498.134] /A << /S /GoTo /D (gulong) >> >> endobj 1849 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 484.187 275.824 498.134] /A << /S /GoTo /D (BtParameterGroup--num-params) >> >> endobj 1850 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 472.132 96.872 486.08] /A << /S /GoTo /D (gpointer) >> >> endobj 1851 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 472.132 254.793 486.08] /A << /S /GoTo /D (BtParameterGroup--params) >> >> endobj 1852 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 460.077 96.872 474.025] /A << /S /GoTo /D (gpointer) >> >> endobj 1853 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 460.077 254.793 474.025] /A << /S /GoTo /D (BtParameterGroup--parents) >> >> endobj 1854 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 448.022 93.564 461.97] /A << /S /GoTo /D (BtSong) >> >> endobj 1855 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 448.022 244.84 461.97] /A << /S /GoTo /D (BtParameterGroup--song) >> >> endobj 1856 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 385.699 306.708 399.647] /A << /S /GoTo /D (BtParameterGroup-struct) >> >> endobj 1860 0 obj << /D [1858 0 R /XYZ -16.307 878.039 null] >> endobj 1861 0 obj << /D [1858 0 R /XYZ 56.693 521.148 null] >> endobj 1862 0 obj << /D [1858 0 R /XYZ 56.693 410.606 null] >> endobj 1863 0 obj << /D [1858 0 R /XYZ 56.693 351.544 null] >> endobj 1864 0 obj << /D [1858 0 R /XYZ 56.693 346.653 null] >> endobj 1865 0 obj << /D [1858 0 R /XYZ 56.693 350.14 null] >> endobj 1866 0 obj << /D [1858 0 R /XYZ 56.693 339.181 null] >> endobj 1867 0 obj << /D [1858 0 R /XYZ 56.693 277.119 null] >> endobj 1868 0 obj << /D [1858 0 R /XYZ 56.693 221.533 null] >> endobj 1869 0 obj << /D [1858 0 R /XYZ 56.693 165.946 null] >> endobj 1844 0 obj << /D [1858 0 R /XYZ 56.693 141.671 null] >> endobj 1870 0 obj << /D [1858 0 R /XYZ 56.693 136.781 null] >> endobj 1871 0 obj << /D [1858 0 R /XYZ 56.693 139.67 null] >> endobj 1872 0 obj << /D [1858 0 R /XYZ 56.693 128.711 null] >> endobj 1873 0 obj << /D [1858 0 R /XYZ 56.693 117.752 null] >> endobj 1874 0 obj << /D [1858 0 R /XYZ 56.693 106.793 null] >> endobj 1875 0 obj << /D [1858 0 R /XYZ 56.693 95.834 null] >> endobj 1857 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1902 0 obj << /Length 1875 /Filter /FlateDecode >> stream xZMs6W(u*$mg 쐃'|su; 흃W5q2 kWwRq`7O‡`11&siJ_5Id.^&ցyz'4G\WҌJV64%bD&{&\M\(>ed*caQ.5??lq'n};~ΌQΌ@0l4 mNGLΆ"xnUQ2^pD\3Ô(HDuׂ 3`> &%)su\^$+q;!E,# $#]G^j[}]%~k. Rsgfazqdn,xӜJ%O!).+!/l5œ@`+"JI3QC:Md &pH<C`¸XW,w9 Bb:ܥ(;B3hK DMS6AiN6JP} dC~T$L;\0"g} }@CJ!,6>gE^㹟.MhrA{*RXj:#xA)JɂajBIDRD"JCβ\T6 PL&5c% fp~U* +)&a證 >Zf6x\a+EZPxxn&1V_O(hV]r7Y9T1kQgΌ !qB\Wi?0=w..F8w GC84:6آ8)u\O^.uUl]"OW$+dn+PAPYYK^<̹yPI^,sUyAl39WJ U7M?5褼I<(/*ȼvvH$&!6;t?eMW¿[)*x-$,dZK|(MWl₴…'FCzĶT$')5y^ e]5ys& 5j>.3C`x!VY(-XfUԲYѸgk;xj 1C#3t=@L0j1Ng, .RU3h(sGH7Azv ,zN YԬݵG:ڵ{HO;W(BIKpN KA M 81(G%.9Ai"Ύ\|׋Fh|B&yYT"=S`>f9ƥ& ʡX*R7H_*QEz*JԣMJ)A&NJ( *_9st3ݛ!B8E LA~9)ȁVwdKCYXwerbI ddG;; &3~W))\%¹ˉ;5<l%\a 5UW W~RMHDc"SE/" (2}!UzLL0\ _<aTdW+ WT#:h;c^W-%i( [> endobj 1899 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.102 438.804 287.655 449.708] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 1903 0 obj << /D [1901 0 R /XYZ -11.232 878.039 null] >> endobj 1845 0 obj << /D [1901 0 R /XYZ 56.693 537.997 null] >> endobj 1904 0 obj << /D [1901 0 R /XYZ 56.693 532.02 null] >> endobj 1905 0 obj << /D [1901 0 R /XYZ 56.693 534.909 null] >> endobj 1906 0 obj << /D [1901 0 R /XYZ 56.693 523.95 null] >> endobj 1907 0 obj << /D [1901 0 R /XYZ 56.693 512.991 null] >> endobj 1908 0 obj << /D [1901 0 R /XYZ 56.693 502.032 null] >> endobj 1909 0 obj << /D [1901 0 R /XYZ 56.693 491.073 null] >> endobj 1910 0 obj << /D [1901 0 R /XYZ 56.693 480.114 null] >> endobj 1877 0 obj << /D [1901 0 R /XYZ 56.693 246.24 null] >> endobj 1911 0 obj << /D [1901 0 R /XYZ 56.693 240.263 null] >> endobj 1912 0 obj << /D [1901 0 R /XYZ 56.693 243.152 null] >> endobj 1913 0 obj << /D [1901 0 R /XYZ 56.693 232.193 null] >> endobj 1914 0 obj << /D [1901 0 R /XYZ 56.693 221.234 null] >> endobj 1900 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F108 345 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1918 0 obj << /Length 1341 /Filter /FlateDecode >> stream xYr6++թ`mt:n܌G!YL(*IeJ]/l\:Z"+mV1H*,G¨)C7,}O$e69I]qr.u<6wW {X5690_ѯף# 0xRft;,A$)+8^?F;C+fb+ S\Kmas &a }*sc*jQdIZiO&b"b5gfl2.1݇xBI&E$?G~~6XXH%UQƢԡE:Z,(p\t|X [f`l.U8ܿqJA^'6+\VA"%HfYZ / %AXIe ƁXoM= q7)(6&c%wpy2{S.>kay403nh]L,.=ì"UЀǗ:6:,~>1}Ec|Tn(&Rc2-7Ϲ'C$/Id&[-^:2p8v~3$*w6e@)RsS'JJc ),&R5U 9- *ơ] Ad_Ӽ\KPTmQ&]qkzBK4O!PA O`LʴphݒC) .J  &1 A*Cyd1f2Zl]V FzWl?#B塱}"NA2Y8Ym2&}͝~fi[0cނj`mmc:|R܃k b$E-B } '}M=ybfjq̳JjI =VblHk v԰$32,,{M5Dg)Ce߷t.N>yZ[)+mmbS)MM ˞E7qX\[SR}Њ]@);tP謠f33^s 6ЦkaN:ÎS߯UH|[>]scKZVPZX~Ax?IS 2D9a>:|fBP2Dy.DŽ&)ASJ 6vP!GMUJ۷F!pVh"ɥB~1 VQ,<"`)ؾ9+'n\wo}KfzCۏE)` endstream endobj 1917 0 obj << /Type /Page /Contents 1918 0 R /Resources 1916 0 R /MediaBox [0 0 595.276 841.89] /Parent 1843 0 R /Annots [ 1915 0 R ] >> endobj 1915 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 204.499 98.137 213.345] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 1919 0 obj << /D [1917 0 R /XYZ -16.307 878.039 null] >> endobj 1878 0 obj << /D [1917 0 R /XYZ 56.693 687.83 null] >> endobj 1920 0 obj << /D [1917 0 R /XYZ 56.693 681.852 null] >> endobj 1921 0 obj << /D [1917 0 R /XYZ 56.693 684.741 null] >> endobj 1922 0 obj << /D [1917 0 R /XYZ 56.693 673.782 null] >> endobj 1923 0 obj << /D [1917 0 R /XYZ 56.693 662.823 null] >> endobj 1879 0 obj << /D [1917 0 R /XYZ 56.693 434.734 null] >> endobj 1924 0 obj << /D [1917 0 R /XYZ 56.693 428.756 null] >> endobj 1925 0 obj << /D [1917 0 R /XYZ 56.693 431.645 null] >> endobj 1926 0 obj << /D [1917 0 R /XYZ 56.693 420.686 null] >> endobj 1927 0 obj << /D [1917 0 R /XYZ 56.693 409.727 null] >> endobj 1880 0 obj << /D [1917 0 R /XYZ 56.693 163.705 null] >> endobj 1928 0 obj << /D [1917 0 R /XYZ 56.693 157.727 null] >> endobj 1929 0 obj << /D [1917 0 R /XYZ 56.693 160.617 null] >> endobj 1930 0 obj << /D [1917 0 R /XYZ 56.693 149.658 null] >> endobj 1931 0 obj << /D [1917 0 R /XYZ 56.693 138.699 null] >> endobj 1916 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1934 0 obj << /Length 220 /Filter /FlateDecode >> stream xڝ=o1 WA%$$(C"=Ԋ_O+ɶc= |&zb=x0v 3^Za +ڜ/.ǿj$4Ҧ}|4 _ir:nYƔu wCƁ/!0eSæ%5¶M~d #ҔK |Ow̫Ae^I16u)W\ӟ^x1\}T\ endstream endobj 1933 0 obj << /Type /Page /Contents 1934 0 R /Resources 1932 0 R /MediaBox [0 0 595.276 841.89] /Parent 1843 0 R >> endobj 1935 0 obj << /D [1933 0 R /XYZ -11.232 878.039 null] >> endobj 1932 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1940 0 obj << /Length 1196 /Filter /FlateDecode >> stream xYn"GlPC9 X  7IYsd1 }{!Q惶bB) +ˑpCt=Mo$M.%.䏿x}`2ZcD7B{zzzD0)H3|,Ae+_3~>葽)DZh,bZ7Θֲuc ƱM[oUr,Vӯy^ť. d~ һJpwLeV UGP 3 U9@a)bSrRӭ@`V m@-{*$x?>RP )ŊUI+y\bJ7KX`ugE`NG ޥ$^/ 1ɣHsdw>On-:_Q'⾭*u;/R]rB#pyHXm/cݠa'KiߧYgPӬ?$rO+@6>ICC8P- +cMb//Œ İ5%MwF]m݀1@B^ԯQ/t X [f/l5Rp-#5P>!û=,:O8(ŖE!_ΞC洱˲+7We:(BV r4Lha~n;ݦwav6q8ȃB4d76*e?TPy=;ҬiƄpXkvr5f2[[tu8]\~)Zldnդ5w3!l2NB=x96`IS\VmԼ$SMH?90q5䨚oV ɰ6~RHϋI .Zj~O~ugy _OsSn|wg۫IV*'p X:&P %oj͘XHu5UѬ'tf Bu: C3 ,~<Ӈ!Q8ȮV[^Bz1. W]1qՔG\uSm@* m95@[c[+s!"Fޚ0.8Ͼo endstream endobj 1939 0 obj << /Type /Page /Contents 1940 0 R /Resources 1938 0 R /MediaBox [0 0 595.276 841.89] /Parent 1843 0 R /Annots [ 1936 0 R 1937 0 R ] >> endobj 1936 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 662.406 124.219 673.31] /A << /S /GoTo /D (GParamSpec) >> >> endobj 1937 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 391.378 124.219 402.282] /A << /S /GoTo /D (GParamSpec) >> >> endobj 1941 0 obj << /D [1939 0 R /XYZ -16.307 878.039 null] >> endobj 1881 0 obj << /D [1939 0 R /XYZ 56.693 605.737 null] >> endobj 1942 0 obj << /D [1939 0 R /XYZ 56.693 599.76 null] >> endobj 1943 0 obj << /D [1939 0 R /XYZ 56.693 602.649 null] >> endobj 1944 0 obj << /D [1939 0 R /XYZ 56.693 591.69 null] >> endobj 1945 0 obj << /D [1939 0 R /XYZ 56.693 580.731 null] >> endobj 1882 0 obj << /D [1939 0 R /XYZ 56.693 334.709 null] >> endobj 1946 0 obj << /D [1939 0 R /XYZ 56.693 328.731 null] >> endobj 1947 0 obj << /D [1939 0 R /XYZ 56.693 331.62 null] >> endobj 1948 0 obj << /D [1939 0 R /XYZ 56.693 320.662 null] >> endobj 1949 0 obj << /D [1939 0 R /XYZ 56.693 309.703 null] >> endobj 1883 0 obj << /D [1939 0 R /XYZ 56.693 81.613 null] >> endobj 1938 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1953 0 obj << /Length 1429 /Filter /FlateDecode >> stream xZn8+cf4@:1Dv:RF_?"e[HH幯C9-A샶bB9 +ˑp|gE'S&f2Y܆?u|}<`2Zc,Z"* 5570 LnFW_ w\|@̸@Z:@1f sB$ <僷Mr**kiY2)hJ2C65Ì<^K{DaڸUJL%[G}~4O3S܇ &Y,>J&TNs#h)6[iaFr?f::F.07d %3HA K}Ao- ]J$DKLni쿬ԙ f[)U~ی.7^rDH˸Xg>zWhcۮ:/u_0UMiHI/GMZO=R29#❺]Y Ύ) -餏@ y"۽AKR^HB@1[`c{0K2KBq`c *nGw=e0  dPDzÉ]=y@\Wyrm#*vzJW543xvNοG R|7U}ToumأUWя 媦\&6Î"8]붳OqɄܡx+)CI'0ZW7f(V_&Xm]XnlwN-ntCM"u:mH`c{aWK2yꍺlo$G83Py0>޵P@'<,4`c[)@\3Lź}f;4}:>Y?uP%6qo1:,0m rl{M4yF)-&JJ'$7%oLIicHKy=y|ɭHn fRCrS=kJn8~ۙwQڽwJ_9"ͯr?kͯu2ӝ@`xkpy -iD9 Xm9ǀ@8lyޯ>> endobj 1954 0 obj << /D [1952 0 R /XYZ -11.232 878.039 null] >> endobj 1955 0 obj << /D [1952 0 R /XYZ 56.693 761.903 null] >> endobj 1956 0 obj << /D [1952 0 R /XYZ 56.693 755.228 null] >> endobj 1957 0 obj << /D [1952 0 R /XYZ 56.693 744.269 null] >> endobj 1958 0 obj << /D [1952 0 R /XYZ 56.693 733.31 null] >> endobj 1884 0 obj << /D [1952 0 R /XYZ 56.693 529.131 null] >> endobj 1959 0 obj << /D [1952 0 R /XYZ 56.693 523.153 null] >> endobj 1960 0 obj << /D [1952 0 R /XYZ 56.693 526.042 null] >> endobj 1961 0 obj << /D [1952 0 R /XYZ 56.693 515.083 null] >> endobj 1962 0 obj << /D [1952 0 R /XYZ 56.693 504.124 null] >> endobj 1885 0 obj << /D [1952 0 R /XYZ 56.693 287.99 null] >> endobj 1963 0 obj << /D [1952 0 R /XYZ 56.693 282.012 null] >> endobj 1964 0 obj << /D [1952 0 R /XYZ 56.693 284.901 null] >> endobj 1965 0 obj << /D [1952 0 R /XYZ 56.693 273.943 null] >> endobj 1966 0 obj << /D [1952 0 R /XYZ 56.693 262.984 null] >> endobj 1967 0 obj << /D [1952 0 R /XYZ 56.693 252.025 null] >> endobj 1951 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1974 0 obj << /Length 1650 /Filter /FlateDecode >> stream xZKsH+tTQ{s*qUR뵽'o%cA؀D߾=$!{b_?v2AFR=!4Sxbɔ ?"[gZA!)GRJ,' :S>Xm?r+}euM{Awi(.-z7|Dډ& D* AL(x#)W(՞a!4^ q$tʠaaHsֲ{3YsۏYv``mQ<]02cd]D@ƊP$Xʀ LNU'!TI {!-c"5@d Gb DHhn< nVrqLpE88iMTx>s"I3Oj0}>JΉXٚyEf>S9gmw_Y;>&֎3P?:๕WIT/n{̌@jƹpc;`K@z4`&?l aftr!!X6 LOGM|Dm=P^rвxnў(S.Kb  6pJ-tӛj H s@LcԤ@ ؼk}llӄ1 C{&\e+}&NTIqǁO&WWUfK0lbF>22ŎyG&Fz+B>w:wu#aXm4+TDO,Ǐcg S0]Ƕ*M2ϋ8åF"0tht-B:G T|Z BNpW)Xȕ-pKLlx4  LK!.s}PV͡B97nF-!$iBAH;BBHLhjE<`![QĖ?[=~;Tx> endobj 1950 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 728.623 83.303 737.47] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1969 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 473.47 83.303 484.374] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 1970 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [290.539 263.417 330.159 275.935] /A << /S /GoTo /D (GObjects) >> >> endobj 1971 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [263.151 239.507 320.884 252.025] /A << /S /GoTo /D (GParamSpecs) >> >> endobj 1975 0 obj << /D [1973 0 R /XYZ -16.307 878.039 null] >> endobj 1886 0 obj << /D [1973 0 R /XYZ 56.693 687.83 null] >> endobj 1976 0 obj << /D [1973 0 R /XYZ 56.693 681.852 null] >> endobj 1977 0 obj << /D [1973 0 R /XYZ 56.693 684.741 null] >> endobj 1978 0 obj << /D [1973 0 R /XYZ 56.693 673.782 null] >> endobj 1979 0 obj << /D [1973 0 R /XYZ 56.693 662.823 null] >> endobj 1887 0 obj << /D [1973 0 R /XYZ 56.693 434.734 null] >> endobj 1980 0 obj << /D [1973 0 R /XYZ 56.693 428.756 null] >> endobj 1981 0 obj << /D [1973 0 R /XYZ 56.693 431.645 null] >> endobj 1982 0 obj << /D [1973 0 R /XYZ 56.693 420.686 null] >> endobj 1983 0 obj << /D [1973 0 R /XYZ 56.693 409.727 null] >> endobj 1984 0 obj << /D [1973 0 R /XYZ 56.693 398.769 null] >> endobj 1985 0 obj << /D [1973 0 R /XYZ 56.693 387.81 null] >> endobj 1986 0 obj << /D [1973 0 R /XYZ 56.693 376.851 null] >> endobj 1888 0 obj << /D [1973 0 R /XYZ 56.693 81.588 null] >> endobj 1972 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1991 0 obj << /Length 1305 /Filter /FlateDecode >> stream xZo8~#3}J'u]!DIB_$PRpS8x/&LUsoа1ӆ/Z`W#v=_==ecZtϳ")n.qH7j8z N"M#ZA 8q4H0xMn:?ѳLp'y4}:\bYr+W8tk0A1yHU8XOPC_zB n1)q/0YK)NGywWSt\ *~cKNJr.ɒ`HWp>JOa8[%ˊu!($Лt̪za] t}[OfN&%:~{m^%?Pw`V/;[@~IZ,^/ݽaA10VVȅe}~M&,ÅŴms͓M:U쑊ͱTWFPð]oddp[l6 i0˴ܘH;Gm{TTÏ6"!?4ڣ~cmNEש5'!U!MS^PSS *loi9d{@Yv:R}RbxH{v2d> -P4B$"*,=RpU ?ۜJ&9hc bDrۜ򣉊!lEz?ԴDZ2i6hC` hLVt>i6v:%1JCj4$1%~3bX>Xަ٨U>]-MxsZaBbYONDC˽R=D\¥2ߒ;ER\$ÛۺXк{2QZpGV\8Qt=HXӔ 7/ņ@⨩6Ae\kUWmΆ qkߚ_qn69zk! NɃůD/4=$b/x)lrNC]?Tg(E /N/ԿlT endstream endobj 1990 0 obj << /Type /Page /Contents 1991 0 R /Resources 1989 0 R /MediaBox [0 0 595.276 841.89] /Parent 1968 0 R >> endobj 1992 0 obj << /D [1990 0 R /XYZ -11.232 878.039 null] >> endobj 1993 0 obj << /D [1990 0 R /XYZ 56.693 761.903 null] >> endobj 1994 0 obj << /D [1990 0 R /XYZ 56.693 755.228 null] >> endobj 1995 0 obj << /D [1990 0 R /XYZ 56.693 744.269 null] >> endobj 1889 0 obj << /D [1990 0 R /XYZ 56.693 606.036 null] >> endobj 1996 0 obj << /D [1990 0 R /XYZ 56.693 600.059 null] >> endobj 1997 0 obj << /D [1990 0 R /XYZ 56.693 602.948 null] >> endobj 1998 0 obj << /D [1990 0 R /XYZ 56.693 591.989 null] >> endobj 1890 0 obj << /D [1990 0 R /XYZ 56.693 453.756 null] >> endobj 1999 0 obj << /D [1990 0 R /XYZ 56.693 447.779 null] >> endobj 2000 0 obj << /D [1990 0 R /XYZ 56.693 450.668 null] >> endobj 2001 0 obj << /D [1990 0 R /XYZ 56.693 439.709 null] >> endobj 2002 0 obj << /D [1990 0 R /XYZ 56.693 428.75 null] >> endobj 1891 0 obj << /D [1990 0 R /XYZ 56.693 266.607 null] >> endobj 2003 0 obj << /D [1990 0 R /XYZ 56.693 260.63 null] >> endobj 2004 0 obj << /D [1990 0 R /XYZ 56.693 263.519 null] >> endobj 2005 0 obj << /D [1990 0 R /XYZ 56.693 252.56 null] >> endobj 1892 0 obj << /D [1990 0 R /XYZ 56.693 116.746 null] >> endobj 2006 0 obj << /D [1990 0 R /XYZ 56.693 111.575 null] >> endobj 2007 0 obj << /D [1990 0 R /XYZ 56.693 114.465 null] >> endobj 2008 0 obj << /D [1990 0 R /XYZ 56.693 103.506 null] >> endobj 2009 0 obj << /D [1990 0 R /XYZ 56.693 92.547 null] >> endobj 1989 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2012 0 obj << /Length 1411 /Filter /FlateDecode >> stream x͙Ms68J 7Tg2k҃#QZRIʎso(eZjOhp&h\:W b H* GUS4, Le7O"S4(xz_/05+g0inQS@w: :w( "=aDF`a|D̸!~uioz2ǚEdֲ}ΰ vAI;-=/_ydM[ f`2A>lc%a!\db#\?ege q ԧX|~OB$G ^4+٫n=grB,][~n[&̭6RGD.ك'$]D=!,0 yedcԣ럌[|7A}Nq77=4Q%X^)-R̥4`2X)cR`iLA&$*džz.{8L$Anbg|(Ta )YW}A2F 0> r)bUWt##6Tk n`Ѳ'@Jo4E6 &6y!l|lc9O 7iCGD8vD MF'a#g }4ui5z{2PR'ٰ989mel}HP"Szt_QDMgn -}Hd9{Yp_'= %Yc)[Ir'OS{gkҦ %^h#_GZ4=:`b֨[yWH^)-ӕ$Zp0#$JעgJz W/7E;8~p:k!r(%B)I1[*l3t5~QsYH]ha'bͭ4Һ)anqJħv) r?l\Pcu8Q(/9eS@'qe]\35^IS0Bk…L=N ??Ƴ"őhǾS;V戶ts[Iz:f]>ޜvtvv'4_e{Ɓq%0 d9Ǔ:8-qf7;ȁy/m 1 f^7gbí0c `I\.~y:LfTdZDZ}BCb;I—]/óYh(L.PawFqTxSK N5RbNu~;[;kj^uX۰Fxk \g1e)ϏNWOìDwe;";vc/-^1 endstream endobj 2011 0 obj << /Type /Page /Contents 2012 0 R /Resources 2010 0 R /MediaBox [0 0 595.276 841.89] /Parent 1968 0 R >> endobj 2013 0 obj << /D [2011 0 R /XYZ -16.307 878.039 null] >> endobj 2014 0 obj << /D [2011 0 R /XYZ 56.693 762.899 null] >> endobj 2015 0 obj << /D [2011 0 R /XYZ 56.693 574.877 null] >> endobj 1898 0 obj << /D [2011 0 R /XYZ 56.693 549.723 null] >> endobj 2016 0 obj << /D [2011 0 R /XYZ 56.693 543.953 null] >> endobj 2017 0 obj << /D [2011 0 R /XYZ 56.693 546.842 null] >> endobj 2018 0 obj << /D [2011 0 R /XYZ 56.693 464.916 null] >> endobj 1893 0 obj << /D [2011 0 R /XYZ 56.693 439.762 null] >> endobj 2019 0 obj << /D [2011 0 R /XYZ 56.693 433.992 null] >> endobj 2020 0 obj << /D [2011 0 R /XYZ 56.693 436.881 null] >> endobj 1894 0 obj << /D [2011 0 R /XYZ 56.693 339.82 null] >> endobj 2021 0 obj << /D [2011 0 R /XYZ 56.693 334.05 null] >> endobj 2022 0 obj << /D [2011 0 R /XYZ 56.693 336.939 null] >> endobj 1895 0 obj << /D [2011 0 R /XYZ 56.693 239.878 null] >> endobj 2023 0 obj << /D [2011 0 R /XYZ 56.693 234.108 null] >> endobj 2024 0 obj << /D [2011 0 R /XYZ 56.693 236.997 null] >> endobj 1896 0 obj << /D [2011 0 R /XYZ 56.693 139.937 null] >> endobj 2025 0 obj << /D [2011 0 R /XYZ 56.693 134.166 null] >> endobj 2026 0 obj << /D [2011 0 R /XYZ 56.693 137.056 null] >> endobj 2010 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2107 0 obj << /Length 2023 /Filter /FlateDecode >> stream xڵMoF<M=$@K&]J;KRMR# 9|g}~hrj¸n"v"2EWٛϟe{>犞)o"$E-.NϿ^{}aid!>4XaUDa}c^ ffhpRE˻4Zo"JjͻH1J9>~0;'k)WI1D sͳ5,e]VX"ۯ|_sz'dGUn8ue'SA (YeWLdĉ.*&HOw%QVwPf~mlfXX!/$=&mT^&E#|rzͯuz s5t`0 9#JZūSF`Hg|*UP9<+Y}\wuI musReO!oCu4^o9 kIW~]/,6emmb[h rKr7w& 3Zp.Y\InD4aLW0eoo7k%\}&Y J~Ӭ_dłUv%d}yAner#:`)!`FtUKIkY&RR{qqQ*TӹA_(E u].a]\IZ,twפ/TQcO?Ľnnʿ|8JB(yAd- Jɉ@$ 4 ͨE8{XHLqHYMPf(?j8:H:At@;.PG.*I2Y?r|?9_ PF,wc@@JU(x":bgm\\jBMK^fu_}u%H =a1vd,+# b*Vf iEV>1x$vY5M#i-d ƶ~Nt?)n`8RAԝ|2REՠÙDiQ&}9lAbd uH5=G.Bk @qGeQ0T$XA!RCurSq >KQARXsA "! t>ZD|u<7IWT! 9p. -2RKd/㫟B"i@p{'Rn*kJ;ya!APҎp^C(1BQMMuU SF, e  (k 8Rh@":ni Hq6?%W/#/ @P=&E5PT:9Ȁ$3Bx@"9)>z&qU}p Q#jSד'vςj;M3cp@^1:-M|g'O2A0XG3,$O!-4 < @wSz?ĈfzTY땏.3?¨8/V}w2yqcoN C| ӡ*掽fH|u I r*1YKL0'S()Muy;`$ z5_aΥRo LqNVAmT-ꅙH&;'&@C޸ʑ endstream endobj 2106 0 obj << /Type /Page /Contents 2107 0 R /Resources 2105 0 R /MediaBox [0 0 595.276 841.89] /Parent 1968 0 R /Annots [ 2027 0 R 2028 0 R 2029 0 R 2030 0 R 2031 0 R 2032 0 R 2033 0 R 2034 0 R 2035 0 R 2036 0 R 2037 0 R 2038 0 R 2039 0 R 2040 0 R 2041 0 R 2042 0 R 2043 0 R 2044 0 R 2045 0 R 2046 0 R 2047 0 R 2048 0 R 2049 0 R 2050 0 R 2051 0 R 2052 0 R 2053 0 R 2054 0 R 2055 0 R 2056 0 R 2057 0 R 2058 0 R 2059 0 R 2060 0 R 2061 0 R 2062 0 R 2063 0 R 2064 0 R 2065 0 R 2066 0 R 2067 0 R 2068 0 R 2069 0 R 2070 0 R 2071 0 R 2072 0 R 2073 0 R 2074 0 R 2075 0 R 2076 0 R 2077 0 R 2078 0 R 2079 0 R 2080 0 R 2081 0 R 2082 0 R 2083 0 R 2084 0 R 2085 0 R 2086 0 R 2087 0 R 2088 0 R 2089 0 R 2090 0 R 2091 0 R 2092 0 R 2093 0 R 2094 0 R 2095 0 R ] >> endobj 2027 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.521 611.698 273.787 622.602] /A << /S /GoTo /D (BtMachine) >> >> endobj 2028 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 545.465 86.76 559.413] /A << /S /GoTo /D (void) >> >> endobj 2029 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 545.465 337.861 559.413] /A << /S /GoTo /D (bt-pattern-blend-columns) >> >> endobj 2030 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 533.41 86.76 547.358] /A << /S /GoTo /D (void) >> >> endobj 2031 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 533.41 335.081 547.358] /A << /S /GoTo /D (bt-pattern-clear-columns) >> >> endobj 2032 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 521.355 106.735 535.303] /A << /S /GoTo /D (BtPattern) >> >> endobj 2033 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 521.355 296.247 535.303] /A << /S /GoTo /D (bt-pattern-copy) >> >> endobj 2034 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 509.301 86.76 523.248] /A << /S /GoTo /D (void) >> >> endobj 2035 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 509.301 320.994 523.248] /A << /S /GoTo /D (bt-pattern-delete-row) >> >> endobj 2036 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 497.246 86.76 511.193] /A << /S /GoTo /D (void) >> >> endobj 2037 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 497.246 329.014 511.193] /A << /S /GoTo /D (bt-pattern-flip-columns) >> >> endobj 2038 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 485.191 91.373 499.139] /A << /S /GoTo /D (gchar) >> >> endobj 2039 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 485.191 345.203 499.139] /A << /S /GoTo /D (bt-pattern-get-global-event) >> >> endobj 2040 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 473.136 99.124 487.084] /A << /S /GoTo /D (GValue) >> >> endobj 2041 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 473.136 366.782 487.084] /A << /S /GoTo /D (bt-pattern-get-global-event-data) >> >> endobj 2042 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 461.081 126.799 475.029] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2043 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 461.081 347.265 475.029] /A << /S /GoTo /D (bt-pattern-get-global-group) >> >> endobj 2044 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 449.026 126.799 462.974] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2045 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 449.026 405.357 462.974] /A << /S /GoTo /D (bt-pattern-get-group-by-parameter-group) >> >> endobj 2046 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 436.972 91.373 450.919] /A << /S /GoTo /D (gchar) >> >> endobj 2047 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 436.972 341.676 450.919] /A << /S /GoTo /D (bt-pattern-get-voice-event) >> >> endobj 2048 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 424.917 99.124 438.864] /A << /S /GoTo /D (GValue) >> >> endobj 2049 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 424.917 363.255 438.864] /A << /S /GoTo /D (bt-pattern-get-voice-event-data) >> >> endobj 2050 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 412.862 126.799 426.81] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2051 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 412.862 343.739 426.81] /A << /S /GoTo /D (bt-pattern-get-voice-group) >> >> endobj 2052 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 400.807 91.373 414.755] /A << /S /GoTo /D (gchar) >> >> endobj 2053 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 400.807 338 414.755] /A << /S /GoTo /D (bt-pattern-get-wire-event) >> >> endobj 2054 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 388.752 99.124 402.7] /A << /S /GoTo /D (GValue) >> >> endobj 2055 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 388.752 359.579 402.7] /A << /S /GoTo /D (bt-pattern-get-wire-event-data) >> >> endobj 2056 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 376.697 126.799 390.645] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2057 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 376.697 340.062 390.645] /A << /S /GoTo /D (bt-pattern-get-wire-group) >> >> endobj 2058 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 364.643 86.76 378.59] /A << /S /GoTo /D (void) >> >> endobj 2059 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 364.643 319.34 378.59] /A << /S /GoTo /D (bt-pattern-insert-row) >> >> endobj 2060 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 352.588 106.735 366.536] /A << /S /GoTo /D (BtPattern) >> >> endobj 2061 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 352.588 293.328 366.536] /A << /S /GoTo /D (bt-pattern-new) >> >> endobj 2062 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 340.533 86.76 354.481] /A << /S /GoTo /D (void) >> >> endobj 2063 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 340.533 357.776 354.481] /A << /S /GoTo /D (bt-pattern-randomize-columns) >> >> endobj 2064 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 328.478 86.76 342.426] /A << /S /GoTo /D (void) >> >> endobj 2065 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 328.478 384.884 342.426] /A << /S /GoTo /D (bt-pattern-range-randomize-columns) >> >> endobj 2066 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 316.423 86.76 330.371] /A << /S /GoTo /D (void) >> >> endobj 2067 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 316.423 410.647 330.371] /A << /S /GoTo /D (bt-pattern-transpose-coarse-down-columns) >> >> endobj 2068 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 304.368 86.76 318.316] /A << /S /GoTo /D (void) >> >> endobj 2069 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 304.368 398.722 318.316] /A << /S /GoTo /D (bt-pattern-transpose-coarse-up-columns) >> >> endobj 2070 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 292.314 86.76 306.261] /A << /S /GoTo /D (void) >> >> endobj 2071 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 292.314 400.146 306.261] /A << /S /GoTo /D (bt-pattern-transpose-fine-down-columns) >> >> endobj 2072 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 280.259 86.76 294.207] /A << /S /GoTo /D (void) >> >> endobj 2073 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 280.259 388.221 294.207] /A << /S /GoTo /D (bt-pattern-transpose-fine-up-columns) >> >> endobj 2074 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 268.204 86.76 282.152] /A << /S /GoTo /D (void) >> >> endobj 2075 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 268.204 348.919 282.152] /A << /S /GoTo /D (bt-pattern-serialize-columns) >> >> endobj 2076 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 256.149 105.769 270.097] /A << /S /GoTo /D (gboolean) >> >> endobj 2077 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 256.149 344.097 270.097] /A << /S /GoTo /D (bt-pattern-set-global-event) >> >> endobj 2078 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 244.094 105.769 258.042] /A << /S /GoTo /D (gboolean) >> >> endobj 2079 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 244.094 340.57 258.042] /A << /S /GoTo /D (bt-pattern-set-voice-event) >> >> endobj 2080 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 232.04 105.769 245.987] /A << /S /GoTo /D (gboolean) >> >> endobj 2081 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 232.04 336.894 245.987] /A << /S /GoTo /D (bt-pattern-set-wire-event) >> >> endobj 2082 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 219.985 105.769 233.932] /A << /S /GoTo /D (gboolean) >> >> endobj 2083 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 219.985 346.867 233.932] /A << /S /GoTo /D (bt-pattern-test-global-event) >> >> endobj 2084 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 207.93 105.769 221.878] /A << /S /GoTo /D (gboolean) >> >> endobj 2085 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 207.93 310.742 221.878] /A << /S /GoTo /D (bt-pattern-test-tick) >> >> endobj 2086 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 195.875 105.769 209.823] /A << /S /GoTo /D (gboolean) >> >> endobj 2087 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 195.875 343.34 209.823] /A << /S /GoTo /D (bt-pattern-test-voice-event) >> >> endobj 2088 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 183.82 105.769 197.768] /A << /S /GoTo /D (gboolean) >> >> endobj 2089 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 183.82 339.664 197.768] /A << /S /GoTo /D (bt-pattern-test-wire-event) >> >> endobj 2090 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 121.497 101.156 135.445] /A << /S /GoTo /D (BtPattern) >> >> endobj 2091 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 121.497 274.608 135.445] /A << /S /GoTo /D (BtPattern--copy-source) >> >> endobj 2092 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 109.442 91.343 123.39] /A << /S /GoTo /D (gulong) >> >> endobj 2093 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 109.442 250.927 123.39] /A << /S /GoTo /D (BtPattern--length) >> >> endobj 2094 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 97.387 91.343 111.335] /A << /S /GoTo /D (gulong) >> >> endobj 2095 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 97.387 251.276 111.335] /A << /S /GoTo /D (BtPattern--voices) >> >> endobj 2108 0 obj << /D [2106 0 R /XYZ -11.232 878.039 null] >> endobj 1897 0 obj << /D [2106 0 R /XYZ 56.693 741.921 null] >> endobj 2109 0 obj << /D [2106 0 R /XYZ 56.693 735.943 null] >> endobj 2110 0 obj << /D [2106 0 R /XYZ 56.693 738.833 null] >> endobj 68 0 obj << /D [2106 0 R /XYZ 56.693 665.577 null] >> endobj 1104 0 obj << /D [2106 0 R /XYZ 56.693 628.58 null] >> endobj 2111 0 obj << /D [2106 0 R /XYZ 56.693 570.372 null] >> endobj 2112 0 obj << /D [2106 0 R /XYZ 56.693 146.404 null] >> endobj 2105 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2157 0 obj << /Length 1833 /Filter /FlateDecode >> stream xڵY]8}ϯ@JVm0uRij6ۗ$lHl;{dy  ZYz>.~0r|n}S=}l=qbc1|G>ZA\(7gMm ÍwP<΢n-x&vw)vc)Н"̘Yɾ=Q(ڨUm7p+q2fD}&˘ ҲM"˾,3Da8 #.E6sj~vc@l"AXt1 -9G` b*;YP!4jArbY-e' (A  7O8Hw=5me)xAǴJPMS7L]go7б-Hl(t|lBb ,(mXEJP;t/Nk{x6 Q q١ȃ\*2<^˻[|&aeOGe3#.p Suo\乤@{(>{:Ur M, Vr-9~TH>=.x  M|mPc 8G)cuŻl2~,#8`8h`>a#ba$<8sa5# pylb&]m h)9Up*&p.ߊRՈMg.2bz۶3: e юŻ[n?P(~ x?h)06e; 8!UrYZQZhﲥⱘPY:M zgun5d&1s,tuK6Gm] 8,'(OÄKrP>ƥw!/򙫽k<Ú{ϫW{ku WUT<ݴr}SMoPvQ"Pm7d*֑qcD"RD E"]kIpCLf[ͅ2 T_d @Vi@UZ88*(}+ (L0'_=Uj%$a#"KWGDmʨX]wo{eXdPu⛹,Z܄YMRS$K(qWy+ 爓+apcrI!XS(_JwJG'?U lv]Z[eJ+7N]IS)OhԻ;y N _P]懃sٍ{s>UjGlW⻈y`@Y'ƙɲ' FH`cO2ܳ'ϗ>d4~|4o5KCWZafJYS[/n!9gUWHzघRiz0i V:˭dSSKu[}f`v]W2u4%)xo_0|I?E endstream endobj 2156 0 obj << /Type /Page /Contents 2157 0 R /Resources 2155 0 R /MediaBox [0 0 595.276 841.89] /Parent 1968 0 R /Annots [ 2096 0 R 2097 0 R 2098 0 R 2099 0 R 2100 0 R 2101 0 R 2102 0 R 2103 0 R 2104 0 R 2147 0 R 2148 0 R 2149 0 R 2150 0 R 2151 0 R 2152 0 R 2153 0 R 2154 0 R ] >> endobj 2096 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 716.417 81.181 730.364] /A << /S /GoTo /D (void) >> >> endobj 2097 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 716.417 285.777 730.364] /A << /S /GoTo /D (BtPattern-group-changed) >> >> endobj 2098 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 716.417 579.053 730.364] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2099 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 704.362 81.181 718.309] /A << /S /GoTo /D (void) >> >> endobj 2100 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 704.362 287.43 718.309] /A << /S /GoTo /D (BtPattern-param-changed) >> >> endobj 2101 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 704.362 579.053 718.309] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2102 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 692.307 81.181 706.255] /A << /S /GoTo /D (void) >> >> endobj 2103 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 692.307 290.2 706.255] /A << /S /GoTo /D (BtPattern-pattern-changed) >> >> endobj 2104 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 692.307 579.053 706.255] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2147 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 629.984 269.089 643.931] /A << /S /GoTo /D (BtPattern-struct) >> >> endobj 2148 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [144.662 488.282 200.89 499.186] /A << /S /GoTo /D (BtPersistence) >> >> endobj 2149 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [328.342 372.957 374.608 383.861] /A << /S /GoTo /D (BtMachine) >> >> endobj 2150 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [506.148 372.957 541.894 383.861] /A << /S /GoTo /D (GValues) >> >> endobj 2151 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [100.249 361.002 128.802 371.906] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2152 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 331.347 84.249 342.251] /A << /S /GoTo /D (BtSongInfo--bpm) >> >> endobj 2153 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [101.624 331.347 125.196 342.251] /A << /S /GoTo /D (BtSongInfo--tpb) >> >> endobj 2154 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.024 272.037 217.608 282.94] /A << /S /GoTo /D (BtSequence) >> >> endobj 2158 0 obj << /D [2156 0 R /XYZ -16.307 878.039 null] >> endobj 2159 0 obj << /D [2156 0 R /XYZ 56.693 741.323 null] >> endobj 2160 0 obj << /D [2156 0 R /XYZ 56.693 654.89 null] >> endobj 2161 0 obj << /D [2156 0 R /XYZ 56.693 593.265 null] >> endobj 2162 0 obj << /D [2156 0 R /XYZ 56.693 587.52 null] >> endobj 2163 0 obj << /D [2156 0 R /XYZ 56.693 591.007 null] >> endobj 2164 0 obj << /D [2156 0 R /XYZ 56.693 580.049 null] >> endobj 2165 0 obj << /D [2156 0 R /XYZ 56.693 569.09 null] >> endobj 2166 0 obj << /D [2156 0 R /XYZ 56.693 504.951 null] >> endobj 2167 0 obj << /D [2156 0 R /XYZ 56.693 447.289 null] >> endobj 2168 0 obj << /D [2156 0 R /XYZ 56.693 389.626 null] >> endobj 2169 0 obj << /D [2156 0 R /XYZ 56.693 231.043 null] >> endobj 2113 0 obj << /D [2156 0 R /XYZ 56.693 205.914 null] >> endobj 2170 0 obj << /D [2156 0 R /XYZ 56.693 200.169 null] >> endobj 2171 0 obj << /D [2156 0 R /XYZ 56.693 203.058 null] >> endobj 2172 0 obj << /D [2156 0 R /XYZ 56.693 192.099 null] >> endobj 2173 0 obj << /D [2156 0 R /XYZ 56.693 181.14 null] >> endobj 2174 0 obj << /D [2156 0 R /XYZ 56.693 170.181 null] >> endobj 2155 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2187 0 obj << /Length 1489 /Filter /FlateDecode >> stream xZKsF+0#ɺjkxr)X*bHփǀK [_t="zpy;x-*IH[jnrkGGc&_ey\q(]FCXhfxQ];o (,"xMw=go\|B̸ 0m@>2H%DT,dڵ͘\q^3MJokqe1*8Opl:ƒ 5/!n KpL@`VfS+C@mz5\`BbC1#AM$pV(K'|Tżgin ;cJ!Y#u7@'~MOO8}~B ?U@k;AWaﶯJPKP(V^\ݘS2+U5NkSlV=ײɈaG$KO*IVuVXCTL:[} 3*gQi76 @L&IXc)l=%\>7;B!L3S6lA@faGl']?ۉ%sYdVT[oG&Y(1.5^v4X*[6@_V`^p}`Ac9WZUg+.5Rk}p0f$Kgk*cg/|M3 j>CA ֧![ЁTrűPFLd/ʳj֤NX155&8Iԩl [_$a/؏u15k ×+1T%9$јdemL+,z%O2=t=܅L X%iB@4 30SjÇZa<S $VP{! @'~zĈ jz)I\A9۾Q_V ]}tQ,.eFYhY7ΥZUg'.`[e;.nXBV磿ߓ@>#ٴ|)j%"C\}ͅTٜ~Q~T])ֿDʲ>>»lJh66arS!:S4O<ey݆Ո }&򼉋enbcj?D#ݻv5P<;"nfU?&Rc]QN./eo>a*1N rw9g Xyב;~MaRÏ>ڦTb[=lxEUl179&??צD`;T gNv6`@[u̔> endobj 2182 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 673.136 98.137 681.982] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2183 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 419.247 98.137 428.094] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 2184 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 202.063 163.681 210.909] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2188 0 obj << /D [2186 0 R /XYZ -11.232 878.039 null] >> endobj 2114 0 obj << /D [2186 0 R /XYZ 56.693 632.342 null] >> endobj 2189 0 obj << /D [2186 0 R /XYZ 56.693 626.365 null] >> endobj 2190 0 obj << /D [2186 0 R /XYZ 56.693 629.254 null] >> endobj 2191 0 obj << /D [2186 0 R /XYZ 56.693 618.295 null] >> endobj 2192 0 obj << /D [2186 0 R /XYZ 56.693 607.336 null] >> endobj 2193 0 obj << /D [2186 0 R /XYZ 56.693 596.377 null] >> endobj 2115 0 obj << /D [2186 0 R /XYZ 56.693 378.454 null] >> endobj 2194 0 obj << /D [2186 0 R /XYZ 56.693 372.476 null] >> endobj 2195 0 obj << /D [2186 0 R /XYZ 56.693 375.365 null] >> endobj 2196 0 obj << /D [2186 0 R /XYZ 56.693 364.406 null] >> endobj 2116 0 obj << /D [2186 0 R /XYZ 56.693 143.969 null] >> endobj 2197 0 obj << /D [2186 0 R /XYZ 56.693 138.252 null] >> endobj 2198 0 obj << /D [2186 0 R /XYZ 56.693 141.142 null] >> endobj 2199 0 obj << /D [2186 0 R /XYZ 56.693 130.183 null] >> endobj 2200 0 obj << /D [2186 0 R /XYZ 56.693 119.224 null] >> endobj 2185 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2208 0 obj << /Length 1584 /Filter /FlateDecode >> stream xZ˒FZB*HvLI9I6Ҁ`i"'"ߞR b8 :}saV #H)WEq|5M'S*&'A>XI_h燓ojirf&J}fA#H(<)f3Fh%2 aWI)Sdx c?7A$"g0f<wh',0#9 ~^j{sO28v{A${m$𖥢ۜRĕ(&ȁ=%_lX]f(cId@\rnetJ¤9_"́%?0-js<#YZaVʹ*g㾯@8ڦU!9}B )BcBn$0] Ay|5UUjpʕ$Ő7]Gĥ~ m0j7< jyUhJ=L $!qzMR@ͻ/*~ eoƝrft|GUPhZଔ8)ƔsYi[IEž{n .b9UDsyE502@"1} LB(Ɔ. ' LkJmn+xH$LCNR ר̂h35{ۡ E#;t@ I%G\~iu!^n"!ҤgYd OlƏ~8 v%ҳ\/Sypq=@MvVVև 9cT?I[73ZirB^~p=r/Y"U*sP1=1ۻc!z?PZ`칪Ɏs%53&8\ s=*s%boaQx{$z-ד'kXzvI]?tgs0_˜a&YGtn/OAT8(hs6Me6֗mIf&{ m&al( c䤱P YHh/BF|6{vgt ֽjsZXϬ^S~_Cߥ4`߂brZ Az؜[p6hy #gޖ9wxMO-GVX܂aH]| {+8(GaU,qm9IC v3T[n3"Wk:vw]s}đQ܍l:90%"T endstream endobj 2207 0 obj << /Type /Page /Contents 2208 0 R /Resources 2206 0 R /MediaBox [0 0 595.276 841.89] /Parent 2201 0 R /Annots [ 2203 0 R 2204 0 R 2205 0 R ] >> endobj 2203 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 680.603 98.137 689.45] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2204 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 426.715 98.137 435.561] /A << /S /GoTo /D (api-index-0.5) >> >> endobj 2205 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.588 136.692 246.141 147.596] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2209 0 obj << /D [2207 0 R /XYZ -16.307 878.039 null] >> endobj 2117 0 obj << /D [2207 0 R /XYZ 56.693 639.81 null] >> endobj 2210 0 obj << /D [2207 0 R /XYZ 56.693 633.832 null] >> endobj 2211 0 obj << /D [2207 0 R /XYZ 56.693 636.721 null] >> endobj 2212 0 obj << /D [2207 0 R /XYZ 56.693 625.762 null] >> endobj 2213 0 obj << /D [2207 0 R /XYZ 56.693 614.803 null] >> endobj 2214 0 obj << /D [2207 0 R /XYZ 56.693 603.845 null] >> endobj 2118 0 obj << /D [2207 0 R /XYZ 56.693 385.921 null] >> endobj 2215 0 obj << /D [2207 0 R /XYZ 56.693 379.944 null] >> endobj 2216 0 obj << /D [2207 0 R /XYZ 56.693 382.833 null] >> endobj 2217 0 obj << /D [2207 0 R /XYZ 56.693 371.874 null] >> endobj 2218 0 obj << /D [2207 0 R /XYZ 56.693 360.915 null] >> endobj 2219 0 obj << /D [2207 0 R /XYZ 56.693 349.956 null] >> endobj 2119 0 obj << /D [2207 0 R /XYZ 56.693 97.956 null] >> endobj 2220 0 obj << /D [2207 0 R /XYZ 56.693 91.978 null] >> endobj 2221 0 obj << /D [2207 0 R /XYZ 56.693 94.868 null] >> endobj 2206 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2230 0 obj << /Length 1638 /Filter /FlateDecode >> stream xZ[sF~Wo6{L6$vɋad, BM{V$xE~{\=Yke2B"iX < nb{G GT!yNߢt͇_޾|qV2 ˕BQشDT+t]3xu5{@`F +E0Y {`čʙ@(0 ?FFء}\n#30H j{6Mt/A|/yXj@0nXZo_dM1",.Ƴyv8-ƷQvGO,o$vO@d鲨-]]AAB'6)Pf/q{Qqow1:~O-w2$ 59T8sbg ݫY2":$"ST=7ED ڪ4pnѕU{{H[[{f#p|yEEi(]N+*fiIJ\|}gg"W)(5&Da J!r B|~O`f:/iM=\`lo}oa[zpBM4bh:1z !(m)nOVMZ&2[QDh9*ɪ{.E <ٶSq>)sxf~׀S$ܗ`ĺڙ-Nmw/;`l^ڻbSfCӧ_j#%ߟCdm^??3g Spa endstream endobj 2229 0 obj << /Type /Page /Contents 2230 0 R /Resources 2228 0 R /MediaBox [0 0 595.276 841.89] /Parent 2201 0 R /Annots [ 2223 0 R 2224 0 R 2225 0 R 2226 0 R 2227 0 R ] >> endobj 2223 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.411 699.671 457.281 710.575] /A << /S /GoTo /D (GValue) >> >> endobj 2224 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.519 497.829 142.072 508.733] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2225 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [87.238 403.736 146.784 414.64] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2226 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [87.238 157.514 146.784 168.418] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2227 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 85.39 321.173 97.908] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 2231 0 obj << /D [2229 0 R /XYZ -11.232 878.039 null] >> endobj 2232 0 obj << /D [2229 0 R /XYZ 56.693 762.899 null] >> endobj 2233 0 obj << /D [2229 0 R /XYZ 56.693 751.94 null] >> endobj 2234 0 obj << /D [2229 0 R /XYZ 56.693 740.981 null] >> endobj 2121 0 obj << /D [2229 0 R /XYZ 56.693 459.093 null] >> endobj 2235 0 obj << /D [2229 0 R /XYZ 56.693 453.116 null] >> endobj 2236 0 obj << /D [2229 0 R /XYZ 56.693 456.005 null] >> endobj 2237 0 obj << /D [2229 0 R /XYZ 56.693 445.046 null] >> endobj 2122 0 obj << /D [2229 0 R /XYZ 56.693 234.789 null] >> endobj 2238 0 obj << /D [2229 0 R /XYZ 56.693 228.812 null] >> endobj 2239 0 obj << /D [2229 0 R /XYZ 56.693 231.701 null] >> endobj 2240 0 obj << /D [2229 0 R /XYZ 56.693 220.742 null] >> endobj 2241 0 obj << /D [2229 0 R /XYZ 56.693 209.783 null] >> endobj 2242 0 obj << /D [2229 0 R /XYZ 56.693 198.824 null] >> endobj 2228 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F105 312 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2248 0 obj << /Length 1711 /Filter /FlateDecode >> stream xZKs6W7!x?3ɤ4qrI2FdNeҥ(͡ -Ҕ<$!b8ZD8z9:9=?U&2H*y$$EU"4>YVߓ)x|RLrٹm: :^N~~qV2˕BQDT +=~/D+7fl׈@';K(j .Fy e#\]&36 ý)lӕ M)E/a<[_lB6?zS uxa* 8]G4K*`$#H+?kq9_Lmq~3a`\2ցش?R##e )# p8ߵ "%׹]iI;o3t#gvDШx|+) h}뤬Љ]R@MGD#rJ9Hz lŭU &IH*.ptpjd A64|\rV.L #AYnAFBVCX>@+|Pǩ" " -iGAjx-ٞ;#ϵ@&Cnڌ|9}y`\2VIv}UyzIql轖6d/:tf#lP ?@ }Jp9٠ĝ >__}$ۨ`D75@ #t@ҙ\!̴w;L!Ag:&W:?kmRz{*q0ldpY\`Z22F2TEݪ.Bو1Rc?yLq$y!QS;v/1i+1j@de apcws4쮗SZSH ֲ?2t4:=/,ښWߣ&;w1Hm59j5.>s1lu )Qd#՞byBjR5n=BG5wkT_W^*]dʤt*I?agWTi8|ԥJ\\$P OS)|#7IJgporvH/?N!$M$^&El@T ߣT'(W4L~;k;Puyl =d>-eylRvC`'Q xq> I<R#m.I7fj>do5Hj8ե>IEB=ꓽf :~6HHء>IF`J8Hdo.r~ '5%}P'T컶hihD̿  endstream endobj 2247 0 obj << /Type /Page /Contents 2248 0 R /Resources 2246 0 R /MediaBox [0 0 595.276 841.89] /Parent 2201 0 R /Annots [ 2243 0 R 2244 0 R ] >> endobj 2243 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.588 385.799 246.141 396.703] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2244 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.411 258.828 457.281 269.732] /A << /S /GoTo /D (GValue) >> >> endobj 2249 0 obj << /D [2247 0 R /XYZ -16.307 878.039 null] >> endobj 2123 0 obj << /D [2247 0 R /XYZ 56.693 669.897 null] >> endobj 2250 0 obj << /D [2247 0 R /XYZ 56.693 663.919 null] >> endobj 2251 0 obj << /D [2247 0 R /XYZ 56.693 666.808 null] >> endobj 2252 0 obj << /D [2247 0 R /XYZ 56.693 655.85 null] >> endobj 2253 0 obj << /D [2247 0 R /XYZ 56.693 644.891 null] >> endobj 2254 0 obj << /D [2247 0 R /XYZ 56.693 633.932 null] >> endobj 2255 0 obj << /D [2247 0 R /XYZ 56.693 622.973 null] >> endobj 2124 0 obj << /D [2247 0 R /XYZ 56.693 347.062 null] >> endobj 2256 0 obj << /D [2247 0 R /XYZ 56.693 341.085 null] >> endobj 2257 0 obj << /D [2247 0 R /XYZ 56.693 343.974 null] >> endobj 2258 0 obj << /D [2247 0 R /XYZ 56.693 333.015 null] >> endobj 2259 0 obj << /D [2247 0 R /XYZ 56.693 322.056 null] >> endobj 2260 0 obj << /D [2247 0 R /XYZ 56.693 311.097 null] >> endobj 2261 0 obj << /D [2247 0 R /XYZ 56.693 300.138 null] >> endobj 2246 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2266 0 obj << /Length 1597 /Filter /FlateDecode >> stream xZKs6W(ujoӛ;f2i'ud< jeʥ͡ ć,R4jݛG`%s\)MsDa7Br~9"Gd' 7E4]}-]u2 #:M(0A1\/sI8:Q`!'qz Y.<[Db:B|9?plzH5Y?dI0A9AZy1ouxz19#xl \/ u>xҡX8eZC Hj Q#bG{/5?oeE&nu_|o ~A6;cI- f{ iGёo9;y5=$ !c7mm,b$@'` 9 U7ș8wI#>DgtcKե @C]@Hd[AYͫ-FBUɬ4_g 1lj.ڭZ ߵ@B>r=X|Hʑcj.)>f!,nsSl!Y7_Dm3mp :b?tZ1nAL((!4"`ŭLḔj8=(j*XN":u R9 Hʉ vb9"9KTjK Ǡr$uJ:p> endobj 2245 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.519 726.566 142.072 737.47] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2262 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [87.238 621.513 146.784 632.417] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2263 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.588 156.414 246.141 167.318] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2267 0 obj << /D [2265 0 R /XYZ -11.232 878.039 null] >> endobj 2125 0 obj << /D [2265 0 R /XYZ 56.693 687.83 null] >> endobj 2268 0 obj << /D [2265 0 R /XYZ 56.693 681.852 null] >> endobj 2269 0 obj << /D [2265 0 R /XYZ 56.693 684.741 null] >> endobj 2270 0 obj << /D [2265 0 R /XYZ 56.693 673.782 null] >> endobj 2271 0 obj << /D [2265 0 R /XYZ 56.693 662.823 null] >> endobj 2126 0 obj << /D [2265 0 R /XYZ 56.693 428.656 null] >> endobj 2272 0 obj << /D [2265 0 R /XYZ 56.693 422.679 null] >> endobj 2273 0 obj << /D [2265 0 R /XYZ 56.693 425.568 null] >> endobj 2274 0 obj << /D [2265 0 R /XYZ 56.693 414.609 null] >> endobj 2275 0 obj << /D [2265 0 R /XYZ 56.693 403.65 null] >> endobj 2276 0 obj << /D [2265 0 R /XYZ 56.693 392.691 null] >> endobj 2277 0 obj << /D [2265 0 R /XYZ 56.693 381.732 null] >> endobj 2127 0 obj << /D [2265 0 R /XYZ 56.693 117.677 null] >> endobj 2278 0 obj << /D [2265 0 R /XYZ 56.693 111.7 null] >> endobj 2279 0 obj << /D [2265 0 R /XYZ 56.693 114.589 null] >> endobj 2280 0 obj << /D [2265 0 R /XYZ 56.693 103.63 null] >> endobj 2281 0 obj << /D [2265 0 R /XYZ 56.693 92.671 null] >> endobj 2264 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2288 0 obj << /Length 1683 /Filter /FlateDecode >> stream xZKs6W7S!x?M<ɤ4Q2%H&.H&)QJs"Lb?,U2AFRH(OEmp%C*pi>9"ǛheQ2&p>8zƁX,,W iFaQt{޳QN8 P)ɢw#ntP\`Dl1g UR QaAgnewfV"f!u?Rww]j IS3)j{7w l\/]ERr>$i}lJ!NX`Ը|8ICrh6+5ne-pegSVv3s #q9]֮D1ޝ3."qMABETcHu6E B s/[3' ;x&L )}|Q/>52s'_e@`ya6`Kª,n(1bɠ`V`g,U&зTQq)C!n}; J)0 endstream endobj 2287 0 obj << /Type /Page /Contents 2288 0 R /Resources 2286 0 R /MediaBox [0 0 595.276 841.89] /Parent 2201 0 R /Annots [ 2282 0 R 2283 0 R 2284 0 R 2285 0 R ] >> endobj 2282 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.411 710.63 457.281 721.534] /A << /S /GoTo /D (GValue) >> >> endobj 2283 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.519 496.734 142.072 507.637] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2284 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [87.238 391.681 146.784 402.585] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 2285 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 319.557 274.997 332.075] /A << /S /GoTo /D (BtWire) >> >> endobj 2289 0 obj << /D [2287 0 R /XYZ -16.307 878.039 null] >> endobj 2290 0 obj << /D [2287 0 R /XYZ 56.693 762.899 null] >> endobj 2291 0 obj << /D [2287 0 R /XYZ 56.693 751.94 null] >> endobj 2128 0 obj << /D [2287 0 R /XYZ 56.693 457.997 null] >> endobj 2292 0 obj << /D [2287 0 R /XYZ 56.693 452.02 null] >> endobj 2293 0 obj << /D [2287 0 R /XYZ 56.693 454.909 null] >> endobj 2294 0 obj << /D [2287 0 R /XYZ 56.693 443.95 null] >> endobj 2295 0 obj << /D [2287 0 R /XYZ 56.693 432.991 null] >> endobj 2129 0 obj << /D [2287 0 R /XYZ 56.693 198.824 null] >> endobj 2296 0 obj << /D [2287 0 R /XYZ 56.693 192.846 null] >> endobj 2297 0 obj << /D [2287 0 R /XYZ 56.693 195.736 null] >> endobj 2298 0 obj << /D [2287 0 R /XYZ 56.693 184.777 null] >> endobj 2299 0 obj << /D [2287 0 R /XYZ 56.693 173.818 null] >> endobj 2286 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2305 0 obj << /Length 1755 /Filter /FlateDecode >> stream xZKs6Whw*G{s4tR=9-QzU9wA@2_ IA.[,vW<e"2EB"iX <n,S/M,IwͻWo44JfaRH3 BsDa܃he׌~5"0 GY +E4Ynh ߽0FGOU$FIx>~ w|Z?t7oG|'as9,,K:$m3^!!#,}!y0}qA$Gm4fњGk$V\ߓEBK"Cs^ !1q}td4&$,)Gig>A] `Rftƿfni\wŻl$^.Ci2uo>b[_r͐/*/HH!|Jwoݒ҆ A 1(pX`Ju$%ZBg!`Uu+S `m03Ea- 盰e؂(i{0im 1.!$#r 0 ~(ʶ};`LǽZpv Jz Y:$9Kf'q~'pJM 2$%={F~<Jf]VδI3`n0m?@_|w{Ve?ഷNuR5 tu7pmdkg9f#{ĞOSts{۬XS':vE)UV5|9=Qjޡx[ &IS޵ fz9t%lz{RO vB2 \uA{vlA W^U ln-)3lﭱJB\~KS wfdK?еpf) p^MtΦL'g Rd/T> ׃i0&QߥMlA貒m&/w,ݬ\BpѺA[*aKp֛Wբ9+`Hp}/9}6NMM1!X{-TCc!6&TjsE%GZWS֊ J[VW]@Z ]+%4.B<Pͬv-6B8xwk.6W0[:@vhPKC?C C,G9dB!w)U.?OH5TU˻•^95'W6(͆3l?аvt UGC䅔 %^xK BJʇ2~+ۥbB y.I)㯌_}_ߣ^L ^&@] ^^bջRr Zzum/0K1MTF~}p٭ -Kj?T򅦿@sS? Q* endstream endobj 2304 0 obj << /Type /Page /Contents 2305 0 R /Resources 2303 0 R /MediaBox [0 0 595.276 841.89] /Parent 2323 0 R /Annots [ 2300 0 R 2301 0 R 2302 0 R ] >> endobj 2300 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 750.844 98.137 759.691] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2301 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 439.865 163.681 448.712] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2302 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 190.227 98.137 199.074] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2306 0 obj << /D [2304 0 R /XYZ -11.232 878.039 null] >> endobj 1234 0 obj << /D [2304 0 R /XYZ 56.693 710.051 null] >> endobj 2307 0 obj << /D [2304 0 R /XYZ 56.693 704.073 null] >> endobj 2308 0 obj << /D [2304 0 R /XYZ 56.693 706.962 null] >> endobj 2309 0 obj << /D [2304 0 R /XYZ 56.693 696.004 null] >> endobj 2310 0 obj << /D [2304 0 R /XYZ 56.693 685.045 null] >> endobj 2311 0 obj << /D [2304 0 R /XYZ 56.693 674.086 null] >> endobj 2312 0 obj << /D [2304 0 R /XYZ 56.693 663.127 null] >> endobj 2130 0 obj << /D [2304 0 R /XYZ 56.693 399.072 null] >> endobj 2313 0 obj << /D [2304 0 R /XYZ 56.693 393.094 null] >> endobj 2314 0 obj << /D [2304 0 R /XYZ 56.693 395.984 null] >> endobj 2315 0 obj << /D [2304 0 R /XYZ 56.693 385.025 null] >> endobj 2316 0 obj << /D [2304 0 R /XYZ 56.693 374.066 null] >> endobj 2317 0 obj << /D [2304 0 R /XYZ 56.693 363.107 null] >> endobj 2131 0 obj << /D [2304 0 R /XYZ 56.693 151.46 null] >> endobj 2318 0 obj << /D [2304 0 R /XYZ 56.693 146.899 null] >> endobj 2319 0 obj << /D [2304 0 R /XYZ 56.693 149.788 null] >> endobj 2320 0 obj << /D [2304 0 R /XYZ 56.693 138.829 null] >> endobj 2321 0 obj << /D [2304 0 R /XYZ 56.693 127.87 null] >> endobj 2322 0 obj << /D [2304 0 R /XYZ 56.693 116.911 null] >> endobj 2303 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2329 0 obj << /Length 1384 /Filter /FlateDecode >> stream xZKoFWQ*ξh (&9ڔjTRJ_ VԒF97盝-afv]284d!JS1ί_Œ+6N퓨ym$?q[|XzeE+Vp4#Zί Xfj p# _*r45aT:K>+FyGYѨ0P' *o)Jdj~(7@2d-ݦ˚sI9pF5ڸk ]-d 5#u.!񁝾W _t8jRMWHn@p!\ph2:T[)jXbNһZj {9#I[Ӓ2'Q?v wJ`oh T87ӋC~[#A+?iRKtw-)>ۥ6gU"nea|we*C&>H>9vǧPbtJf*ܴNLL _{rSgI"M:O*ա-Pq7.ٖo˳C+WYւGYcC#2<3t~m5jX{8ʄA휁ט1;L&~Cv]19JAa";[{iM1Gjoj\8RYLTOYR[9z=YLF?00z:,1Cc{㭧p͂$vTXM&_?P`CX/kTFYS/+f~UP`3deH5Ӻdn*kByuӂzw7蠁}S Q5ಠP;'SM6{-g2uX4֫ՉR)ʙe\x\0B[ ط!Enķ[Q@bpg%&$+\cL\hx@?w`zu |*8s/1.vydzȸ`ycФ@,8tQt]U ? '?(\QAx麒~c HLy0H9[a&{~P @bcPp N ZLv@|<>)z:8w?) a^bR3~L .XI8,(p2i 3贉emHo&є&q*F ݕ _~o$jw @} /2$g]eWFpGU³m{x>AiK^Gs endstream endobj 2328 0 obj << /Type /Page /Contents 2329 0 R /Resources 2327 0 R /MediaBox [0 0 595.276 841.89] /Parent 2323 0 R /Annots [ 2324 0 R 2325 0 R 2326 0 R ] >> endobj 2324 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 644.837 98.137 653.684] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 2325 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 379.99 103.118 388.837] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 2326 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 120.044 103.118 128.891] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 2330 0 obj << /D [2328 0 R /XYZ -16.307 878.039 null] >> endobj 2132 0 obj << /D [2328 0 R /XYZ 56.693 604.044 null] >> endobj 2331 0 obj << /D [2328 0 R /XYZ 56.693 598.066 null] >> endobj 2332 0 obj << /D [2328 0 R /XYZ 56.693 600.955 null] >> endobj 2333 0 obj << /D [2328 0 R /XYZ 56.693 589.996 null] >> endobj 2334 0 obj << /D [2328 0 R /XYZ 56.693 579.038 null] >> endobj 2335 0 obj << /D [2328 0 R /XYZ 56.693 568.079 null] >> endobj 2336 0 obj << /D [2328 0 R /XYZ 56.693 557.12 null] >> endobj 2133 0 obj << /D [2328 0 R /XYZ 56.693 339.196 null] >> endobj 2337 0 obj << /D [2328 0 R /XYZ 56.693 333.219 null] >> endobj 2338 0 obj << /D [2328 0 R /XYZ 56.693 336.108 null] >> endobj 2339 0 obj << /D [2328 0 R /XYZ 56.693 325.149 null] >> endobj 2340 0 obj << /D [2328 0 R /XYZ 56.693 314.19 null] >> endobj 2341 0 obj << /D [2328 0 R /XYZ 56.693 303.231 null] >> endobj 2342 0 obj << /D [2328 0 R /XYZ 56.693 292.272 null] >> endobj 2134 0 obj << /D [2328 0 R /XYZ 56.693 81.588 null] >> endobj 2327 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2348 0 obj << /Length 1506 /Filter /FlateDecode >> stream xZKo6Wh5!`ۍoE&rjԑS[-;z9lTh9$?3-bp>}y4l2cp] Xj1<ƿ,WIs2KVIzSm>Ng``aZM D'iuó ~ - -tf7w^g> u2\l#+n2{́5.yJ R(>7 J`WWi^ap/ -Vw*" p;4 omA~fHTU )sl?ұcˎU]?L,Ytvr\ir}^,麫sA'77#=k쮟T)r\_GYB؈<~*k,g8ju}h~8=%=:Y̚;_ ,?8q_`4##؀\'(b2MWu6o9鍿~vOPT%^( "mcڙ`sh"tHa]`em$pxV)cj25غ)lFziBf۩-0 l*͜.勇jzU [}X P6V->L$G={iSX&6#阡е_jɅU߻KfYm*ԏ\m('>@e[yL^Kqӽ7RK($(@$4-qL{Aᾨ$E./a?Rg88lYPq\ϳ2^R2S z]ۻ0]ޡ?P6oX,s|Pe:TbLĽ>\hEr$?B]a*CA!($,w"$:Š!oXSY.oDv>"@KGWP?6#ml)Qf[ٓjߊWzAzߒ5wO2#C,D%⡶\ |T̳`:=MHB%/"Ը+K~%$8 B@ 8Hp媞JXniZMd ̮Jtzwi4&$JJEm7q)eEjZqMWWJ*; b\H ?ұƆ ^_-<5*t!/mlP.Lq ]p]~v-䍅n0{qOdMHbM ꨻2j..ռECŅRk*RIn;Nidb2B/u*Aź:(_l0jRwʡD>a÷rF<ɐ눣;7ϣӷGq_ endstream endobj 2347 0 obj << /Type /Page /Contents 2348 0 R /Resources 2346 0 R /MediaBox [0 0 595.276 841.89] /Parent 2323 0 R /Annots [ 2344 0 R 2345 0 R ] >> endobj 2344 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 534.262 103.118 543.109] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 2345 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 280.374 103.118 289.22] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 2349 0 obj << /D [2347 0 R /XYZ -11.232 878.039 null] >> endobj 2350 0 obj << /D [2347 0 R /XYZ 56.693 761.903 null] >> endobj 2351 0 obj << /D [2347 0 R /XYZ 56.693 755.228 null] >> endobj 2352 0 obj << /D [2347 0 R /XYZ 56.693 744.269 null] >> endobj 2353 0 obj << /D [2347 0 R /XYZ 56.693 733.31 null] >> endobj 2354 0 obj << /D [2347 0 R /XYZ 56.693 722.351 null] >> endobj 2355 0 obj << /D [2347 0 R /XYZ 56.693 711.392 null] >> endobj 2135 0 obj << /D [2347 0 R /XYZ 56.693 493.469 null] >> endobj 2356 0 obj << /D [2347 0 R /XYZ 56.693 487.491 null] >> endobj 2357 0 obj << /D [2347 0 R /XYZ 56.693 490.38 null] >> endobj 2358 0 obj << /D [2347 0 R /XYZ 56.693 479.422 null] >> endobj 2359 0 obj << /D [2347 0 R /XYZ 56.693 468.463 null] >> endobj 2360 0 obj << /D [2347 0 R /XYZ 56.693 457.504 null] >> endobj 2136 0 obj << /D [2347 0 R /XYZ 56.693 239.58 null] >> endobj 2361 0 obj << /D [2347 0 R /XYZ 56.693 233.603 null] >> endobj 2362 0 obj << /D [2347 0 R /XYZ 56.693 236.492 null] >> endobj 2363 0 obj << /D [2347 0 R /XYZ 56.693 225.533 null] >> endobj 2364 0 obj << /D [2347 0 R /XYZ 56.693 214.574 null] >> endobj 2365 0 obj << /D [2347 0 R /XYZ 56.693 203.615 null] >> endobj 2366 0 obj << /D [2347 0 R /XYZ 56.693 192.656 null] >> endobj 2346 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F108 345 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2371 0 obj << /Length 1607 /Filter /FlateDecode >> stream xZnF}WQ*/훋$@>9AkE,"$.b./Ysvvf,"]ߎ^Q&2H*ۧHH$ "ct7|+*:#ImpcljxO^8+J!(L#j*.D+A8";K(|)Eq/H(p>ᣫa)0eivͧM#JuBЦ lQ )-hL Ƌϥr#UgdY<=%iqㆂ}0!Q rfۆ37;IV,GP@ C[ǩJ DnQ% ~֗$i~0a&0u( wx…q ` '=b`iþ= R9y)YTܼEwW1F2PTd/ A *2.6-xqo'D_2+bG,0#,!FgHaJTK "% ohהt]y#Jf\͟m^{hSs8c_PCߵ4<@ va9PH˦[F<(CjXmcޮyS}W *nqtxå'J^ޝa 2K[bScxסLc:?!VU;˴AVFft>jVD) ̈́߯xKLv>6K#ș?X(,ows;*Uz8llj[6߭U$RGoQEf8elOՎbpia;eTdH[=XWI@ql 1tu:~ q`Dqi҆sU?`c{0)"bMt7)Po\nJ&a>ȏiHmn,9ݲlYx, K&!qN.<\f߯{-m5@5xt[ XE_$ wvEAj@&[K}mo) F'M@`0?緺i endstream endobj 2370 0 obj << /Type /Page /Contents 2371 0 R /Resources 2369 0 R /MediaBox [0 0 595.276 841.89] /Parent 2323 0 R /Annots [ 2367 0 R 2368 0 R ] >> endobj 2367 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 674.63 98.137 683.477] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 2368 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 351.796 83.303 360.642] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2372 0 obj << /D [2370 0 R /XYZ -16.307 878.039 null] >> endobj 2137 0 obj << /D [2370 0 R /XYZ 56.693 633.837 null] >> endobj 2373 0 obj << /D [2370 0 R /XYZ 56.693 627.859 null] >> endobj 2374 0 obj << /D [2370 0 R /XYZ 56.693 630.748 null] >> endobj 2375 0 obj << /D [2370 0 R /XYZ 56.693 619.789 null] >> endobj 2376 0 obj << /D [2370 0 R /XYZ 56.693 608.83 null] >> endobj 2377 0 obj << /D [2370 0 R /XYZ 56.693 597.872 null] >> endobj 2378 0 obj << /D [2370 0 R /XYZ 56.693 586.913 null] >> endobj 2138 0 obj << /D [2370 0 R /XYZ 56.693 311.002 null] >> endobj 2379 0 obj << /D [2370 0 R /XYZ 56.693 305.025 null] >> endobj 2380 0 obj << /D [2370 0 R /XYZ 56.693 307.914 null] >> endobj 2381 0 obj << /D [2370 0 R /XYZ 56.693 296.955 null] >> endobj 2382 0 obj << /D [2370 0 R /XYZ 56.693 285.996 null] >> endobj 2383 0 obj << /D [2370 0 R /XYZ 56.693 275.037 null] >> endobj 2384 0 obj << /D [2370 0 R /XYZ 56.693 264.078 null] >> endobj 2385 0 obj << /D [2370 0 R /XYZ 56.693 253.119 null] >> endobj 2369 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2391 0 obj << /Length 1573 /Filter /FlateDecode >> stream xZMoFWQ*~7IREN`a+K.IE~}f,Hz$CEy;`Ao'痓WoE[ERae9>5E|k%Θ$U— w2W_Hd1tCX=hh7?>M! :[)wy^mBMqP?Oi݌#D7lL$GA?޶*5HQ>d 3*X9t95v cL5um,-GpQR XTlS!w7%M'\xgWZ;{VQ*B{+k[j7_:UѦ)vFT68>֓#nqZׁ4pQ}:^5#yl']^1)q^8l}q4}5#iu ӪؤCi͞ ng 6"Ж mG&6iU4}z|^3 tYkG-DFgn%Z(`66?Q73|P2"%i[{4VUsOMykN}9ozz~ӏ _n'ӍcK54 j2;Y!a?,+f0X_rq~3m8q:펒!\ qJ^%cP%Cp 儺ڝwf0%(+I[/͗W~*({WNց<-2 tk*ƒ @-l8lD^.lp!sҙcŁvX*9 1 @S28hb 2L8J]#h;=z]jp Hj f5ƏBnQgв_]Z6Z6; wMTXu:5) 90.2+GF  }6#¤`:\8?L hjAqS<Ԋvv C5ǰ'K* ϚyuuLڠc1|s;4žڔ&S++}n-~Jw(>J^^׼Fy(agFӏ1tޡ+ŋϐݫ*^ҥԼ5TB/P*M="N*u&X %#s/]W}2tNv /'o: endstream endobj 2390 0 obj << /Type /Page /Contents 2391 0 R /Resources 2389 0 R /MediaBox [0 0 595.276 841.89] /Parent 2323 0 R /Annots [ 2386 0 R 2387 0 R ] >> endobj 2386 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 664.464 83.303 673.31] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2387 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 318.616 83.303 327.462] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2392 0 obj << /D [2390 0 R /XYZ -11.232 878.039 null] >> endobj 2139 0 obj << /D [2390 0 R /XYZ 56.693 623.67 null] >> endobj 2393 0 obj << /D [2390 0 R /XYZ 56.693 617.693 null] >> endobj 2394 0 obj << /D [2390 0 R /XYZ 56.693 620.582 null] >> endobj 2395 0 obj << /D [2390 0 R /XYZ 56.693 609.623 null] >> endobj 2396 0 obj << /D [2390 0 R /XYZ 56.693 598.664 null] >> endobj 2397 0 obj << /D [2390 0 R /XYZ 56.693 587.705 null] >> endobj 2398 0 obj << /D [2390 0 R /XYZ 56.693 576.746 null] >> endobj 2399 0 obj << /D [2390 0 R /XYZ 56.693 565.787 null] >> endobj 2140 0 obj << /D [2390 0 R /XYZ 56.693 277.822 null] >> endobj 2400 0 obj << /D [2390 0 R /XYZ 56.693 271.844 null] >> endobj 2401 0 obj << /D [2390 0 R /XYZ 56.693 274.734 null] >> endobj 2402 0 obj << /D [2390 0 R /XYZ 56.693 263.775 null] >> endobj 2403 0 obj << /D [2390 0 R /XYZ 56.693 252.816 null] >> endobj 2404 0 obj << /D [2390 0 R /XYZ 56.693 241.857 null] >> endobj 2389 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2410 0 obj << /Length 1557 /Filter /FlateDecode >> stream xZnF}WQ*/SH}pCi,"mrI7YK %/93n"}LGǧDIe4DҰH*Mz}rDdGW}8u-gɷS# YXҌQ ]VчA8"/PxRD7]>Eq|}$FI_D_FpuvT(1A;WqLs&r7g"0ӳ >V<ɵ IvJRw-5P1~1Y`3v]<̲,^//8.d>x|B ĹFTRGRQ "%aR`ۮɵx),΃hq!'_1UŋŁXQʧ6%eNlsajZ~k.c|2v0Snmyzp-pw> ;;\jΰp)H]0OAL >['UdjY8JJ:K`wG>'٭ï\jC[ A e#d_mh$A$!7$Cqx K;6? u@PjdvxkbinDn_\4n䄚@xؤZz{M댌b{ o Qݪ?'-$lt-Baõ\ =YCB5R<"6,9k~`p\bKKڲ`);zGMB?PYX!f i}O5܋:|mfҌ&$:ҖzmȭB'VNl>`Wi%/0G_sg|Ut+ endstream endobj 2409 0 obj << /Type /Page /Contents 2410 0 R /Resources 2408 0 R /MediaBox [0 0 595.276 841.89] /Parent 2323 0 R /Annots [ 2388 0 R 2405 0 R 2406 0 R 2407 0 R ] >> endobj 2388 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 728.623 83.303 737.47] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2405 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 497.898 83.303 508.085] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2406 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.034 497.898 191.735 508.085] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 2407 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 180.85 83.303 189.697] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2411 0 obj << /D [2409 0 R /XYZ -16.307 878.039 null] >> endobj 2141 0 obj << /D [2409 0 R /XYZ 56.693 687.83 null] >> endobj 2412 0 obj << /D [2409 0 R /XYZ 56.693 681.852 null] >> endobj 2413 0 obj << /D [2409 0 R /XYZ 56.693 684.741 null] >> endobj 2414 0 obj << /D [2409 0 R /XYZ 56.693 673.782 null] >> endobj 2415 0 obj << /D [2409 0 R /XYZ 56.693 662.823 null] >> endobj 2142 0 obj << /D [2409 0 R /XYZ 56.693 458.445 null] >> endobj 2416 0 obj << /D [2409 0 R /XYZ 56.693 452.467 null] >> endobj 2417 0 obj << /D [2409 0 R /XYZ 56.693 455.356 null] >> endobj 2418 0 obj << /D [2409 0 R /XYZ 56.693 444.397 null] >> endobj 2419 0 obj << /D [2409 0 R /XYZ 56.693 433.439 null] >> endobj 2420 0 obj << /D [2409 0 R /XYZ 56.693 422.48 null] >> endobj 2421 0 obj << /D [2409 0 R /XYZ 56.693 411.521 null] >> endobj 2143 0 obj << /D [2409 0 R /XYZ 56.693 141.647 null] >> endobj 2422 0 obj << /D [2409 0 R /XYZ 56.693 136.781 null] >> endobj 2423 0 obj << /D [2409 0 R /XYZ 56.693 139.67 null] >> endobj 2424 0 obj << /D [2409 0 R /XYZ 56.693 128.711 null] >> endobj 2425 0 obj << /D [2409 0 R /XYZ 56.693 117.752 null] >> endobj 2426 0 obj << /D [2409 0 R /XYZ 56.693 106.793 null] >> endobj 2427 0 obj << /D [2409 0 R /XYZ 56.693 95.834 null] >> endobj 2408 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2432 0 obj << /Length 1329 /Filter /FlateDecode >> stream xڽXMs6W(uF0A7;4U`@K̆&ۻ$@Yd"@Jbw{ Z".م6`B +Ñ60jst5<_^dјI2cMP5@( WEȠ̢vհ 2|Yo r-ugm[ Dw2-݉Rb"sV۴#5wI] "ei Kv1mGoi<O utͨϞE+ ۫nĶQ5PկC[&QJ; .K5c|yf^@DF6Վc`FA 92X)s2u2 `L'=v<,osstG4@tU՜S5]c/ *x ZݴI۷_BՈBuo'"Ko 5"#?YT dSQ$~>ɲ}FZ*U<=Г e8쳂gL;_`JK /gfSpJbE[MQ/KDCiK(ĆDD{\oާ'U*հ᧓*J.N&ՖzJj-UI*o!U*84}E*u; |{ endstream endobj 2431 0 obj << /Type /Page /Contents 2432 0 R /Resources 2430 0 R /MediaBox [0 0 595.276 841.89] /Parent 2444 0 R /Annots [ 2428 0 R 2429 0 R ] >> endobj 2428 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 566.836 83.303 575.682] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2429 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.262 453.692 233.528 464.596] /A << /S /GoTo /D (BtMachine) >> >> endobj 2433 0 obj << /D [2431 0 R /XYZ -11.232 878.039 null] >> endobj 2434 0 obj << /D [2431 0 R /XYZ 56.693 523.452 null] >> endobj 2178 0 obj << /D [2431 0 R /XYZ 56.693 498.09 null] >> endobj 2435 0 obj << /D [2431 0 R /XYZ 56.693 492.113 null] >> endobj 2436 0 obj << /D [2431 0 R /XYZ 56.693 495.002 null] >> endobj 2437 0 obj << /D [2431 0 R /XYZ 56.693 412.365 null] >> endobj 2144 0 obj << /D [2431 0 R /XYZ 56.693 387.004 null] >> endobj 2438 0 obj << /D [2431 0 R /XYZ 56.693 381.026 null] >> endobj 2439 0 obj << /D [2431 0 R /XYZ 56.693 383.915 null] >> endobj 2145 0 obj << /D [2431 0 R /XYZ 56.693 285.936 null] >> endobj 2440 0 obj << /D [2431 0 R /XYZ 56.693 279.959 null] >> endobj 2441 0 obj << /D [2431 0 R /XYZ 56.693 282.848 null] >> endobj 2146 0 obj << /D [2431 0 R /XYZ 56.693 184.869 null] >> endobj 2442 0 obj << /D [2431 0 R /XYZ 56.693 178.891 null] >> endobj 2443 0 obj << /D [2431 0 R /XYZ 56.693 181.78 null] >> endobj 2430 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2451 0 obj << /Length 1829 /Filter /FlateDecode >> stream xZK6Q.bG6IQElCZ[-fڕdٖ-;A{D g<˫gWO_(d$,I"eHt=|)7ј ?+?Ng&]Mo.Y_ƑX,,W iFaSW:~aLyJMWoh ače$FIx_DoiJA{Yd9-lQpDF658)Qn=&y:ށ '$BU / YeK; )# iǎ "%X36(jc4жI)0Ϧ A\[[m#8Q؀PQ!PAN<_I<00LYR'"8R xi$f0#4*8|;mdiR&mZ 1;V0Қb4fmR>Dcg՜,^[}&a&MW~q.#uYxzLR84sn0e kEV-V@CYn\~x1_BHɈP/㺉R&e08"Y*$> pG*%kmE^E6IlJQx9'3"ۋ{-u d@ @l6AP~quYm|e˜qDl%# ǃ2QalNV:AaƆiۯ(8"UކrMG~w:)^Ze+դSx`\c<"H 9L&C %T$oc0nvیHD!|ҝt1B~-:h kP!G˳M+@< = җY5ĨZW%DZ-ajmBtΒyͥ[V쌼ףmo}]&o{IMBw:27 A0kqc5 WR!647g14hܸ]&@> {  pNr2X!*hcofJ )FsBnֶIZjNVtt\sؾc:f]? ;G ([i}"K> k }vb bT,'gY lͬ_gI}tSȥDMMQ6/2WߪȦv̺Vt+>9LaKL&ÿ0Hv˥W=-6!0Az djӻJ5Wg!e8n \\Z=!9? ܃M endstream endobj 2450 0 obj << /Type /Page /Contents 2451 0 R /Resources 2449 0 R /MediaBox [0 0 595.276 841.89] /Parent 2444 0 R /Annots [ 2445 0 R 2446 0 R 2447 0 R 2448 0 R ] >> endobj 2445 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.451 615.772 392.057 626.676] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2446 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [273.413 507.783 301.019 520.301] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2447 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 418.119 125.813 429.023] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2448 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 94.393 125.813 105.297] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2452 0 obj << /D [2450 0 R /XYZ -16.307 878.039 null] >> endobj 2453 0 obj << /D [2450 0 R /XYZ 56.693 741.323 null] >> endobj 2175 0 obj << /D [2450 0 R /XYZ 56.693 715.961 null] >> endobj 2454 0 obj << /D [2450 0 R /XYZ 56.693 709.984 null] >> endobj 2455 0 obj << /D [2450 0 R /XYZ 56.693 712.873 null] >> endobj 2456 0 obj << /D [2450 0 R /XYZ 56.693 701.914 null] >> endobj 2457 0 obj << /D [2450 0 R /XYZ 56.693 690.955 null] >> endobj 2458 0 obj << /D [2450 0 R /XYZ 56.693 679.996 null] >> endobj 2459 0 obj << /D [2450 0 R /XYZ 56.693 669.038 null] >> endobj 2176 0 obj << /D [2450 0 R /XYZ 56.693 379.383 null] >> endobj 2460 0 obj << /D [2450 0 R /XYZ 56.693 373.405 null] >> endobj 2461 0 obj << /D [2450 0 R /XYZ 56.693 376.295 null] >> endobj 2462 0 obj << /D [2450 0 R /XYZ 56.693 365.336 null] >> endobj 2463 0 obj << /D [2450 0 R /XYZ 56.693 354.377 null] >> endobj 2464 0 obj << /D [2450 0 R /XYZ 56.693 343.418 null] >> endobj 2465 0 obj << /D [2450 0 R /XYZ 56.693 332.459 null] >> endobj 2466 0 obj << /D [2450 0 R /XYZ 56.693 321.5 null] >> endobj 2449 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2486 0 obj << /Length 2087 /Filter /FlateDecode >> stream xڵZ[F~_RdGqM/ڇQfHIf;LԢj7 ә=EnM :;ppիDIets a2pT$YD']n⿦3*u9{oۍq7?zqV2˕BQB+=yD+wշ7W^#Ą">C7:zF"A0Ly]_ 7WIF)2Sy/!agRn!ΖvxXhs9"d"Yf WሹûRRG $xTw](EFhchW' - <0qk %Vpe©ś O9Oc# I.g6HÎ&[ "aoyYǙx wgpi|C}+af iL_B1}䛡)R_mNMv S Yz/qc6dA wi>oZ4C߭ˠ˰طaz(tQt_99i,u8ADO? %.6owmnnn'}̝;=Aת3\5'Ut0{u߉hfJܻihUO^؎T L+D4󤠝r6-gtk3`3d+->mf"d)7-=>"G 5UI8pH@EnJ ,b-"8Q⪇`ltD6Ml2+:j^Vm]9Kyi:; 2BgUc-M]+90}dm]!-ϖ{dw6#kyiOH # &4wmVo&Ǣa&uDiM /4I? vdCu-s[).ޚ `8Kv6#Rkrxzkײ[L%|Y¿kyWwݵHm_`*%qHjFxMw~we de􋽽'SvZqoƓVKi014R$]y/  Kq9۶Gv,Ö$ %W UﳤL4K?fO)f㇋y?c{!X"e(ObP$eiÏX=/){A"#f|Cizdp7h(r_ǹa,7p"H+9  >H-k0Wt]74 endstream endobj 2485 0 obj << /Type /Page /Contents 2486 0 R /Resources 2484 0 R /MediaBox [0 0 595.276 841.89] /Parent 2444 0 R /Annots [ 2467 0 R 2468 0 R 2469 0 R 2470 0 R 2471 0 R 2472 0 R 2473 0 R 2474 0 R 2475 0 R 2476 0 R 2477 0 R 2478 0 R 2479 0 R 2480 0 R 2481 0 R 2482 0 R 2483 0 R ] >> endobj 2467 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [305.13 652.691 332.736 663.595] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2468 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [273.413 568.711 301.019 581.229] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2469 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 479.048 125.813 489.952] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2470 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [385.806 411.156 429.162 422.06] /A << /S /GoTo /D (BtPatterns) >> >> endobj 2471 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 344.923 164.846 358.871] /A << /S /GoTo /D (BtPatternControlSource) >> >> endobj 2472 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 344.923 357.517 358.871] /A << /S /GoTo /D (bt-pattern-control-source-new) >> >> endobj 2473 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 282.6 96.872 296.548] /A << /S /GoTo /D (gpointer) >> >> endobj 2474 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 282.6 278.235 296.548] /A << /S /GoTo /D (BtPatternControlSource--default-value) >> >> endobj 2475 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 270.545 107.94 284.493] /A << /S /GoTo /D (BtMachine) >> >> endobj 2476 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 270.545 259.774 284.493] /A << /S /GoTo /D (BtPatternControlSource--machine) >> >> endobj 2477 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 258.49 138.774 272.438] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 2478 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 258.49 292.212 272.438] /A << /S /GoTo /D (BtPatternControlSource--parameter-group) >> >> endobj 2479 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 246.435 111.258 260.383] /A << /S /GoTo /D (BtSequence) >> >> endobj 2480 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 246.435 262.534 260.383] /A << /S /GoTo /D (BtPatternControlSource--sequence) >> >> endobj 2481 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 234.381 110.162 248.328] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 2482 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 234.381 264.207 248.328] /A << /S /GoTo /D (BtPatternControlSource--song-info) >> >> endobj 2483 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 172.058 327.2 186.005] /A << /S /GoTo /D (BtPatternControlSource-struct) >> >> endobj 2487 0 obj << /D [2485 0 R /XYZ -11.232 878.039 null] >> endobj 2177 0 obj << /D [2485 0 R /XYZ 56.693 741.921 null] >> endobj 2488 0 obj << /D [2485 0 R /XYZ 56.693 735.943 null] >> endobj 2489 0 obj << /D [2485 0 R /XYZ 56.693 738.833 null] >> endobj 2490 0 obj << /D [2485 0 R /XYZ 56.693 727.874 null] >> endobj 2491 0 obj << /D [2485 0 R /XYZ 56.693 716.915 null] >> endobj 2492 0 obj << /D [2485 0 R /XYZ 56.693 705.956 null] >> endobj 69 0 obj << /D [2485 0 R /XYZ 56.693 465.034 null] >> endobj 2493 0 obj << /D [2485 0 R /XYZ 56.693 428.038 null] >> endobj 2494 0 obj << /D [2485 0 R /XYZ 56.693 369.83 null] >> endobj 2495 0 obj << /D [2485 0 R /XYZ 56.693 307.507 null] >> endobj 2496 0 obj << /D [2485 0 R /XYZ 56.693 196.964 null] >> endobj 2497 0 obj << /D [2485 0 R /XYZ 56.693 140.281 null] >> endobj 2498 0 obj << /D [2485 0 R /XYZ 56.693 136.183 null] >> endobj 2499 0 obj << /D [2485 0 R /XYZ 56.693 139.67 null] >> endobj 2500 0 obj << /D [2485 0 R /XYZ 56.693 128.711 null] >> endobj 2501 0 obj << /D [2485 0 R /XYZ 56.693 117.752 null] >> endobj 2502 0 obj << /D [2485 0 R /XYZ 56.693 106.793 null] >> endobj 2503 0 obj << /D [2485 0 R /XYZ 56.693 95.834 null] >> endobj 2484 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2516 0 obj << /Length 2050 /Filter /FlateDecode >> stream xڽZ[s6~`/S+lg:mwӾdw2` x݇]IM# ΑRNAst@"S޹q_>r쾪"62.,՟l?]\Vx I|¤ Tcf?^HDûX;# (λo3lW۫$:&>.4}Ks),(CfI&Mt~;yW*R?eT$*3ӻLo5LQߍ*T|WDtԶaeohd pWqQz>'~€T& w27 _BsZ* ,Mt#{8۰iy/ (hBSܮ.yѬzPZlj[$[Սͪ眻j&_o*.lxcu#|DH|i|UՏJ7aomctg fUNfV6UV*L[Ԓ(wY% k+ aa X!%4F+j15Wb(jƠ1C Vt*4K0iZelOerXUo4ʲVm"ŷs()նq;<$1s8ȓBS(aE8E,Smp@dD`zO7ga>T(3[;!PpkzY$YzUj8~m,9"z=BA D\fc1]lL6${嬻iW{葢&t?#]/wQJ)F\!Q8|1qi,`/f=if0]X gIHĄL"f[/^P}ȯU.!"EȷqQ};eCOu7ԯ7wu2gW"CDbu'27YSSrXγ՛lw9 >`coh J_.D' { Ͱu Y#XIf9Fjm/Fq"œ=e _{ͻ*T_oW7*f#_I$$rKJ 0pgEl2`D Lȭ* Vg*~p]":rG{iTgZڴ:T `NdVr'X#pc_vrqARFqJ.y ̼~Fke;Eteڇ6N=y=ΐvb}Q3hhFćz T3c"l A&kUrtBIWCu )e{jg],ɦ.a+S(׌z\r,:ks ֌n=U)a8u-f{r4r,6 dl2l0Yܿ=uC mjqqROU` &:8AF!|WaZvZ6C4,!~=8A2JgA>ix75p@bk9JDp_KO<ٚ{wcGiX=ONj80~{W"+Mܙj$dXp sO۸4gh(w'z]afu c>ٽk؍u^a KO' ;".ǴԘxcڔ#@H> endobj 2512 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [502.382 624.351 565.435 635.254] /A << /S /GoTo /D (BtPatternControlSource--default-value) >> >> endobj 2513 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [385.781 423.6 492.918 434.504] /A << /S /GoTo /D (gst-control-source-bind) >> >> endobj 2517 0 obj << /D [2515 0 R /XYZ -16.307 878.039 null] >> endobj 2518 0 obj << /D [2515 0 R /XYZ 56.693 741.323 null] >> endobj 2519 0 obj << /D [2515 0 R /XYZ 56.693 683.095 null] >> endobj 2520 0 obj << /D [2515 0 R /XYZ 56.693 559.114 null] >> endobj 2505 0 obj << /D [2515 0 R /XYZ 56.693 533.752 null] >> endobj 2521 0 obj << /D [2515 0 R /XYZ 56.693 527.774 null] >> endobj 2522 0 obj << /D [2515 0 R /XYZ 56.693 530.664 null] >> endobj 2523 0 obj << /D [2515 0 R /XYZ 56.693 519.705 null] >> endobj 2524 0 obj << /D [2515 0 R /XYZ 56.693 508.746 null] >> endobj 2525 0 obj << /D [2515 0 R /XYZ 56.693 497.787 null] >> endobj 2526 0 obj << /D [2515 0 R /XYZ 56.693 486.828 null] >> endobj 2527 0 obj << /D [2515 0 R /XYZ 56.693 475.869 null] >> endobj 2528 0 obj << /D [2515 0 R /XYZ 56.693 464.91 null] >> endobj 2529 0 obj << /D [2515 0 R /XYZ 56.693 185.911 null] >> endobj 2511 0 obj << /D [2515 0 R /XYZ 56.693 160.549 null] >> endobj 2530 0 obj << /D [2515 0 R /XYZ 56.693 154.572 null] >> endobj 2531 0 obj << /D [2515 0 R /XYZ 56.693 157.461 null] >> endobj 2514 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2538 0 obj << /Length 1219 /Filter /FlateDecode >> stream xXKs6W(e*GNkO3ihC2%# qC{`Ѵ8ȓ"]XDNg3mV1f $V#m)]۷HL$j&/Rr."]zyd@N`F%0_Pˈ$oG?t "5讙y$%qi{g(ZGI/&MZ1d\{~Md./ A+zM'QJZ .ß"kS;tT(ybqމǚ41s*̨@ [cQE+H}+^1%MP g.-Ímpxk$\Bm}~%.G5$?Lzax/;?fT3BM*L[QVbtEi5Uڦ~T~09n4\a`,|ȫb5v;R-~u,_OŪJwsSlԾM76t(1XRs`hrC)ۇ1nb1ϡ}`1`_l}X%;l`&Ps"1x4fpx=yG06 %^4{;x> endobj 2532 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 115.236 152.253 129.184] /A << /S /GoTo /D (BtProcessorMachine) >> >> endobj 2533 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 115.236 342.573 129.184] /A << /S /GoTo /D (bt-processor-machine-new) >> >> endobj 2539 0 obj << /D [2537 0 R /XYZ -11.232 878.039 null] >> endobj 2540 0 obj << /D [2537 0 R /XYZ 56.693 741.323 null] >> endobj 2506 0 obj << /D [2537 0 R /XYZ 56.693 715.961 null] >> endobj 2541 0 obj << /D [2537 0 R /XYZ 56.693 709.984 null] >> endobj 2542 0 obj << /D [2537 0 R /XYZ 56.693 712.873 null] >> endobj 2507 0 obj << /D [2537 0 R /XYZ 56.693 614.894 null] >> endobj 2543 0 obj << /D [2537 0 R /XYZ 56.693 608.916 null] >> endobj 2544 0 obj << /D [2537 0 R /XYZ 56.693 611.806 null] >> endobj 2508 0 obj << /D [2537 0 R /XYZ 56.693 513.827 null] >> endobj 2545 0 obj << /D [2537 0 R /XYZ 56.693 507.849 null] >> endobj 2546 0 obj << /D [2537 0 R /XYZ 56.693 510.738 null] >> endobj 2509 0 obj << /D [2537 0 R /XYZ 56.693 412.759 null] >> endobj 2547 0 obj << /D [2537 0 R /XYZ 56.693 406.782 null] >> endobj 2548 0 obj << /D [2537 0 R /XYZ 56.693 409.671 null] >> endobj 2510 0 obj << /D [2537 0 R /XYZ 56.693 311.692 null] >> endobj 2549 0 obj << /D [2537 0 R /XYZ 56.693 305.714 null] >> endobj 2550 0 obj << /D [2537 0 R /XYZ 56.693 308.604 null] >> endobj 70 0 obj << /D [2537 0 R /XYZ 56.693 235.348 null] >> endobj 1105 0 obj << /D [2537 0 R /XYZ 56.693 198.351 null] >> endobj 2551 0 obj << /D [2537 0 R /XYZ 56.693 140.143 null] >> endobj 2552 0 obj << /D [2537 0 R /XYZ 56.693 81.588 null] >> endobj 2536 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2559 0 obj << /Length 1918 /Filter /FlateDecode >> stream xZ]o6}P`(À%kֵÐ"+6Y$I߾Krr?!,S^K;7vNG磣w|uί"g*s>s.o;(-9.?YEyFڪz0 \88Mo#T aE>lt,'$Cuݐc?NeY:ԧAUIk) 8SFh_hGK]A>xNC|`եE`H.Hb| !ܡ0#zMM<(*`ZWs_!=cȧ3[ 7+B%P#j:O B@smҳnv#!e^S!k}ŏW67x|ze$ivF}i>b&%v}$a}u!ܻijb(6J h[2`klB!n XA@%oh{s$&%p)nL,98}O]ī\0o[VB8e_<"8oI=xA c`kA2 vmUZuM':;?:Tih0]5)Gmy1 Hg(/ԅuaLup 1fƝ?pǏZ3="NCD$*C(?4q?GEǷe=wQy:wrAtV0[,|]X}ܬP []#/*]e.*?2cƒ\=\Ǹ9! [ve_mw-U!$\޽J5So[2amL荚6 kQ\[-_TQtnΛWDF>~lGE񫡚%vZ6wD'ro2ny7ـtV:gOVN xK ؚ Ům4XDOnokc9IycӯY==ܾM ߎ9{c9 b7yf'z1;_n*k;36c*=5ɟ;.F$ҔHAuVu2M y2bkYf.pl1߰N2rղbJ+@`cny,OcU+_"݉L@ cokyK<(2ի@[@Wf9v}t`Tnnȕ{k#xFqz ^eK,^ Nٖ<äHʔD?{Z^ C֏S~A endstream endobj 2558 0 obj << /Type /Page /Contents 2559 0 R /Resources 2557 0 R /MediaBox [0 0 595.276 841.89] /Parent 2444 0 R /Annots [ 2534 0 R 2535 0 R 2554 0 R 2555 0 R 2556 0 R 2581 0 R ] >> endobj 2534 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 747.457 314.608 761.405] /A << /S /GoTo /D (BtProcessorMachine-struct) >> >> endobj 2535 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 735.402 365.218 749.35] /A << /S /GoTo /D (BtProcessorMachinePatternIndex) >> >> endobj 2554 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.18 548.136 251.958 559.04] /A << /S /GoTo /D (GstChildProxy) >> >> endobj 2555 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [269.333 548.136 325.561 559.04] /A << /S /GoTo /D (BtPersistence) >> >> endobj 2556 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [500.179 265.799 567.925 276.703] /A << /S /GoTo /D (bt-setup-add-machine) >> >> endobj 2581 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 254.467 111.487 264.364] /A << /S /GoTo /D (bt-setup-add-machine) >> >> endobj 2560 0 obj << /D [2558 0 R /XYZ -16.307 878.039 null] >> endobj 2561 0 obj << /D [2558 0 R /XYZ 56.693 697.986 null] >> endobj 2562 0 obj << /D [2558 0 R /XYZ 56.693 692.008 null] >> endobj 2563 0 obj << /D [2558 0 R /XYZ 56.693 695.495 null] >> endobj 2564 0 obj << /D [2558 0 R /XYZ 56.693 684.536 null] >> endobj 2565 0 obj << /D [2558 0 R /XYZ 56.693 673.577 null] >> endobj 2566 0 obj << /D [2558 0 R /XYZ 56.693 662.618 null] >> endobj 2567 0 obj << /D [2558 0 R /XYZ 56.693 651.659 null] >> endobj 2568 0 obj << /D [2558 0 R /XYZ 56.693 640.701 null] >> endobj 2569 0 obj << /D [2558 0 R /XYZ 56.693 629.742 null] >> endobj 2570 0 obj << /D [2558 0 R /XYZ 56.693 565.038 null] >> endobj 2571 0 obj << /D [2558 0 R /XYZ 56.693 506.81 null] >> endobj 2572 0 obj << /D [2558 0 R /XYZ 56.693 448.582 null] >> endobj 2573 0 obj << /D [2558 0 R /XYZ 56.693 390.354 null] >> endobj 2553 0 obj << /D [2558 0 R /XYZ 56.693 364.992 null] >> endobj 2574 0 obj << /D [2558 0 R /XYZ 56.693 359.014 null] >> endobj 2575 0 obj << /D [2558 0 R /XYZ 56.693 361.904 null] >> endobj 2576 0 obj << /D [2558 0 R /XYZ 56.693 350.945 null] >> endobj 2577 0 obj << /D [2558 0 R /XYZ 56.693 339.986 null] >> endobj 2578 0 obj << /D [2558 0 R /XYZ 56.693 329.027 null] >> endobj 2579 0 obj << /D [2558 0 R /XYZ 56.693 318.068 null] >> endobj 2580 0 obj << /D [2558 0 R /XYZ 56.693 307.109 null] >> endobj 2557 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2633 0 obj << /Length 1561 /Filter /FlateDecode >> stream xڵYْF}+ݻʓ0x8R h o_j $f֛`yuk\I5YXB"2vhk2>vϟqAܿنʜB*ew~ާɻWLrFhRxv́8~3tt<-r`BMa65{,X'7 Q&wu)1A.7TF*N 2[}J.ďQfNVA{aj1!\ZM޿9*0(GZQahS`[9KƐ,'=?v*2;so}_'*ڃE[*+\a2{!Q3SQ Y 6!ҦÛ~ ٘[S.Dp"qPY`hW pgԜvYJ]BK"@6 (rTN^rDΑEùₓJSr޻lKg.Ѿt<$qZ;NڏR,A\onz3~,7ڨ Jiafq7?7 ɷU;r87 XFcsUc24ECqm0W="O=CUT ~v/-U̪WֻYH̶~2بyfBn]gVKDrLQx~ݽg7z=v_!d862&p*-˕*B8Ua*,ȨQ'N/m&Pل8T˰k2{C}=J&6 #` &]]lI1x1@Rg [Lg|B\`bqRXVhsp:@-)OƵ7"+r"ȳ4F}t٬O3q`ge fTuWo=> endobj 2585 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 728.623 163.681 737.47] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2586 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.077 615.479 160.343 626.383] /A << /S /GoTo /D (BtMachine) >> >> endobj 2587 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [110.769 559.244 257.598 570.148] /A << /S /GoTo /D (bt-machine-get-pattern-by-index) >> >> endobj 2588 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.383 231.1 277.273 242.004] /A << /S /GoTo /D (BtSong) >> >> endobj 2589 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 164.867 105.769 178.814] /A << /S /GoTo /D (gboolean) >> >> endobj 2590 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 164.867 325.109 178.814] /A << /S /GoTo /D (bt-sequence-add-track) >> >> endobj 2591 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 152.812 86.76 166.76] /A << /S /GoTo /D (void) >> >> endobj 2592 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 152.812 352.535 166.76] /A << /S /GoTo /D (bt-sequence-delete-full-rows) >> >> endobj 2593 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 140.757 86.76 154.705] /A << /S /GoTo /D (void) >> >> endobj 2594 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 140.757 333.716 154.705] /A << /S /GoTo /D (bt-sequence-delete-rows) >> >> endobj 2595 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 128.702 91.373 142.65] /A << /S /GoTo /D (gchar) >> >> endobj 2596 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 128.702 322.349 142.65] /A << /S /GoTo /D (bt-sequence-get-label) >> >> endobj 2597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 116.647 96.922 130.595] /A << /S /GoTo /D (gulong) >> >> endobj 2598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 116.647 350.583 130.595] /A << /S /GoTo /D (bt-sequence-get-loop-length) >> >> endobj 2599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 104.593 113.519 118.54] /A << /S /GoTo /D (BtMachine) >> >> endobj 2600 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 104.593 336.735 118.54] /A << /S /GoTo /D (bt-sequence-get-machine) >> >> endobj 2601 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 92.538 126.112 106.485] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 2602 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 92.538 330.648 106.485] /A << /S /GoTo /D (bt-sequence-get-pattern) >> >> endobj 2603 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 80.483 91.941 94.431] /A << /S /GoTo /D (glong) >> >> endobj 2604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 80.483 365.517 94.431] /A << /S /GoTo /D (bt-sequence-get-tick-by-pattern) >> >> endobj 2634 0 obj << /D [2632 0 R /XYZ -11.232 878.039 null] >> endobj 2635 0 obj << /D [2632 0 R /XYZ 56.693 685.239 null] >> endobj 2582 0 obj << /D [2632 0 R /XYZ 56.693 659.878 null] >> endobj 2636 0 obj << /D [2632 0 R /XYZ 56.693 653.9 null] >> endobj 2637 0 obj << /D [2632 0 R /XYZ 56.693 656.789 null] >> endobj 2583 0 obj << /D [2632 0 R /XYZ 56.693 576.743 null] >> endobj 2638 0 obj << /D [2632 0 R /XYZ 62.67 484.395 null] >> endobj 2639 0 obj << /D [2632 0 R /XYZ 62.67 436.575 null] >> endobj 2640 0 obj << /D [2632 0 R /XYZ 62.67 388.754 null] >> endobj 2641 0 obj << /D [2632 0 R /XYZ 62.67 328.978 null] >> endobj 71 0 obj << /D [2632 0 R /XYZ 56.693 283.548 null] >> endobj 1106 0 obj << /D [2632 0 R /XYZ 56.693 247.981 null] >> endobj 2642 0 obj << /D [2632 0 R /XYZ 56.693 189.773 null] >> endobj 2631 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2693 0 obj << /Length 1920 /Filter /FlateDecode >> stream xڵ[]o6}ϯ0`7)lC 5b+VEreymw)&eVdU><9q4p⥊Œ.ɘE*",9\}VWј |~Y_U~ޥUZL'*G^8+J!(4 W=w~>|F&'&)GFXG_;"A0Ly]y޵HԈH 0o7t8[(S)|x+DGˇeI`b'ʌdbir8yHYnqn!?|X%ETц>9NaC1} +Zc߈2y 8J-LV,Ӫܭ|R#*ο,O=qC ),^,N{d Sc.q(BҪs,4)<$&zPImi,NbZ4!#@̐ +cD`b1ȳ,q(O Cs,0@<@NC))a5Tl%y(GD@j?i7]}6^:P'F2*FQ0Q126)2U6?Q $@C/nh%PRm`]lӔJ E|0&e+Q{/ā^("ql{ -RNDJ($@"FIMmƃEMh Z6Ǟb@kA< 2R 1XI_pObAmnm(#IYJ?7GtvWf,1>>"$~vM7S@'1UÓ7<}H:RSK{S!Ɛ|i5ء:CWIߧ2[{U=G0cHN7d|5yx@ჼȊ> endobj 2605 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 747.457 91.941 761.405] /A << /S /GoTo /D (glong) >> >> endobj 2606 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 747.457 376.575 761.405] /A << /S /GoTo /D (bt-sequence-get-track-by-machine) >> >> endobj 2607 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 735.402 86.76 749.35] /A << /S /GoTo /D (void) >> >> endobj 2608 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 735.402 350.881 749.35] /A << /S /GoTo /D (bt-sequence-insert-full-rows) >> >> endobj 2609 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 723.347 86.76 737.295] /A << /S /GoTo /D (void) >> >> endobj 2610 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 723.347 332.062 737.295] /A << /S /GoTo /D (bt-sequence-insert-rows) >> >> endobj 2611 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 711.292 105.769 725.24] /A << /S /GoTo /D (gboolean) >> >> endobj 2612 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 711.292 348.361 725.24] /A << /S /GoTo /D (bt-sequence-is-pattern-used) >> >> endobj 2613 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 699.238 96.922 713.185] /A << /S /GoTo /D (gulong) >> >> endobj 2614 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 699.238 345.611 713.185] /A << /S /GoTo /D (bt-sequence-limit-play-pos) >> >> endobj 2615 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 687.183 105.769 701.13] /A << /S /GoTo /D (gboolean) >> >> endobj 2616 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 687.183 350.822 701.13] /A << /S /GoTo /D (bt-sequence-move-track-left) >> >> endobj 2617 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 675.128 105.769 689.076] /A << /S /GoTo /D (gboolean) >> >> endobj 2618 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 675.128 356.361 689.076] /A << /S /GoTo /D (bt-sequence-move-track-right) >> >> endobj 2619 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 663.073 116.837 677.021] /A << /S /GoTo /D (BtSequence) >> >> endobj 2620 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 663.073 302.175 677.021] /A << /S /GoTo /D (bt-sequence-new) >> >> endobj 2621 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 651.018 105.769 664.966] /A << /S /GoTo /D (gboolean) >> >> endobj 2622 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 651.018 367.978 664.966] /A << /S /GoTo /D (bt-sequence-remove-track-by-ix) >> >> endobj 2623 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 638.963 105.769 652.911] /A << /S /GoTo /D (gboolean) >> >> endobj 2624 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 638.963 393.98 652.911] /A << /S /GoTo /D (bt-sequence-remove-track-by-machine) >> >> endobj 2625 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 626.909 86.76 640.856] /A << /S /GoTo /D (void) >> >> endobj 2626 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 626.909 321.243 640.856] /A << /S /GoTo /D (bt-sequence-set-label) >> >> endobj 2627 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 614.854 86.76 628.801] /A << /S /GoTo /D (void) >> >> endobj 2628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 614.854 329.542 628.801] /A << /S /GoTo /D (bt-sequence-set-pattern) >> >> endobj 2629 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 602.799 105.769 616.747] /A << /S /GoTo /D (gboolean) >> >> endobj 2630 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 602.799 356.66 616.747] /A << /S /GoTo /D (bt-sequence-set-pattern-quick) >> >> endobj 2652 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 540.476 91.343 554.424] /A << /S /GoTo /D (gulong) >> >> endobj 2653 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 540.476 250.927 554.424] /A << /S /GoTo /D (BtSequence--length) >> >> endobj 2654 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 528.421 100.19 542.369] /A << /S /GoTo /D (gboolean) >> >> endobj 2655 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 528.421 243.734 542.369] /A << /S /GoTo /D (BtSequence--loop) >> >> endobj 2656 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 516.366 86.362 530.314] /A << /S /GoTo /D (glong) >> >> endobj 2657 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 516.366 261.438 530.314] /A << /S /GoTo /D (BtSequence--loop-end) >> >> endobj 2658 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 504.311 86.362 518.259] /A << /S /GoTo /D (glong) >> >> endobj 2659 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 504.311 264.207 518.259] /A << /S /GoTo /D (BtSequence--loop-start) >> >> endobj 2660 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 492.257 96.872 506.204] /A << /S /GoTo /D (gpointer) >> >> endobj 2661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 492.257 265.861 506.204] /A << /S /GoTo /D (BtSequence--properties) >> >> endobj 2662 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 480.202 93.564 494.149] /A << /S /GoTo /D (BtSong) >> >> endobj 2663 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 480.202 244.84 494.149] /A << /S /GoTo /D (BtSequence--song) >> >> endobj 2664 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 468.147 96.872 482.095] /A << /S /GoTo /D (gpointer) >> >> endobj 2665 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 468.147 238.195 482.095] /A << /S /GoTo /D (BtSequence--toc) >> >> endobj 2666 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 456.092 91.343 470.04] /A << /S /GoTo /D (gulong) >> >> endobj 2667 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 456.092 249.811 470.04] /A << /S /GoTo /D (BtSequence--tracks) >> >> endobj 2668 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 393.769 81.181 407.717] /A << /S /GoTo /D (void) >> >> endobj 2669 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 393.769 280.795 407.717] /A << /S /GoTo /D (BtSequence-pattern-added) >> >> endobj 2670 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 393.769 579.053 407.717] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2671 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 381.714 81.181 395.662] /A << /S /GoTo /D (void) >> >> endobj 2672 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 381.714 291.565 395.662] /A << /S /GoTo /D (BtSequence-pattern-removed) >> >> endobj 2673 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 381.714 579.053 395.662] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2674 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 369.659 81.181 383.607] /A << /S /GoTo /D (void) >> >> endobj 2675 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 369.659 281.652 383.607] /A << /S /GoTo /D (BtSequence-rows-changed) >> >> endobj 2676 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 369.659 579.053 383.607] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2677 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 357.604 81.181 371.552] /A << /S /GoTo /D (void) >> >> endobj 2678 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 357.604 273.044 371.552] /A << /S /GoTo /D (BtSequence-track-added) >> >> endobj 2679 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 357.604 579.053 371.552] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2680 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 345.55 81.181 359.497] /A << /S /GoTo /D (void) >> >> endobj 2681 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 345.55 283.814 359.497] /A << /S /GoTo /D (BtSequence-track-removed) >> >> endobj 2682 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 345.55 579.053 359.497] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2683 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 283.227 279.191 297.174] /A << /S /GoTo /D (BtSequence-struct) >> >> endobj 2684 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [154.764 150.755 210.992 161.659] /A << /S /GoTo /D (BtPersistence) >> >> endobj 2694 0 obj << /D [2692 0 R /XYZ -16.307 878.039 null] >> endobj 2695 0 obj << /D [2692 0 R /XYZ 56.693 565.382 null] >> endobj 2696 0 obj << /D [2692 0 R /XYZ 56.693 418.676 null] >> endobj 2697 0 obj << /D [2692 0 R /XYZ 56.693 308.133 null] >> endobj 2698 0 obj << /D [2692 0 R /XYZ 56.693 245.81 null] >> endobj 2699 0 obj << /D [2692 0 R /XYZ 56.693 239.833 null] >> endobj 2700 0 obj << /D [2692 0 R /XYZ 56.693 243.32 null] >> endobj 2701 0 obj << /D [2692 0 R /XYZ 56.693 232.361 null] >> endobj 2702 0 obj << /D [2692 0 R /XYZ 56.693 167.657 null] >> endobj 2703 0 obj << /D [2692 0 R /XYZ 56.693 109.429 null] >> endobj 2691 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2741 0 obj << /Length 1871 /Filter /FlateDecode >> stream xZ[s8~WvSm:Lg)v2V'Ʀi{dɀ߹O{3{ŕx $ɀy~WxȻ^.,y4/,õ׹N0]ŕžX ,}baBo3x7|X=ք77na/w=xj#$'ޗi"E0Op񢌳*Ɣ#&]f4f }i6$*-8$kM>wS,Σ#"aY<- (5|w:qr@Yt(㹻 c(Lc:| qdW/(Cpt-1kh4 ?o+ [8~ŘYybue xb"ό~đvʧE"agI26 L*ճ'믔28"03AÚM\ϭO+}: n.ikB#)*2*LZraLs%YYm]6IZ?.J+,p;nUN[ M1IsA4Ȗlº|Wu)NUO~%AՍ؀)AyK>ݒK!%W˴Jbv.\]tFFG;,1W2~kbABQaHD ( TڻءhOw($e LpeS?|9n׻k X4)u]](7,aH2gmo{+{o}hlB(䀠ԍ!4'4 z :ooJ(%UgRVvIE+pS 0`[DWU.]S?Yud G>K&~d fx-ם#al[׽[PfDQ eiTqc"i,A72yK 2;mc֣X:v 8GD7HZ3cA8 A>o?q> |nZXʍk4iL')0,eN`K}Z@]%MMv&XT͙7[z{0 )u؇ CtɦyҶӵTẁA t>9}jOpnunG EV2s> endobj 2685 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [163.285 724.422 226.019 735.326] /A << /S /GoTo /D (BtCmdPatterns) >> >> endobj 2686 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [366.747 724.422 413.013 735.326] /A << /S /GoTo /D (BtMachine) >> >> endobj 2687 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [343.321 712.466 408.934 723.37] /A << /S /GoTo /D (BtSequence-pattern-added) >> >> endobj 2688 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [427.388 712.466 503.77 723.37] /A << /S /GoTo /D (BtSequence-pattern-removed) >> >> endobj 2689 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [110.6 700.511 141.126 711.415] /A << /S /GoTo /D (GstToc) >> >> endobj 2690 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [228.497 700.511 251.511 711.415] /A << /S /GoTo /D (BtSequence--toc) >> >> endobj 2731 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [254.081 682.579 282.633 693.482] /A << /S /GoTo /D (BtSequence--loop) >> >> endobj 2732 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.622 682.579 334.648 693.482] /A << /S /GoTo /D (BtSequence--loop-start) >> >> endobj 2733 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [337.636 682.579 383.893 693.482] /A << /S /GoTo /D (BtSequence--loop-end) >> >> endobj 2734 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [371.051 664.646 419.538 675.55] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 2735 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 460.614 293.657 473.132] /A << /S /GoTo /D (BtSequence) >> >> endobj 2736 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 435.274 290.339 449.221] /A << /S /GoTo /D (BtMachine) >> >> endobj 2737 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 362.641 83.303 371.488] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2738 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 121.809 98.137 130.656] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2742 0 obj << /D [2740 0 R /XYZ -11.232 878.039 null] >> endobj 2743 0 obj << /D [2740 0 R /XYZ 56.693 741.323 null] >> endobj 2744 0 obj << /D [2740 0 R /XYZ 56.693 623.319 null] >> endobj 2644 0 obj << /D [2740 0 R /XYZ 56.693 597.958 null] >> endobj 2745 0 obj << /D [2740 0 R /XYZ 56.693 591.98 null] >> endobj 2746 0 obj << /D [2740 0 R /XYZ 56.693 594.869 null] >> endobj 2747 0 obj << /D [2740 0 R /XYZ 56.693 583.91 null] >> endobj 2748 0 obj << /D [2740 0 R /XYZ 56.693 572.951 null] >> endobj 2749 0 obj << /D [2740 0 R /XYZ 56.693 561.993 null] >> endobj 2645 0 obj << /D [2740 0 R /XYZ 56.693 321.848 null] >> endobj 2750 0 obj << /D [2740 0 R /XYZ 56.693 315.87 null] >> endobj 2751 0 obj << /D [2740 0 R /XYZ 56.693 318.76 null] >> endobj 2752 0 obj << /D [2740 0 R /XYZ 56.693 307.801 null] >> endobj 2753 0 obj << /D [2740 0 R /XYZ 56.693 296.842 null] >> endobj 2754 0 obj << /D [2740 0 R /XYZ 56.693 285.883 null] >> endobj 2646 0 obj << /D [2740 0 R /XYZ 56.693 81.588 null] >> endobj 2739 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2762 0 obj << /Length 1524 /Filter /FlateDecode >> stream xZKs6W(u*oiLif<˚bBRqC{er}|K GGFWJGiIetu fHt5_,2Re⭹3Yߒ&YM_~q(X,,W ŌQ 8 @be3jiD7O(|SD{F\cy!#$<_EF:Oë]dinۂHD (ұ2DjᓘT0ȄUXŒHS}gKlq,9RT.%aJ206Ζ>2/&766ofe syz*19Y΋=]&RV[/qOs[{Mm@j m57$#TYOβ6f+3 ya2;զ\\Pq0Qwշd"> endobj 2756 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 534.063 98.137 542.91] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2757 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 366.884 293.657 379.402] /A << /S /GoTo /D (BtSequence) >> >> endobj 2758 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [142.471 290.765 171.023 301.669] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2759 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 135.173 293.657 149.121] /A << /S /GoTo /D (BtSequence) >> >> endobj 2763 0 obj << /D [2761 0 R /XYZ -16.307 878.039 null] >> endobj 2764 0 obj << /D [2761 0 R /XYZ 56.693 761.903 null] >> endobj 2765 0 obj << /D [2761 0 R /XYZ 56.693 755.228 null] >> endobj 2766 0 obj << /D [2761 0 R /XYZ 56.693 744.269 null] >> endobj 2767 0 obj << /D [2761 0 R /XYZ 56.693 733.31 null] >> endobj 2768 0 obj << /D [2761 0 R /XYZ 56.693 722.351 null] >> endobj 2769 0 obj << /D [2761 0 R /XYZ 56.693 711.392 null] >> endobj 2647 0 obj << /D [2761 0 R /XYZ 56.693 493.269 null] >> endobj 2770 0 obj << /D [2761 0 R /XYZ 56.693 487.292 null] >> endobj 2771 0 obj << /D [2761 0 R /XYZ 56.693 490.181 null] >> endobj 2772 0 obj << /D [2761 0 R /XYZ 56.693 479.222 null] >> endobj 2773 0 obj << /D [2761 0 R /XYZ 56.693 468.263 null] >> endobj 2648 0 obj << /D [2761 0 R /XYZ 56.693 252.029 null] >> endobj 2774 0 obj << /D [2761 0 R /XYZ 56.693 246.051 null] >> endobj 2775 0 obj << /D [2761 0 R /XYZ 56.693 248.941 null] >> endobj 2776 0 obj << /D [2761 0 R /XYZ 56.693 237.982 null] >> endobj 2760 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F108 345 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2786 0 obj << /Length 1611 /Filter /FlateDecode >> stream xZMsH+[d?jk&Ud+8'oʥT@8 o۷G#-%@7=zzLwq{B[dUL +ˑp]U|| $||Jw$]٨&g/ A`wBkl8I D`6gBv}QDZIFGp"XX#HRWycF))›)^_!%4^$|e" LtSˆk"KQ~TaFbV)XYG ?XUM_z_y X [f`l"]I-@AإAۋM2*H,h+CKkѐb◶Shc?2 1Tݙ^E\4ZfؾI%E> c%Cl# XI3~mVaLwaUǏ hcVRL\=u4ӻ2 Gs9kɞM׃ki?^&]#8Oeҝe;j S|LPO3SRcHh̥3(\B@ECN!oUHtX) 4<'0`7۰1 oV|ʚb ơ !)j`eehpz*7X*\:GԪ㗸P  A \MUC  ՐHAeF ɴmk8J$$b.y XH\`XxSqS3|yX*Ζ4[eT|yLten_ +=ׇׯC ??J֥qˉ&tp)!#A!z,UuP-Wyl=,ɎԲ\P&98 ;I0׬;"Ă*~\olX@ѕx-Y *I DHȯ:#I@G 5ւmW O?XX]P#*C"=8ΰE{q\b-#)SGA@0u@8kSw(laͺX`B1I6")qveTRdO!09>y}YO(08x@b=!$fG%f dJzYE`g=$05vm]n }50NZ֪!Z"om޳4N4/@`Fm76\V!e}L`m~?P-9EG[Y hH'wj0MZr,iw⢁W^R u)wt|:j 5~g=³ýܩ1hߠ,>&DcB4mGDQ JGgq]*랢C4ovt2/JVao@,܃P?lFD|M !R9B/j9x2!3)8V endstream endobj 2785 0 obj << /Type /Page /Contents 2786 0 R /Resources 2784 0 R /MediaBox [0 0 595.276 841.89] /Parent 2643 0 R /Annots [ 2777 0 R 2778 0 R 2779 0 R 2780 0 R 2781 0 R 2782 0 R 2783 0 R ] >> endobj 2777 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [103.288 675.605 149.553 686.509] /A << /S /GoTo /D (BtMachine) >> >> endobj 2778 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 615.536 293.657 628.054] /A << /S /GoTo /D (BtSequence) >> >> endobj 2779 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [127.058 539.417 173.324 550.321] /A << /S /GoTo /D (BtMachine) >> >> endobj 2780 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.326 539.417 243.879 550.321] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2781 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 345.404 293.657 357.922] /A << /S /GoTo /D (BtSequence) >> >> endobj 2782 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [127.058 262.769 185.917 273.672] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 2783 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.204 262.769 225.757 273.672] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2787 0 obj << /D [2785 0 R /XYZ -11.232 878.039 null] >> endobj 2649 0 obj << /D [2785 0 R /XYZ 56.693 741.921 null] >> endobj 2788 0 obj << /D [2785 0 R /XYZ 56.693 735.943 null] >> endobj 2789 0 obj << /D [2785 0 R /XYZ 56.693 738.833 null] >> endobj 2790 0 obj << /D [2785 0 R /XYZ 56.693 727.874 null] >> endobj 2791 0 obj << /D [2785 0 R /XYZ 56.693 716.915 null] >> endobj 2650 0 obj << /D [2785 0 R /XYZ 56.693 482.748 null] >> endobj 2792 0 obj << /D [2785 0 R /XYZ 56.693 476.77 null] >> endobj 2793 0 obj << /D [2785 0 R /XYZ 56.693 479.659 null] >> endobj 2794 0 obj << /D [2785 0 R /XYZ 56.693 468.7 null] >> endobj 2795 0 obj << /D [2785 0 R /XYZ 56.693 457.742 null] >> endobj 2796 0 obj << /D [2785 0 R /XYZ 56.693 446.783 null] >> endobj 2651 0 obj << /D [2785 0 R /XYZ 56.693 209.465 null] >> endobj 2797 0 obj << /D [2785 0 R /XYZ 56.693 204.872 null] >> endobj 2798 0 obj << /D [2785 0 R /XYZ 56.693 207.761 null] >> endobj 2799 0 obj << /D [2785 0 R /XYZ 56.693 196.802 null] >> endobj 2800 0 obj << /D [2785 0 R /XYZ 56.693 185.843 null] >> endobj 2801 0 obj << /D [2785 0 R /XYZ 56.693 174.885 null] >> endobj 2802 0 obj << /D [2785 0 R /XYZ 56.693 163.926 null] >> endobj 2784 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2808 0 obj << /Length 1620 /Filter /FlateDecode >> stream xZێ6}W.jKafdߒpv]!Hrs%e>,hk38x pp;xL`Tw@H$ Q!x;}%˯9xzx:\I/W/^jhrfJO_~f$%>){<^q/M FIxLࣻa(A%i^צ#JuFL⬲8L4!ʵkR6V͞J}Y.um,c0$Eʐ! S k Qc}(pFkfm5n|*NNhbnڒJ_ NK_FB^j0G6>rD~(4ldethz>xs\ E\^('J]MsRp#4H9[(%EOmՉjVdo\^[*p| !MaV/)aa}84NWSWFr|[_RvbUq%: WC@Rzzhc=ΛC<1Ff{u͉wwc<dJL6cJ~֑\v*2H儛xT5NAZ>׌2YnBnr^HdSsj1>#!G"]2]s4ܾVi!pc_EV U$=iPo0./QGr8n X$D?$MӍDf~v5`xJ}z'ztt'<: G?`9/FAO A˧Fy\mh滄 -Vz&Bl%=}@A((DUsu3\/'vǨ9?ұo P ɩj=.p/<i?oP99^ϯ?R[i@2\TfcP]m.)ps1Whc0>u*`s4MݱG~2Lͧ[2gRFR\+WU M&-hT1-<@| *1+NݱM"a_ei ڨevȑcۋM/Y]HO0 # ʇnvrgQHA!k59CJ ]$ endstream endobj 2807 0 obj << /Type /Page /Contents 2808 0 R /Resources 2806 0 R /MediaBox [0 0 595.276 841.89] /Parent 2643 0 R /Annots [ 2803 0 R 2804 0 R 2805 0 R ] >> endobj 2803 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 620.927 98.137 629.774] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 2804 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 326.885 98.137 335.731] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 2805 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 96.707 98.137 105.554] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2809 0 obj << /D [2807 0 R /XYZ -16.307 878.039 null] >> endobj 2704 0 obj << /D [2807 0 R /XYZ 56.693 580.133 null] >> endobj 2810 0 obj << /D [2807 0 R /XYZ 56.693 574.156 null] >> endobj 2811 0 obj << /D [2807 0 R /XYZ 56.693 577.045 null] >> endobj 2812 0 obj << /D [2807 0 R /XYZ 56.693 566.086 null] >> endobj 2813 0 obj << /D [2807 0 R /XYZ 56.693 555.127 null] >> endobj 2814 0 obj << /D [2807 0 R /XYZ 56.693 544.168 null] >> endobj 2705 0 obj << /D [2807 0 R /XYZ 56.693 286.091 null] >> endobj 2815 0 obj << /D [2807 0 R /XYZ 56.693 280.113 null] >> endobj 2816 0 obj << /D [2807 0 R /XYZ 56.693 283.003 null] >> endobj 2817 0 obj << /D [2807 0 R /XYZ 56.693 272.044 null] >> endobj 2818 0 obj << /D [2807 0 R /XYZ 56.693 261.085 null] >> endobj 2819 0 obj << /D [2807 0 R /XYZ 56.693 250.126 null] >> endobj 2806 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F108 345 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2824 0 obj << /Length 1684 /Filter /FlateDecode >> stream xZMs6W(u*͙$t&uS6p"Im~}$(i2ao0\L^U&0H*U $S>4gs**NҰr4?v}yƁX,,W iFahU ZLLM [B"L>}=#ntT`D N Ҕ|߶v (L|̈>e`)L;}kΐ%Em.IсI*lNCE`N9 9€,\Z+:tCI/VM|ϰ6v@CsYh2$~666I0Sas1Z~;8i82F'noiHuq9:5fQ l eGެ&a8En]L(u,K"Uج^60k6^+?³P&hC BIӒCJ?!A9VFM bc֊$ˣ$.Ij̟!xuƩwq~ WYEZEΔy+{ q8ڀCB)$r II6iW9gxV ;6t%+Y5 Z֙ꊯ%qcbZR R)LѢfe2^l#K/vis9?y6%IcYZ6vs%89SvB~q=P;ya 3ii!ٸ?qפDKP f),cǮuKĵ~R%y䪼m)ʦ7kknM1"T"h!4@KqDZQg*!CJ*&Eq6ӝ`FY]#ꆯ+GKK8A 姭@jk!+W8` L΢3:qiul22aMGNVI)om*{ >sP5nu6Qx\/e䴫Z .m}pvS1y;sGbm{=4eQ/|t=źb -ocz9dT nzs& N4G&zS;+]VߺOQ$ytr3_c'Cu%j{ꏸ2' 1>ifYQ\2A[EJ44u1w }Pn U8K<`oCq}LJQ|OaXyh4 j9<} S0j endstream endobj 2823 0 obj << /Type /Page /Contents 2824 0 R /Resources 2822 0 R /MediaBox [0 0 595.276 841.89] /Parent 2840 0 R /Annots [ 2820 0 R 2821 0 R ] >> endobj 2820 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 529.523 98.137 538.37] /A << /S /GoTo /D (api-index-0.3) >> >> endobj 2821 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 287.002 83.303 297.129] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2825 0 obj << /D [2823 0 R /XYZ -11.232 878.039 null] >> endobj 2706 0 obj << /D [2823 0 R /XYZ 56.693 741.921 null] >> endobj 2826 0 obj << /D [2823 0 R /XYZ 56.693 735.943 null] >> endobj 2827 0 obj << /D [2823 0 R /XYZ 56.693 738.833 null] >> endobj 2828 0 obj << /D [2823 0 R /XYZ 56.693 727.874 null] >> endobj 2829 0 obj << /D [2823 0 R /XYZ 56.693 716.915 null] >> endobj 2830 0 obj << /D [2823 0 R /XYZ 56.693 705.956 null] >> endobj 2831 0 obj << /D [2823 0 R /XYZ 56.693 694.997 null] >> endobj 2707 0 obj << /D [2823 0 R /XYZ 56.693 488.73 null] >> endobj 2832 0 obj << /D [2823 0 R /XYZ 56.693 482.752 null] >> endobj 2833 0 obj << /D [2823 0 R /XYZ 56.693 485.641 null] >> endobj 2834 0 obj << /D [2823 0 R /XYZ 56.693 474.682 null] >> endobj 2835 0 obj << /D [2823 0 R /XYZ 56.693 463.724 null] >> endobj 2708 0 obj << /D [2823 0 R /XYZ 56.693 247.489 null] >> endobj 2836 0 obj << /D [2823 0 R /XYZ 56.693 241.512 null] >> endobj 2837 0 obj << /D [2823 0 R /XYZ 56.693 244.401 null] >> endobj 2838 0 obj << /D [2823 0 R /XYZ 56.693 233.442 null] >> endobj 2839 0 obj << /D [2823 0 R /XYZ 56.693 222.483 null] >> endobj 2822 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2849 0 obj << /Length 1310 /Filter /FlateDecode >> stream xYIoFW̑* rsuԓLF)2ɡoȡ$.IJb|oHB'goE[/TXYh~.y31I|:͢"ZFY,0ن[C;Bkl8Dka6YyF37ɗ Mѽ% NJXO.?t,A5`cqDŽzgLI)Q͒Mis fa< w2L JL)_#cID8v9kru~lWtH5nU-$l]5Xe(R8sIfT (mCV J+ WC~>e)l}c g0v@]]iINѓKdwU_7fF3EHQA3N[ɦ~mtjjXho<Ҁ~6Qlxڷ1֧K5b2.-+98m&~{ mεW'4fL_o\ *N ?~"F#dcȣXIy]v׮8ql$ uG5)\j8'0]e԰c cIa1I+$RO*0HH` v,)UAK1.=a^s7J!*Z5ŽhDs`1 r)vܫ`ت 9CCKSp U]"1!qA/4/>{i]t5fb)8A_L |ӕ4bXD#eO{nu{F`=~ڐ?n7?ca)aA f'|h hcˀ@pY4?K aA4'|j[Ňad0x|Xa:> nP|6|XÃ]la'AQ5$!/fb!af`|HӺ0S`/gz94Ԃ}BK =m7F۟Q mT?<.'!:ֺH.dF; ]tjZA0) q뾌X'-X~ ?_gQx+nb$I[O.ƞs%0+vv)W7wгTIxI(] [& a.6e+8(4xį9ҡ$,HY(0v}鼎fC}i["?+ endstream endobj 2848 0 obj << /Type /Page /Contents 2849 0 R /Resources 2847 0 R /MediaBox [0 0 595.276 841.89] /Parent 2840 0 R /Annots [ 2841 0 R 2842 0 R 2843 0 R 2844 0 R 2845 0 R ] >> endobj 2841 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 561.445 293.657 573.962] /A << /S /GoTo /D (BtSequence) >> >> endobj 2842 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 487.383 83.303 496.229] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2843 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 320.204 293.657 332.722] /A << /S /GoTo /D (BtSequence) >> >> endobj 2844 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 246.142 83.303 254.989] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2845 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.379 149.991 411.269 160.895] /A << /S /GoTo /D (BtSong) >> >> endobj 2850 0 obj << /D [2848 0 R /XYZ -16.307 878.039 null] >> endobj 2709 0 obj << /D [2848 0 R /XYZ 56.693 687.83 null] >> endobj 2851 0 obj << /D [2848 0 R /XYZ 56.693 681.852 null] >> endobj 2852 0 obj << /D [2848 0 R /XYZ 56.693 684.741 null] >> endobj 2853 0 obj << /D [2848 0 R /XYZ 56.693 673.782 null] >> endobj 2854 0 obj << /D [2848 0 R /XYZ 56.693 662.823 null] >> endobj 2710 0 obj << /D [2848 0 R /XYZ 56.693 446.589 null] >> endobj 2855 0 obj << /D [2848 0 R /XYZ 56.693 440.612 null] >> endobj 2856 0 obj << /D [2848 0 R /XYZ 56.693 443.501 null] >> endobj 2857 0 obj << /D [2848 0 R /XYZ 56.693 432.542 null] >> endobj 2858 0 obj << /D [2848 0 R /XYZ 56.693 421.583 null] >> endobj 2711 0 obj << /D [2848 0 R /XYZ 56.693 205.349 null] >> endobj 2859 0 obj << /D [2848 0 R /XYZ 56.693 199.371 null] >> endobj 2860 0 obj << /D [2848 0 R /XYZ 56.693 202.26 null] >> endobj 2861 0 obj << /D [2848 0 R /XYZ 56.693 191.301 null] >> endobj 2847 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F108 345 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2870 0 obj << /Length 1430 /Filter /FlateDecode >> stream xZ[S8~ϯcY}ceBD;LHlHZP~| cR;ƴ`;?wt>a0r6:NGuk2YvGd2'ߓhxt&n"]z_~匿ϓw'o-#apjISD` o0v|pdu8x2oFwY-yG0ʅ3be,(0P'3[}rJ,9r!ͽ\#߲:Nlԏ̅d'g#r~uvlH8ͿQX:iԊW3Qy 6BT3cYt\3WZPuv Tis3b idbZ<vm*ccW'z]vqn*Ulܯ6vcwX Ν>z\Ru{E?>:ݶ_l1YVèJUHF8wT(AcJH`덦w>Q0IP ')ܣmUidQQt]ˈA2 W2aSNI޷&{us+eiv]9k'srNww Waf"`(p@v0B%7@pѶDn¡jn´!]!svLa(c?~8)S)O`'XTO -?Ia5𰂛 |r~$&b/P2gKlx~ne)i S>$_ƶ{Rpd?%-R>63Jm %OӎQKi nj=)6rZ)jd3v5.;g4D:Qud@cC3;t$N:]XBjNVIX>ݽT%fex&uRl!Kً{ Q5B^B fZ૎;? h~  m>wJivh˨-Ҵ 6f@#>h>վ j?jAz3FN΃E LɁƶS y7~,|3`p locKyz:)TrI0NU{r-,P b0dyN%3q퐸6xh%qiTFxn^MkTk-yx/|R~oPH)= Lުqk% I^0uy))ێrn~qa V|YpnQ!?3 L endstream endobj 2869 0 obj << /Type /Page /Contents 2870 0 R /Resources 2868 0 R /MediaBox [0 0 595.276 841.89] /Parent 2840 0 R /Annots [ 2846 0 R 2862 0 R 2863 0 R 2864 0 R 2865 0 R 2866 0 R ] >> endobj 2846 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 728.623 163.681 737.47] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2862 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 561.445 293.657 573.962] /A << /S /GoTo /D (BtSequence) >> >> endobj 2863 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 487.383 83.303 496.229] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2864 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 320.204 293.657 332.722] /A << /S /GoTo /D (BtSequence) >> >> endobj 2865 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 294.864 290.339 308.812] /A << /S /GoTo /D (BtMachine) >> >> endobj 2866 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 246.837 83.303 255.684] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2871 0 obj << /D [2869 0 R /XYZ -11.232 878.039 null] >> endobj 2712 0 obj << /D [2869 0 R /XYZ 56.693 687.83 null] >> endobj 2872 0 obj << /D [2869 0 R /XYZ 56.693 681.852 null] >> endobj 2873 0 obj << /D [2869 0 R /XYZ 56.693 684.741 null] >> endobj 2874 0 obj << /D [2869 0 R /XYZ 56.693 673.782 null] >> endobj 2875 0 obj << /D [2869 0 R /XYZ 56.693 662.823 null] >> endobj 2713 0 obj << /D [2869 0 R /XYZ 56.693 446.589 null] >> endobj 2876 0 obj << /D [2869 0 R /XYZ 56.693 440.612 null] >> endobj 2877 0 obj << /D [2869 0 R /XYZ 56.693 443.501 null] >> endobj 2878 0 obj << /D [2869 0 R /XYZ 56.693 432.542 null] >> endobj 2879 0 obj << /D [2869 0 R /XYZ 56.693 421.583 null] >> endobj 2714 0 obj << /D [2869 0 R /XYZ 56.693 206.293 null] >> endobj 2880 0 obj << /D [2869 0 R /XYZ 56.693 200.489 null] >> endobj 2881 0 obj << /D [2869 0 R /XYZ 56.693 203.378 null] >> endobj 2882 0 obj << /D [2869 0 R /XYZ 56.693 192.419 null] >> endobj 2883 0 obj << /D [2869 0 R /XYZ 56.693 181.46 null] >> endobj 2884 0 obj << /D [2869 0 R /XYZ 56.693 170.501 null] >> endobj 2868 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2897 0 obj << /Length 1713 /Filter /FlateDecode >> stream xZKF+tT.U.'\K bDקG!؛Z1~!݌z^*d$ha2H07ouu0o::x.F8+" &g>{1}XSe"/{?`߽0F_@(pzIWHDpJ9T)d =2d},2J sC gA~qwf>o2uŖܷC&X-&]_ AFl"~l+!(R&9U^ TI]¸AJʚtj]eT$T tA,n$pm}!IIoNvJ|Zc~BCxo3743RC0aHkvn /{'d/ *5(]O?&.E1Lh!o,0<A~: )HhiuPd Q0 e$|p+' &vuW|g2~b|$cIdzpo]n3J> qI|RQR_ϰelqOVPdY9$x'i#Щg}HvS8 [Bmag߀4b\ϭݪօ Z1,Vo|98 WH\ge[ ĭ񧳙:̕;2YUw>_NVEz)7?î΋Չ&_0DYA@΋.J׿4w"yծ;4%%8Rp".9)Z"xXs!Ea o+FSنi"/^`^c~BՑ_f~A|F"AX&CV\Sgdxو4;BIQH7JCuq(&"kj9Cݛ7*wM x+e#77hJD6@|Z~sNdi;_QqvW3nq;+¸X!QQwr>Q` Gi0DFݜ}=ͥ& dgiLCr'כwdmI,0)谯j4-\Qq4%S{LWZ]׻y.q:r^TO\LV+wk<ê $n_.a60S1 gG3sFjP:j ;jƎķBQa"# v.@zv=@mfWݼa$F!*j.oIEFb;ؾ=f1e -E˄yflgq1"qA6J7E9ÁAs unʅUfO]E3wBW=GEq 'I sq7i z#Q um5xn:H1+~+.jƾS%z3NNUFs41?WB endstream endobj 2896 0 obj << /Type /Page /Contents 2897 0 R /Resources 2895 0 R /MediaBox [0 0 595.276 841.89] /Parent 2840 0 R /Annots [ 2867 0 R 2885 0 R 2886 0 R 2887 0 R 2888 0 R 2889 0 R 2890 0 R 2891 0 R 2892 0 R 2893 0 R 2894 0 R ] >> endobj 2867 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 750.381 293.657 762.899] /A << /S /GoTo /D (BtSequence) >> >> endobj 2885 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.46 589.328 148.318 600.232] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 2886 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 529.259 293.657 541.777] /A << /S /GoTo /D (BtSequence) >> >> endobj 2887 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 483.297 302.932 493.757] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 2888 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.219 483.297 342.772 493.757] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2889 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.468 344.296 239.037 355.2] /A << /S /GoTo /D (bt-sequence-set-pattern) >> >> endobj 2890 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 284.227 293.657 296.745] /A << /S /GoTo /D (BtSequence) >> >> endobj 2891 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 238.264 302.932 248.725] /A << /S /GoTo /D (BtCmdPattern) >> >> endobj 2892 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.219 238.264 342.772 248.725] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 2893 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 172.143 83.303 183.047] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 2894 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 156.267 98.137 165.114] /A << /S /GoTo /D (api-index-0.5) >> >> endobj 2898 0 obj << /D [2896 0 R /XYZ -16.307 878.039 null] >> endobj 2715 0 obj << /D [2896 0 R /XYZ 56.693 677.562 null] >> endobj 2899 0 obj << /D [2896 0 R /XYZ 56.693 671.585 null] >> endobj 2900 0 obj << /D [2896 0 R /XYZ 56.693 674.474 null] >> endobj 2901 0 obj << /D [2896 0 R /XYZ 56.693 663.515 null] >> endobj 2902 0 obj << /D [2896 0 R /XYZ 56.693 652.556 null] >> endobj 2903 0 obj << /D [2896 0 R /XYZ 56.693 641.597 null] >> endobj 2904 0 obj << /D [2896 0 R /XYZ 56.693 630.638 null] >> endobj 2716 0 obj << /D [2896 0 R /XYZ 56.693 432.53 null] >> endobj 2905 0 obj << /D [2896 0 R /XYZ 56.693 426.553 null] >> endobj 2906 0 obj << /D [2896 0 R /XYZ 56.693 429.442 null] >> endobj 2907 0 obj << /D [2896 0 R /XYZ 56.693 418.483 null] >> endobj 2908 0 obj << /D [2896 0 R /XYZ 56.693 407.524 null] >> endobj 2909 0 obj << /D [2896 0 R /XYZ 56.693 396.565 null] >> endobj 2910 0 obj << /D [2896 0 R /XYZ 56.693 385.606 null] >> endobj 2911 0 obj << /D [2896 0 R /XYZ 56.693 112.884 null] >> endobj 2730 0 obj << /D [2896 0 R /XYZ 56.693 87.522 null] >> endobj 2895 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2917 0 obj << /Length 1212 /Filter /FlateDecode >> stream xYmo6_60|7 i2t HAi["ݬ;T+(>Iȇw{;88읏{P )Ie0B"X*$O7S T >.t6WqE`%<(!lZ!LaAGB.>YK&wO8»wF\E}5.#$ܧuaMdB̃PÂHD (R &"m}d(&Dg0+.8* fvqT.JS&:M(\Ca  %w?|ۜ(?-˶ɟ R͡\9D"е dsw<ɌY^1pNyἝ [4ɴC& ]a%O K]$37Ea s8n~@]dc6;x`H& 7>1Y `.6H@}̔n,bZJ!WOxUUSq8 DA" ؋".&M^lK:5GSƿ^M endstream endobj 2916 0 obj << /Type /Page /Contents 2917 0 R /Resources 2915 0 R /MediaBox [0 0 595.276 841.89] /Parent 2840 0 R /Annots [ 2912 0 R 2913 0 R 2914 0 R ] >> endobj 2912 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.468 714.878 172.358 725.782] /A << /S /GoTo /D (BtSong) >> >> endobj 2913 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [373.027 714.878 435.761 725.782] /A << /S /GoTo /D (BtCmdPatterns) >> >> endobj 2914 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.693 704.98 211.959 713.827] /A << /S /GoTo /D (BtMachine) >> >> endobj 2918 0 obj << /D [2916 0 R /XYZ -11.232 878.039 null] >> endobj 2919 0 obj << /D [2916 0 R /XYZ 56.693 761.903 null] >> endobj 2920 0 obj << /D [2916 0 R /XYZ 56.693 755.228 null] >> endobj 2921 0 obj << /D [2916 0 R /XYZ 56.693 662.283 null] >> endobj 2717 0 obj << /D [2916 0 R /XYZ 56.693 637.402 null] >> endobj 2922 0 obj << /D [2916 0 R /XYZ 56.693 631.904 null] >> endobj 2923 0 obj << /D [2916 0 R /XYZ 56.693 634.793 null] >> endobj 2718 0 obj << /D [2916 0 R /XYZ 56.693 521.489 null] >> endobj 2924 0 obj << /D [2916 0 R /XYZ 56.693 515.991 null] >> endobj 2925 0 obj << /D [2916 0 R /XYZ 56.693 518.881 null] >> endobj 2719 0 obj << /D [2916 0 R /XYZ 56.693 405.576 null] >> endobj 2926 0 obj << /D [2916 0 R /XYZ 56.693 400.079 null] >> endobj 2927 0 obj << /D [2916 0 R /XYZ 56.693 402.968 null] >> endobj 2720 0 obj << /D [2916 0 R /XYZ 56.693 272.211 null] >> endobj 2928 0 obj << /D [2916 0 R /XYZ 56.693 266.713 null] >> endobj 2929 0 obj << /D [2916 0 R /XYZ 56.693 269.603 null] >> endobj 2721 0 obj << /D [2916 0 R /XYZ 56.693 138.845 null] >> endobj 2930 0 obj << /D [2916 0 R /XYZ 56.693 133.348 null] >> endobj 2931 0 obj << /D [2916 0 R /XYZ 56.693 136.237 null] >> endobj 2915 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2935 0 obj << /Length 1545 /Filter /FlateDecode >> stream xZMs6W(u"oVM:iƞ!tJCRqC{)eQfvz1Ex݇؅L/GףXTp"@[j˗< L|&hRhcS̟Û#q^~AqpN$W#vpe/ )⛾K ,p S]EWxSh?7mf>D+|?+IH?E5{&v2I8/_o2O'qYiϫxC8$D*\qASbHgSx {PH01TQ8R~9C%8Gc{,F EM) ^2$e*DfD$?pCU'9''::8ZD7؃Lm/;NwU{cSR9ެ?mRm2>{>v|jiU%KN*A71VE}y`uktK41߅9x2oO?! *gT2)8;[Ô<8k{k"y>%X &6v/}tɢ&$n%ǩ*QI'U91mYw0ܠb<\F Xod}=XƵeڧf%;̣X<8U#?ƞB½T{iwU0WyWP }YVOQpW!*ZWmU]~T>BGJH(eiVvrk{Na#GqY4 4'PN!r0fP.vˌ\q?S" VDVg(BQh$ ^bj#\`İ;ّbP[guW۳f<ӽ@ULqaдde#E2ϔݫSۇ3Srϼ1&L ;L쳊 $8qNbQ:[GIu^[Íu7mKAvvNp?N\'@{BLu4k:2"@{ qf%IzNɘ]P,UlI]וܟZ]"y*/)& endstream endobj 2934 0 obj << /Type /Page /Contents 2935 0 R /Resources 2933 0 R /MediaBox [0 0 595.276 841.89] /Parent 2840 0 R /Annots [ 2932 0 R ] >> endobj 2932 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 188.014 125.813 198.918] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2936 0 obj << /D [2934 0 R /XYZ -16.307 878.039 null] >> endobj 2722 0 obj << /D [2934 0 R /XYZ 56.693 741.921 null] >> endobj 2937 0 obj << /D [2934 0 R /XYZ 56.693 735.943 null] >> endobj 2938 0 obj << /D [2934 0 R /XYZ 56.693 738.833 null] >> endobj 2723 0 obj << /D [2934 0 R /XYZ 56.693 640.853 null] >> endobj 2939 0 obj << /D [2934 0 R /XYZ 56.693 634.876 null] >> endobj 2940 0 obj << /D [2934 0 R /XYZ 56.693 637.765 null] >> endobj 2724 0 obj << /D [2934 0 R /XYZ 56.693 539.786 null] >> endobj 2941 0 obj << /D [2934 0 R /XYZ 56.693 533.809 null] >> endobj 2942 0 obj << /D [2934 0 R /XYZ 56.693 536.698 null] >> endobj 2943 0 obj << /D [2934 0 R /XYZ 56.693 436.128 null] >> endobj 2725 0 obj << /D [2934 0 R /XYZ 56.693 410.767 null] >> endobj 2944 0 obj << /D [2934 0 R /XYZ 56.693 404.789 null] >> endobj 2945 0 obj << /D [2934 0 R /XYZ 56.693 407.678 null] >> endobj 2946 0 obj << /D [2934 0 R /XYZ 56.693 396.72 null] >> endobj 2947 0 obj << /D [2934 0 R /XYZ 56.693 385.761 null] >> endobj 2948 0 obj << /D [2934 0 R /XYZ 56.693 374.802 null] >> endobj 2726 0 obj << /D [2934 0 R /XYZ 56.693 151.355 null] >> endobj 2949 0 obj << /D [2934 0 R /XYZ 56.693 146.829 null] >> endobj 2950 0 obj << /D [2934 0 R /XYZ 56.693 149.718 null] >> endobj 2951 0 obj << /D [2934 0 R /XYZ 56.693 138.759 null] >> endobj 2952 0 obj << /D [2934 0 R /XYZ 56.693 127.8 null] >> endobj 2953 0 obj << /D [2934 0 R /XYZ 56.693 116.841 null] >> endobj 2933 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2959 0 obj << /Length 1643 /Filter /FlateDecode >> stream xZKoFW(zߏN E-ђL(:;K.%zp'J7`<=̾!\7HNhIu)ƤH/ ތ*4uv}^'?p*!Q;2S]qY*۹"I>ǯKq:[`/Wzߞi0:rmp\n%t%v׿r+<>ܽE& 3G}, xbiUAW%7F:z2k͓|.c558 \jfǫNƂHy$@0k9 Q#6QDFn7 ]_ӫ&D3([s{:Ò-޸hBg׹KsF\ΰm@+[aBXF||N2K[c] ,Kk/aY i*Q?騱pSmUVrYVփuz '\xyۣ;a <$ez2!7b Vv!\ " $d:h1D_6~ A]7-SCB9Ү8@$PU:<pCz[hER5{4/N+h l}@z[AVÑ1u!N_1qz%{]y-h1@9ěcel]uT۔סVm\u{K.vH=a9Yf9 ?9q]lZOf9IaB{ ؃> endobj 2954 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 630.825 125.813 641.729] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2955 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 341.967 125.813 352.871] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2956 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 326.092 98.137 334.939] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 2960 0 obj << /D [2958 0 R /XYZ -11.232 878.039 null] >> endobj 2727 0 obj << /D [2958 0 R /XYZ 56.693 592.089 null] >> endobj 2961 0 obj << /D [2958 0 R /XYZ 56.693 586.111 null] >> endobj 2962 0 obj << /D [2958 0 R /XYZ 56.693 589 null] >> endobj 2963 0 obj << /D [2958 0 R /XYZ 56.693 578.041 null] >> endobj 2964 0 obj << /D [2958 0 R /XYZ 56.693 567.082 null] >> endobj 2965 0 obj << /D [2958 0 R /XYZ 56.693 556.124 null] >> endobj 2966 0 obj << /D [2958 0 R /XYZ 56.693 545.165 null] >> endobj 2728 0 obj << /D [2958 0 R /XYZ 56.693 285.298 null] >> endobj 2967 0 obj << /D [2958 0 R /XYZ 56.693 279.321 null] >> endobj 2968 0 obj << /D [2958 0 R /XYZ 56.693 282.21 null] >> endobj 2969 0 obj << /D [2958 0 R /XYZ 56.693 271.251 null] >> endobj 2970 0 obj << /D [2958 0 R /XYZ 56.693 260.292 null] >> endobj 2971 0 obj << /D [2958 0 R /XYZ 56.693 249.333 null] >> endobj 2972 0 obj << /D [2958 0 R /XYZ 56.693 238.374 null] >> endobj 2957 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3023 0 obj << /Length 1887 /Filter /FlateDecode >> stream x͚]sF+3f?zWwjw2M'= 'Hd'=!Z3 ݳsJ[zػ_O^(d$'$y"»L"ٌ <=Of ) ۏpoξ\{{AVT+4WiH߈VC?'&Za<2ͷ/[wcu6:\DqJcqyޅI~4G&W} kf $ $ɻzsLF J87L7^M)ƣ^wll) $dAϓ|؄Am6a9#8gcb^7pYO-9cifk@| h@@q0UX uQ7Io~7@%}P ̡&i%V3[W.wpQ2EUI N8T4[q.za~VugDLӗ`kFY!6P!^AP"H{Zj Lj3D6HãqK' U f QոBՊ( Neg6C0@XxVvuiwo0/ ~ò;خps ]8 ?x B2JK 2Oݟ#MPqX !jzPRZ`X}6/;zs:T{.1&\|Cl!eԑrn")C`cȯa\1, Ls ȴH7nLtjXeT\(~dɕÒf~;`MOb崋c3ۼ5YbS=Xg0e"X5k+VrFU;bHj[~XChXȚ[g1v6)<_5چH>j_7~lufS޶,ZFŽr6c{R8(hdKߥuoat!g!c0, {:Yun,n 9A|4A/JNj']r_,nljMDhȶfJ"IHC£".`J#X0F`<N$`#n aQ>7`Eݏ$UK. )mԸ7 \PPq$4t tP?Pc'Εk u8 -8+˿q2H*ᩚ׆'vsm@Ƨ[āOzWʏO 9ZTͫهoSs$s-RǕБzuEUk Em`?î- rŒ+',a9Z4UmlTnNSL"C"F##$;f hLЋ"DӫX _# 1z80R ޅj=y팜qd-Hd F%%A4(`/fJnvf>Q> endobj 2974 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 748.787 125.813 759.691] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2975 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 732.912 98.137 741.758] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 2976 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 441.997 125.813 452.901] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 2977 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 426.121 98.137 434.968] /A << /S /GoTo /D (api-index-0.6) >> >> endobj 2978 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [241.647 356.173 287.913 367.077] /A << /S /GoTo /D (BtMachine) >> >> endobj 2979 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [305.288 356.173 336.211 367.077] /A << /S /GoTo /D (BtWire) >> >> endobj 2980 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [361.048 356.173 392.938 367.077] /A << /S /GoTo /D (BtSong) >> >> endobj 2981 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 289.939 105.769 303.887] /A << /S /GoTo /D (gboolean) >> >> endobj 2982 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 289.939 323.465 303.887] /A << /S /GoTo /D (bt-setup-add-machine) >> >> endobj 2983 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 277.885 105.769 291.832] /A << /S /GoTo /D (gboolean) >> >> endobj 2984 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 277.885 307.415 291.832] /A << /S /GoTo /D (bt-setup-add-wire) >> >> endobj 2985 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 265.83 113.519 279.778] /A << /S /GoTo /D (BtMachine) >> >> endobj 2986 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 265.83 348.929 279.778] /A << /S /GoTo /D (bt-setup-get-machine-by-id) >> >> endobj 2987 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 253.775 113.519 267.723] /A << /S /GoTo /D (BtMachine) >> >> endobj 2988 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 253.775 358.334 267.723] /A << /S /GoTo /D (bt-setup-get-machine-by-type) >> >> endobj 2989 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 241.72 91.94 255.668] /A << /S /GoTo /D (GList) >> >> endobj 2990 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 241.72 362.209 255.668] /A << /S /GoTo /D (bt-setup-get-machines-by-type) >> >> endobj 2991 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 229.665 91.373 243.613] /A << /S /GoTo /D (gchar) >> >> endobj 2992 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 229.665 366.085 243.613] /A << /S /GoTo /D (bt-setup-get-unique-machine-id) >> >> endobj 2993 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 217.61 98.177 231.558] /A << /S /GoTo /D (BtWire) >> >> endobj 2994 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 217.61 375.489 231.558] /A << /S /GoTo /D (bt-setup-get-wire-by-dst-machine) >> >> endobj 2995 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 205.556 98.177 219.503] /A << /S /GoTo /D (BtWire) >> >> endobj 2996 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 205.556 362.757 219.503] /A << /S /GoTo /D (bt-setup-get-wire-by-machines) >> >> endobj 2997 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 193.501 98.177 207.449] /A << /S /GoTo /D (BtWire) >> >> endobj 2998 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 193.501 375.479 207.449] /A << /S /GoTo /D (bt-setup-get-wire-by-src-machine) >> >> endobj 2999 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 181.446 91.94 195.394] /A << /S /GoTo /D (GList) >> >> endobj 3000 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 181.446 379.364 195.394] /A << /S /GoTo /D (bt-setup-get-wires-by-dst-machine) >> >> endobj 3001 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 169.391 91.94 183.339] /A << /S /GoTo /D (GList) >> >> endobj 3002 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 169.391 379.354 183.339] /A << /S /GoTo /D (bt-setup-get-wires-by-src-machine) >> >> endobj 3003 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 157.336 101.355 171.284] /A << /S /GoTo /D (BtSetup) >> >> endobj 3004 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 157.336 286.693 171.284] /A << /S /GoTo /D (bt-setup-new) >> >> endobj 3005 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 145.282 86.76 159.229] /A << /S /GoTo /D (void) >> >> endobj 3006 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 145.282 385.451 159.229] /A << /S /GoTo /D (bt-setup-remember-missing-machine) >> >> endobj 3007 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 133.227 86.76 147.174] /A << /S /GoTo /D (void) >> >> endobj 3008 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 133.227 338.658 147.174] /A << /S /GoTo /D (bt-setup-remove-machine) >> >> endobj 3009 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 121.172 86.76 135.12] /A << /S /GoTo /D (void) >> >> endobj 3010 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 121.172 322.608 135.12] /A << /S /GoTo /D (bt-setup-remove-wire) >> >> endobj 3024 0 obj << /D [3022 0 R /XYZ -16.307 878.039 null] >> endobj 2729 0 obj << /D [3022 0 R /XYZ 56.693 692.118 null] >> endobj 3025 0 obj << /D [3022 0 R /XYZ 56.693 686.14 null] >> endobj 3026 0 obj << /D [3022 0 R /XYZ 56.693 689.03 null] >> endobj 3027 0 obj << /D [3022 0 R /XYZ 56.693 678.071 null] >> endobj 3028 0 obj << /D [3022 0 R /XYZ 56.693 667.112 null] >> endobj 3029 0 obj << /D [3022 0 R /XYZ 56.693 656.153 null] >> endobj 3030 0 obj << /D [3022 0 R /XYZ 56.693 645.194 null] >> endobj 72 0 obj << /D [3022 0 R /XYZ 56.693 412.108 null] >> endobj 1107 0 obj << /D [3022 0 R /XYZ 56.693 373.054 null] >> endobj 3031 0 obj << /D [3022 0 R /XYZ 56.693 314.846 null] >> endobj 3032 0 obj << /D [3022 0 R /XYZ 56.693 89.628 null] >> endobj 3021 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3067 0 obj << /Length 2018 /Filter /FlateDecode >> stream xڵZ]6}_AUTZ- $AU۳;I%Laf8 660 3`!=J4vv?ܽS<<9#*r>,Y[⾼}x'd.!Laỻ>v|宂E'F$ _ܙ z7r̉7~ }`{nF0.ylgcnu S#E3ֻ,NKkFT%>w#y5ȌYfCQiF8eN%b8uȅ&w2\]%׍pUŨ! .Q D t%m&#TBF\2iEzM^T Vd`A& !͖VvyyhVWp]'`{lNAdNC|V@zyOf6g1M~)n&tE.MZ/ws*K2Gc.+49b W/yattw42hBW$0_e Y`{q;@zi>5!}Vӿ/)^d?Ѫ/oJ#1*6-f$6˞ifE:m:@>}Bs sG B/KPMRr͖IofXKqcbAHdxGKHrUZ-'Yhjj& D2@M Ԅr =1gYֺjaÒa>j ӕjN@12Lp%vF>@."Ps"L, E(3oocd$xQwff V]` 4(yjBѺ[ 1V 0Qs_(g [ GȞ lȯƳ)jmoIF_j]{-Ǹs"?E)؞U, vȭ́oN):s DIG'B'6O2/HG: Ե.d:n6T^J1Al/"N#RIXFY.h %(weNzؓmkT􏵄kkΎ1#,xlHu %s܄' i̺{>#?/= Y4!n`U)ܦ˹]ˡ:u=xe@\7ES +CPv5h<4YiZuYohgYMgXkթ`'yfFrbzʳm1[>Q`XqˊW=NR٤lP)Jsl_ڄ:kWӍ\+c0h2)l*,^6q"r536g ѩvI*+@oEmL6AKfz HK~8>ʽܼl$ihڬL[l̓P':(-,rd?P+ CkcQ~ W#L:j3 @@`'T}G'ӊd51ۊ,Kd Qb1s;q&0U[ju= 8Q) I09*F <ւ_ ؃ϧ6DEM&{sEhbqG.9lbn+oKB{[u> :7^]˩}NMA<U!VmBʨYƵ : @{p?);  endstream endobj 3066 0 obj << /Type /Page /Contents 3067 0 R /Resources 3065 0 R /MediaBox [0 0 595.276 841.89] /Parent 2973 0 R /Annots [ 3011 0 R 3012 0 R 3013 0 R 3014 0 R 3015 0 R 3016 0 R 3017 0 R 3018 0 R 3019 0 R 3020 0 R 3047 0 R 3048 0 R 3049 0 R 3050 0 R 3051 0 R 3052 0 R 3053 0 R 3054 0 R 3055 0 R 3056 0 R 3057 0 R 3058 0 R 3059 0 R 3060 0 R 3061 0 R 3062 0 R 3063 0 R 3064 0 R ] >> endobj 3011 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 747.457 96.872 761.405] /A << /S /GoTo /D (gpointer) >> >> endobj 3012 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 747.457 263.649 761.405] /A << /S /GoTo /D (BtSetup--machines) >> >> endobj 3013 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 735.402 96.872 749.35] /A << /S /GoTo /D (gpointer) >> >> endobj 3014 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 735.402 297.97 749.35] /A << /S /GoTo /D (BtSetup--missing-machines) >> >> endobj 3015 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 723.347 96.872 737.295] /A << /S /GoTo /D (gpointer) >> >> endobj 3016 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 723.347 265.861 737.295] /A << /S /GoTo /D (BtSetup--properties) >> >> endobj 3017 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 711.292 93.564 725.24] /A << /S /GoTo /D (BtSong) >> >> endobj 3018 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 711.292 244.84 725.24] /A << /S /GoTo /D (BtSetup--song) >> >> endobj 3019 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 699.238 96.872 713.185] /A << /S /GoTo /D (gpointer) >> >> endobj 3020 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 699.238 247.6 713.185] /A << /S /GoTo /D (BtSetup--wires) >> >> endobj 3047 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 636.915 81.181 650.862] /A << /S /GoTo /D (void) >> >> endobj 3048 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 636.915 286.882 650.862] /A << /S /GoTo /D (BtSetup-machine-added) >> >> endobj 3049 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 636.915 579.053 650.862] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3050 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 624.86 81.181 638.807] /A << /S /GoTo /D (void) >> >> endobj 3051 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 624.86 297.652 638.807] /A << /S /GoTo /D (BtSetup-machine-removed) >> >> endobj 3052 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 624.86 579.053 638.807] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3053 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 612.805 81.181 626.753] /A << /S /GoTo /D (void) >> >> endobj 3054 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 612.805 270.833 626.753] /A << /S /GoTo /D (BtSetup-wire-added) >> >> endobj 3055 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 612.805 579.053 626.753] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3056 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 600.75 81.181 614.698] /A << /S /GoTo /D (void) >> >> endobj 3057 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 600.75 281.602 614.698] /A << /S /GoTo /D (BtSetup-wire-removed) >> >> endobj 3058 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 600.75 579.053 614.698] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3059 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 538.427 263.709 552.375] /A << /S /GoTo /D (BtSetup-struct) >> >> endobj 3060 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.282 410.116 195.51 421.02] /A << /S /GoTo /D (BtPersistence) >> >> endobj 3061 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [199.845 296.382 231.735 307.286] /A << /S /GoTo /D (BtSong) >> >> endobj 3062 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [297.039 296.382 347.18 307.286] /A << /S /GoTo /D (BtMachines) >> >> endobj 3063 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.061 296.382 466.86 307.286] /A << /S /GoTo /D (BtWires) >> >> endobj 3064 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.184 279.009 270.671 289.913] /A << /S /GoTo /D (GstPipeline) >> >> endobj 3068 0 obj << /D [3066 0 R /XYZ -11.232 878.039 null] >> endobj 3069 0 obj << /D [3066 0 R /XYZ 56.693 661.821 null] >> endobj 3070 0 obj << /D [3066 0 R /XYZ 56.693 563.334 null] >> endobj 3071 0 obj << /D [3066 0 R /XYZ 56.693 502.69 null] >> endobj 3072 0 obj << /D [3066 0 R /XYZ 56.693 497.273 null] >> endobj 3073 0 obj << /D [3066 0 R /XYZ 56.693 500.76 null] >> endobj 3074 0 obj << /D [3066 0 R /XYZ 56.693 489.801 null] >> endobj 3075 0 obj << /D [3066 0 R /XYZ 56.693 426.458 null] >> endobj 3076 0 obj << /D [3066 0 R /XYZ 56.693 369.591 null] >> endobj 3077 0 obj << /D [3066 0 R /XYZ 56.693 312.724 null] >> endobj 3078 0 obj << /D [3066 0 R /XYZ 56.693 167.873 null] >> endobj 2584 0 obj << /D [3066 0 R /XYZ 56.693 143.071 null] >> endobj 3079 0 obj << /D [3066 0 R /XYZ 56.693 137.653 null] >> endobj 3080 0 obj << /D [3066 0 R /XYZ 56.693 140.543 null] >> endobj 3081 0 obj << /D [3066 0 R /XYZ 56.693 129.584 null] >> endobj 3082 0 obj << /D [3066 0 R /XYZ 56.693 118.625 null] >> endobj 3065 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3104 0 obj << /Length 1651 /Filter /FlateDecode >> stream xZKo6Wh5ODOM"[@XXGNey졿Cr-EvC !g>͋Iރ=O}o2|<*7yË͏i3SUڛp&anboaĵGO(ap)e 4X1< 1LdDpmBbBzcݸ:jJ9Ty+DY4(C8uOP'aYz';LWfn.0Z1.8mAg _aC ,cUX&} qPRFP7Bͷ> @3szI頝ޔ40iשDה=8 )g (˸H@-ycr5xx>[g1=%6܇gh4faWa$ʣIrSbY43}z f#x6ʪ//X`#.dAl.+*枀2U B #JGVKBo^(eiͳuJeXĬ+^E~^h(`0ye"3WBMܹpZ- .Y I83nY~O #I2>Y޸yi! +(e8Auvtxv$|maOw HR(~L-K}֬^%"`LN]]qU5:4DpKP`M>B店VNpzM~WV']eH,åOAz??;qm8 )r+0-J*; #?,89h#(Ah!-IپfC%4?Z B!)!k"0ےZ$sMmˬ5`39#L`q#ث3O8`z{T1mtᤸ5(fz}n02d ݎ=4PWM35Uy̹"~3F>0H7h* q A|"_l& H\ /; Qo\ƖpFe>|"{`~Լa6lbeIdR5a٢$gPڂP,34Lݹt$*Ño@ejމ0(x"0 w9ɉv=> {ٽ747Ս;bc"ӭPLv?nh9sY/!):j^W9ӇTotE߸8tcś'fZنi2}1DDkŒhmfojHj!(:.-D" *G jO»:wΏfaF_0a=qd#JSW5 ֐Í #}`TNZWx晲67q1"]l^g.+=%xQrg4+4Ao˯{kT(}~z |dHi5eڦP۷"eW"Ti:W*f~v P'ˤg@@%:'@n1k~6jU endstream endobj 3103 0 obj << /Type /Page /Contents 3104 0 R /Resources 3102 0 R /MediaBox [0 0 595.276 841.89] /Parent 2973 0 R /Annots [ 3095 0 R 3096 0 R 3097 0 R 3098 0 R 3099 0 R 3100 0 R 3101 0 R ] >> endobj 3095 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [81.978 644.469 109.584 655.373] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3096 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [263.127 644.469 294.828 655.373] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 3097 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.277 415.084 113.884 425.988] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3098 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.116 415.084 267.817 425.988] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 3099 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [505.078 298.077 605.57 308.981] /A << /S /GoTo /D (bt-setup-add-machine) >> >> endobj 3100 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 163.346 101.963 173.532] /A << /S /GoTo /D (BtMachine) >> >> endobj 3101 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [148.388 163.346 176.941 173.532] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3105 0 obj << /D [3103 0 R /XYZ -16.307 878.039 null] >> endobj 3033 0 obj << /D [3103 0 R /XYZ 56.693 605.733 null] >> endobj 3106 0 obj << /D [3103 0 R /XYZ 56.693 599.755 null] >> endobj 3107 0 obj << /D [3103 0 R /XYZ 56.693 602.645 null] >> endobj 3108 0 obj << /D [3103 0 R /XYZ 56.693 591.686 null] >> endobj 3109 0 obj << /D [3103 0 R /XYZ 56.693 580.727 null] >> endobj 3034 0 obj << /D [3103 0 R /XYZ 56.693 364.393 null] >> endobj 3110 0 obj << /D [3103 0 R /XYZ 56.693 358.415 null] >> endobj 3111 0 obj << /D [3103 0 R /XYZ 56.693 361.304 null] >> endobj 3112 0 obj << /D [3103 0 R /XYZ 56.693 350.346 null] >> endobj 3113 0 obj << /D [3103 0 R /XYZ 56.693 339.387 null] >> endobj 3035 0 obj << /D [3103 0 R /XYZ 56.693 106.409 null] >> endobj 3114 0 obj << /D [3103 0 R /XYZ 56.693 100.616 null] >> endobj 3115 0 obj << /D [3103 0 R /XYZ 56.693 103.506 null] >> endobj 3116 0 obj << /D [3103 0 R /XYZ 56.693 92.547 null] >> endobj 3102 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3123 0 obj << /Length 1671 /Filter /FlateDecode >> stream xZKs6WHu,7gdN('%Xb#*uC{(dQD] r~Řf`jvMqC\XxHϐp_',#.B\c6`e>vᝮaTOpki/ivP*jBjw;7",[[wb۶+dP#H ǐa?ʢ.tf- 7x nc')^, %m0qe76()VjFSN1*H* FݻsE@l B`eڴc@E'<ddJ#P\u!'D#`'sӥgy|XeD9E<-^gx`i 7K޲ N+ǭye.h'A/>E3LP$..TC3[ap^DSs.B%9t>Nr9Z֕q60q#`~{gJm*UOԬG/Dx n)AX-Wvqj'nC`* ψ * }{+{$*i3\.\RʉiBMvo|Z{Y|n U ]q`Zzus]C+4zj v!ApmsZ+ZpsFQ&ߥ&YTRhx9Asb=I _O_.% Udegs- I̪'p ࠝFQdj ުvP'bO"3'Kr}@݇m1'A^úxlozh2)ⴺ_TkѲQj}d~zgۯ=ڧޢ@E GiN%^_yaݴ8jzS.VKUzi6{hvB?Iq0[y\v>276ve;S$)Y8FWB&@kԕA!"X=mA_Ǣb[*h+^EYqح'+UW_8x:ܰ endstream endobj 3122 0 obj << /Type /Page /Contents 3123 0 R /Resources 3121 0 R /MediaBox [0 0 595.276 841.89] /Parent 2973 0 R /Annots [ 3117 0 R 3118 0 R 3119 0 R 3120 0 R ] >> endobj 3117 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 709.634 156.189 720.538] /A << /S /GoTo /D (bt-setup-add-machine) >> >> endobj 3118 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 562.308 101.963 572.494] /A << /S /GoTo /D (BtMachine) >> >> endobj 3119 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [148.388 562.308 176.941 572.494] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3120 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [130.963 290.935 159.516 301.466] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3124 0 obj << /D [3122 0 R /XYZ -11.232 878.039 null] >> endobj 3125 0 obj << /D [3122 0 R /XYZ 56.693 762.899 null] >> endobj 3036 0 obj << /D [3122 0 R /XYZ 56.693 504.921 null] >> endobj 3126 0 obj << /D [3122 0 R /XYZ 56.693 498.944 null] >> endobj 3127 0 obj << /D [3122 0 R /XYZ 56.693 501.833 null] >> endobj 3128 0 obj << /D [3122 0 R /XYZ 56.693 490.874 null] >> endobj 3129 0 obj << /D [3122 0 R /XYZ 56.693 479.915 null] >> endobj 3037 0 obj << /D [3122 0 R /XYZ 56.693 233.893 null] >> endobj 3130 0 obj << /D [3122 0 R /XYZ 56.693 227.915 null] >> endobj 3131 0 obj << /D [3122 0 R /XYZ 56.693 230.804 null] >> endobj 3132 0 obj << /D [3122 0 R /XYZ 56.693 219.845 null] >> endobj 3133 0 obj << /D [3122 0 R /XYZ 56.693 208.886 null] >> endobj 3121 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3143 0 obj << /Length 1420 /Filter /FlateDecode >> stream xZKs6WHu"oӛ;Mz4Dٚ&.PC(Qr8xHć~ C\C 6)4#2!E ._ip$ .4vW]DӇ-A3x,FŗHRWpD׃_:=M+vb#-WqN]A#0c e _c\Q:Y|^_F1vȔ:4 A J2p:_/ޓ@ON]O$ Gq>y\Ӑd哇h:7$vHp8FZg˛9@0,pmTaFbh+mom 8`jb/e*†[w\y IXKW2C`ҳ⻮+:~O6 5Y^U,zTFbv;?(tdy[6t_۱c02/=&^u%'x>r{-ǷŸ8~vp4.&>?fGf쳑4V/(r_Q:3`*WV@X S+vk)ܽ\g%na?6'KhHZqLo G*@CEk#hY溌\O)MYS0YiIdIF5y&; r(R((Ul` Mp&HɘN J7K^.!zlAPI5l֊ _M[rvrׯɨÍP p §\Mq]`a'4K \`wanI;Jc7Z[/İ$6Y"EEC3̿nVn7mIkTGH=P?-ݽ];>$iW}*ټ\PU[vb`)6 H }ʮ߯olw)RIFɶ?P+j:~O6+Ȝ$ܡ|2ξ`:Wl\-UIvk1 eI ɵ,M1ߓ = -KsW_Bs*+Z)^KbkSkZTq R{ Oy2D-` endstream endobj 3142 0 obj << /Type /Page /Contents 3143 0 R /Resources 3141 0 R /MediaBox [0 0 595.276 841.89] /Parent 2973 0 R /Annots [ 3134 0 R 3135 0 R 3136 0 R 3137 0 R 3138 0 R 3139 0 R 3140 0 R ] >> endobj 3134 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [270.436 603.581 316.702 614.485] /A << /S /GoTo /D (BtMachine) >> >> endobj 3135 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [94.591 591.625 140.856 602.529] /A << /S /GoTo /D (BtMachine) >> >> endobj 3136 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 444.299 101.285 454.486] /A << /S /GoTo /D (BtWire) >> >> endobj 3137 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [112.573 444.299 141.126 454.486] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3138 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.546 309.638 290.812 320.542] /A << /S /GoTo /D (BtMachine) >> >> endobj 3139 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 138.758 101.285 148.944] /A << /S /GoTo /D (BtWire) >> >> endobj 3140 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [112.573 138.758 141.126 148.944] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3144 0 obj << /D [3142 0 R /XYZ -16.307 878.039 null] >> endobj 3038 0 obj << /D [3142 0 R /XYZ 56.693 669.897 null] >> endobj 3145 0 obj << /D [3142 0 R /XYZ 56.693 663.919 null] >> endobj 3146 0 obj << /D [3142 0 R /XYZ 56.693 666.808 null] >> endobj 3147 0 obj << /D [3142 0 R /XYZ 56.693 655.85 null] >> endobj 3148 0 obj << /D [3142 0 R /XYZ 56.693 644.891 null] >> endobj 3039 0 obj << /D [3142 0 R /XYZ 56.693 386.913 null] >> endobj 3149 0 obj << /D [3142 0 R /XYZ 56.693 380.935 null] >> endobj 3150 0 obj << /D [3142 0 R /XYZ 56.693 383.825 null] >> endobj 3151 0 obj << /D [3142 0 R /XYZ 56.693 372.866 null] >> endobj 3152 0 obj << /D [3142 0 R /XYZ 56.693 361.907 null] >> endobj 3153 0 obj << /D [3142 0 R /XYZ 56.693 350.948 null] >> endobj 3040 0 obj << /D [3142 0 R /XYZ 56.693 81.588 null] >> endobj 3141 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3165 0 obj << /Length 1484 /Filter /FlateDecode >> stream xZKoFW*A4HvcDd*%:ΡREILѩO\kE"Cwr-*IH[j.:8]%If$*nΣID~E8\~<93U Ͱ戔XMpR\nQ= +U`)hл!h >"51$%q#~{[acMҒb+{,Œ İ5%Dj/meHXR2{ess]< zt >)s OuXŲK1B5l9_oi`|1} ([|E0}hW+?w[2 yfeuJU"̓bG+!,7.4.y껡%HK%ݴdO sҐt͐n?/CzE2p% ~:AjRا$'cjz&|v^I @˜ a ,4ݶ]@.B}N0  6bI' L_,`d Vf"K5 jǖq %A$R02TK,6/p,E0zsncyWdگ T97fUVeX5`Llb IѪ&u_(r̄e~i8Gq٦LiZ\דi(d#WIC_PuJ=ap1іvx"\#WBd?|T/%/qm;?b4יi V6G5o: Qgd1<[VdH4k,]Yϵmx +UwM@M7zg4/lBhLUoPۘAR|r$֦9k2ڪڄ n\FsecbkP6-wFֻp6[4wF hJJy@˨&\C6H#4@51}M&s5&~LgLLf~LD%Q >2Y;"m#2 */)Y NqJ̅Βh ΦG\^Y`M;3A/r,zl=}׳P}:K VtŹ]GyKf]*Y{߮?klޟZT.yØt mU=bf>s?Eت (tBxn ?F( i[c]己ݧ?GP#D4׎ endstream endobj 3164 0 obj << /Type /Page /Contents 3165 0 R /Resources 3163 0 R /MediaBox [0 0 595.276 841.89] /Parent 3179 0 R /Annots [ 3154 0 R 3155 0 R 3156 0 R 3157 0 R 3158 0 R 3159 0 R 3160 0 R 3161 0 R 3162 0 R ] >> endobj 3154 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [271.834 692 318.1 702.904] /A << /S /GoTo /D (BtMachine) >> >> endobj 3155 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [104.274 680.045 150.54 690.949] /A << /S /GoTo /D (BtMachine) >> >> endobj 3156 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 532.719 101.285 542.905] /A << /S /GoTo /D (BtWire) >> >> endobj 3157 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [112.573 532.719 141.126 542.905] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3158 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.085 409.016 296.351 419.92] /A << /S /GoTo /D (BtMachine) >> >> endobj 3159 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [62.611 261.346 87.298 271.877] /A << /S /GoTo /D (GList) >> >> endobj 3160 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.665 261.346 157.464 271.877] /A << /S /GoTo /D (BtWires) >> >> endobj 3161 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.751 261.346 197.304 271.877] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3162 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.085 137.987 296.351 148.891] /A << /S /GoTo /D (BtMachine) >> >> endobj 3166 0 obj << /D [3164 0 R /XYZ -11.232 878.039 null] >> endobj 3167 0 obj << /D [3164 0 R /XYZ 56.693 761.903 null] >> endobj 3168 0 obj << /D [3164 0 R /XYZ 56.693 755.228 null] >> endobj 3169 0 obj << /D [3164 0 R /XYZ 56.693 744.269 null] >> endobj 3170 0 obj << /D [3164 0 R /XYZ 56.693 733.31 null] >> endobj 3041 0 obj << /D [3164 0 R /XYZ 56.693 475.332 null] >> endobj 3171 0 obj << /D [3164 0 R /XYZ 56.693 469.355 null] >> endobj 3172 0 obj << /D [3164 0 R /XYZ 56.693 472.244 null] >> endobj 3173 0 obj << /D [3164 0 R /XYZ 56.693 461.285 null] >> endobj 3174 0 obj << /D [3164 0 R /XYZ 56.693 450.326 null] >> endobj 3042 0 obj << /D [3164 0 R /XYZ 56.693 204.304 null] >> endobj 3175 0 obj << /D [3164 0 R /XYZ 56.693 198.326 null] >> endobj 3176 0 obj << /D [3164 0 R /XYZ 56.693 201.215 null] >> endobj 3177 0 obj << /D [3164 0 R /XYZ 56.693 190.256 null] >> endobj 3178 0 obj << /D [3164 0 R /XYZ 56.693 179.297 null] >> endobj 3163 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3186 0 obj << /Length 1622 /Filter /FlateDecode >> stream xZr6+:1';gdNdqJ*II^%RM1_y.FW4! y BjH WIYp=>_Qѷx|^r>M:F:J&7W~P8P2 %EKZ!B`TBF\Q2L#UP\`DYIy]^ !.I)RH&ִ-mIeH/{W&e*;›0znˬ~Ӆg@KvFB8873o Bd/<@`(M#r*{P5"Z^ÒCz'O8eO5 ihSS8*]\kVIg&o&T7QSd+} ܣ|A+ k(Q*ͧQp])qe5Ni!. 8/L8X47Eד5o1-k'V/,pT{e1"o¤nce%r$J sHqƜ9Mb&-+q ɱODJI ƗmHF󮼭*mZ>zno jmg/ϐ<Z# !iD~+@)AV pĎ_>B~eXu,WY 9]yoe͗^ LC!QwD?= #N"=T]=ﭾ^qj7QKj.Px>"˃+O Ҕ]]z<`YrDCj^pwx`{ Ц)w&#KG[E =9Utm4`eX{SE̩}w^vcoxl߭O9u3t]푶 AA޸.鎐#j>|b)W_ xӭ2f& m1mM:q#jF$fZ8g2ڌ+AQFv(N̬ ^hrƕ_-2<-xu$c:mECaDV/w'`&_{KFayg+'!2J"Z94!O8B%>FSӽ-gjgg>{=;.jQ qU2*6{tfiHsMSqr6C=S"Pe]`Ȝtm4`ep2a9XV\/㒯ʼ 4?p"?0+#U&A@Jq^n* ;"X58hOM[\f[e17c׫UYǏOU  G^~(O15wb~Sd endstream endobj 3185 0 obj << /Type /Page /Contents 3186 0 R /Resources 3184 0 R /MediaBox [0 0 595.276 841.89] /Parent 3179 0 R /Annots [ 3180 0 R 3181 0 R 3182 0 R 3183 0 R ] >> endobj 3180 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [62.611 662.78 87.298 673.31] /A << /S /GoTo /D (GList) >> >> endobj 3181 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.665 662.78 157.464 673.31] /A << /S /GoTo /D (BtWires) >> >> endobj 3182 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.751 662.78 197.304 673.31] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3183 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 428.304 163.681 437.151] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3187 0 obj << /D [3185 0 R /XYZ -16.307 878.039 null] >> endobj 3043 0 obj << /D [3185 0 R /XYZ 56.693 605.737 null] >> endobj 3188 0 obj << /D [3185 0 R /XYZ 56.693 599.76 null] >> endobj 3189 0 obj << /D [3185 0 R /XYZ 56.693 602.649 null] >> endobj 3190 0 obj << /D [3185 0 R /XYZ 56.693 591.69 null] >> endobj 3044 0 obj << /D [3185 0 R /XYZ 56.693 387.511 null] >> endobj 3191 0 obj << /D [3185 0 R /XYZ 56.693 381.533 null] >> endobj 3192 0 obj << /D [3185 0 R /XYZ 56.693 384.422 null] >> endobj 3193 0 obj << /D [3185 0 R /XYZ 56.693 373.464 null] >> endobj 3194 0 obj << /D [3185 0 R /XYZ 56.693 362.505 null] >> endobj 3045 0 obj << /D [3185 0 R /XYZ 56.693 190.966 null] >> endobj 3195 0 obj << /D [3185 0 R /XYZ 56.693 185.841 null] >> endobj 3196 0 obj << /D [3185 0 R /XYZ 56.693 188.73 null] >> endobj 3197 0 obj << /D [3185 0 R /XYZ 56.693 177.771 null] >> endobj 3198 0 obj << /D [3185 0 R /XYZ 56.693 166.813 null] >> endobj 3184 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3203 0 obj << /Length 1451 /Filter /FlateDecode >> stream xڽYr6}WR'qOu[g&̤yp2Fe] 7ٔi&)=AsDdpv-*IH[j&3t9<|1dxM?|4^Mhwg ;X6Bâ" &h3<j4}2w@aAto LMo_ wt_E̸%4s@nOL$Bc)%14ZV_V'qliX&`[Ur,7eYo6O5o;/ sHXlL)RzhzX1ir B1L4/4D CHT*C2- \XLhՒ[VBUy8ļL:0C%UG;rAzd@-YYZ"q 2|j÷Fw(/DYvt5s@Pq07*̨@ [cQh6PH°nt_*.uYe-y "D(ThHƻd1koSeO*~O6 %;V2\eKXR&|^ L( 4 @T֠*VPFT[-RzֺMZ Ğ.=3Jt K Os#%ngzf"$KrsdX>}v=(|I n/vGW]~'Qcf^. MuMJ8hr;!)6A~q26!f~Je 81jEJlkK)w9n ׆umo3i'.׾G}6UJ;Je '.K޶SX?RujLxt2Rd3m>8k')Ed4*($f鴱s&Opknckc(rص ,5` T"[u7Q:QZ-TPy-6E%WFKGu_:&=1H@]H['y=g֩$F~H)5YCM[ Xv`Ŀ9;/p^B`„uên9ԚUR~f P @>;\g Nл!% *|,VNw|B*4Y|].Cx'tѱ Ћe4~uoٓ·;!YXO`0ML&@bAM5~mA^Mpx_,255̈D:D sYaD0LDyʬ^ ;|cNHhD5~mABS޲.G8Z|Rp*.<,i7:pgCϮp>?ꪤ endstream endobj 3202 0 obj << /Type /Page /Contents 3203 0 R /Resources 3201 0 R /MediaBox [0 0 595.276 841.89] /Parent 3179 0 R /Annots [ 3199 0 R 3200 0 R ] >> endobj 3199 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.186 418.262 232.452 429.166] /A << /S /GoTo /D (BtMachine) >> >> endobj 3200 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [249.827 418.262 280.75 429.166] /A << /S /GoTo /D (BtWire) >> >> endobj 3204 0 obj << /D [3202 0 R /XYZ -11.232 878.039 null] >> endobj 3046 0 obj << /D [3202 0 R /XYZ 56.693 677.762 null] >> endobj 3205 0 obj << /D [3202 0 R /XYZ 56.693 671.784 null] >> endobj 3206 0 obj << /D [3202 0 R /XYZ 56.693 674.673 null] >> endobj 3207 0 obj << /D [3202 0 R /XYZ 56.693 663.714 null] >> endobj 3208 0 obj << /D [3202 0 R /XYZ 56.693 652.755 null] >> endobj 3209 0 obj << /D [3202 0 R /XYZ 56.693 488.022 null] >> endobj 3092 0 obj << /D [3202 0 R /XYZ 56.693 462.66 null] >> endobj 3210 0 obj << /D [3202 0 R /XYZ 56.693 456.683 null] >> endobj 3211 0 obj << /D [3202 0 R /XYZ 56.693 459.572 null] >> endobj 3212 0 obj << /D [3202 0 R /XYZ 56.693 376.936 null] >> endobj 3083 0 obj << /D [3202 0 R /XYZ 56.693 351.574 null] >> endobj 3213 0 obj << /D [3202 0 R /XYZ 56.693 345.596 null] >> endobj 3214 0 obj << /D [3202 0 R /XYZ 56.693 348.486 null] >> endobj 3084 0 obj << /D [3202 0 R /XYZ 56.693 250.506 null] >> endobj 3215 0 obj << /D [3202 0 R /XYZ 56.693 244.529 null] >> endobj 3216 0 obj << /D [3202 0 R /XYZ 56.693 247.418 null] >> endobj 3085 0 obj << /D [3202 0 R /XYZ 56.693 149.439 null] >> endobj 3217 0 obj << /D [3202 0 R /XYZ 56.693 143.462 null] >> endobj 3218 0 obj << /D [3202 0 R /XYZ 56.693 146.351 null] >> endobj 3201 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3222 0 obj << /Length 1509 /Filter /FlateDecode >> stream xZr6+::mL=E0eH&~{/R&)" +tRqpq=tB_N^h,)tBRae9%z;=Ȣgs&?Ox,NQrmf/_0U Ͱ&-)0@陿Pݠ&"އCD{+DݕOn3~.&NHsy61%VX.c0jcon"@㻈 2!]xQ<qq{o?x8Hqxrq_lٜSWK_~EyEv9|Q#)0)c#H\pcSOrۧPn)eTD{=t(1`h]D"`ŚV;P؃tĉ+||:2〓E%iկ"?9wKJ'4%A ºo4x((38HĵJT-Y .^~TuQ]_G.oZUCH9 #PxK{N`z<b ;uH9Q;Fh&Y$paf ͙w40grj*X3hv5W q*эVsYP˽rku+m;XY2s0,$/ [hlLcii} OUm1Mly+T,ަ:KJ pn=Z2FYKؐXӽ5V?G[KFm&681k]25Hyp#L `.!ZZ?`GGD^Rp3qsTCگćJ8S[Un*si!}=u0y gF:˱Kس @ s 0CGہ'yw@;9:=*FTRYWPڬ endstream endobj 3221 0 obj << /Type /Page /Contents 3222 0 R /Resources 3220 0 R /MediaBox [0 0 595.276 841.89] /Parent 3179 0 R /Annots [ 3219 0 R ] >> endobj 3219 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 284.727 125.813 295.631] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3223 0 obj << /D [3221 0 R /XYZ -16.307 878.039 null] >> endobj 3086 0 obj << /D [3221 0 R /XYZ 56.693 741.921 null] >> endobj 3224 0 obj << /D [3221 0 R /XYZ 56.693 735.943 null] >> endobj 3225 0 obj << /D [3221 0 R /XYZ 56.693 738.833 null] >> endobj 3087 0 obj << /D [3221 0 R /XYZ 56.693 640.853 null] >> endobj 3226 0 obj << /D [3221 0 R /XYZ 56.693 634.876 null] >> endobj 3227 0 obj << /D [3221 0 R /XYZ 56.693 637.765 null] >> endobj 3228 0 obj << /D [3221 0 R /XYZ 56.693 537.196 null] >> endobj 3088 0 obj << /D [3221 0 R /XYZ 56.693 511.834 null] >> endobj 3229 0 obj << /D [3221 0 R /XYZ 56.693 505.857 null] >> endobj 3230 0 obj << /D [3221 0 R /XYZ 56.693 508.746 null] >> endobj 3231 0 obj << /D [3221 0 R /XYZ 56.693 497.787 null] >> endobj 3232 0 obj << /D [3221 0 R /XYZ 56.693 486.828 null] >> endobj 3233 0 obj << /D [3221 0 R /XYZ 56.693 475.869 null] >> endobj 3089 0 obj << /D [3221 0 R /XYZ 56.693 245.99 null] >> endobj 3234 0 obj << /D [3221 0 R /XYZ 56.693 240.013 null] >> endobj 3235 0 obj << /D [3221 0 R /XYZ 56.693 242.902 null] >> endobj 3236 0 obj << /D [3221 0 R /XYZ 56.693 231.943 null] >> endobj 3237 0 obj << /D [3221 0 R /XYZ 56.693 220.984 null] >> endobj 3238 0 obj << /D [3221 0 R /XYZ 56.693 210.025 null] >> endobj 3220 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3247 0 obj << /Length 1362 /Filter /FlateDecode >> stream xY]oF}W#d?TMj>dW vjL_;00]%6̝{^c4EkmV1$V#m)}jKG/LU1)m<8t.>]^ *`f AeuFz?{("C[Dy#Ac;D#HRWp>Cw{dD"-(pe?QF„FqR>ݙܒcz*se".8Ί (VE2M!(j JѢQxw\aVdƛlkhUf3Pkے2ȘuaDcUɀHX`!3^x%iB[걬ئ`J#SoWMHS2d~B_0 >I-L"hQ<ĵ*^ZekU˯n @y4]/{q\`Vj uMx?4% S\_u=R^yR>lk,jUGb & T@a(bLPL Sا 6#;SBn5} f%͡Иvn`vnt`d0F0Zt&R(Habi'k"O\X+iw$kGx.+Dd"櫋bmkwdsP&$(5l$ ɩІ t޳S{I͏uo5:D20ӧLB(EX@o! MGH`-a!q^71l6%@?0H0Į}M;> endobj 3239 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 696.583 125.813 707.487] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3240 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 430.739 125.813 441.643] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3241 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 164.895 125.813 175.799] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3242 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.287 97.004 247.824 107.908] /A << /S /GoTo /D (BtSinkMachine) >> >> endobj 3248 0 obj << /D [3246 0 R /XYZ -11.232 878.039 null] >> endobj 3090 0 obj << /D [3246 0 R /XYZ 56.693 657.847 null] >> endobj 3249 0 obj << /D [3246 0 R /XYZ 56.693 651.869 null] >> endobj 3250 0 obj << /D [3246 0 R /XYZ 56.693 654.758 null] >> endobj 3251 0 obj << /D [3246 0 R /XYZ 56.693 643.799 null] >> endobj 3252 0 obj << /D [3246 0 R /XYZ 56.693 632.84 null] >> endobj 3253 0 obj << /D [3246 0 R /XYZ 56.693 621.882 null] >> endobj 3091 0 obj << /D [3246 0 R /XYZ 56.693 392.003 null] >> endobj 3254 0 obj << /D [3246 0 R /XYZ 56.693 386.025 null] >> endobj 3255 0 obj << /D [3246 0 R /XYZ 56.693 388.915 null] >> endobj 3256 0 obj << /D [3246 0 R /XYZ 56.693 377.956 null] >> endobj 3257 0 obj << /D [3246 0 R /XYZ 56.693 366.997 null] >> endobj 3258 0 obj << /D [3246 0 R /XYZ 56.693 356.038 null] >> endobj 73 0 obj << /D [3246 0 R /XYZ 56.693 150.882 null] >> endobj 3259 0 obj << /D [3246 0 R /XYZ 56.693 113.886 null] >> endobj 3245 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3279 0 obj << /Length 1698 /Filter /FlateDecode >> stream xڵZ]o6}P`HذtMź"e:&K,M.HdQR{/y{;ףJ*G!%pfK $sVgp>/w߿gm2/$zSxGϳWv<"ϕiH7(Il߈S!OTUƝ`=; Pj04{/ | EMK:Q^ds ( rersV]|#L!jUXau}/K ׫0ZOomgS:p&zAQ[ 3PyJ8 endstream endobj 3278 0 obj << /Type /Page /Contents 3279 0 R /Resources 3277 0 R /MediaBox [0 0 595.276 841.89] /Parent 3179 0 R /Annots [ 3243 0 R 3244 0 R 3260 0 R 3261 0 R 3262 0 R 3263 0 R 3264 0 R 3265 0 R 3266 0 R 3267 0 R 3268 0 R 3269 0 R 3270 0 R 3271 0 R 3272 0 R 3273 0 R 3274 0 R 3275 0 R 3276 0 R ] >> endobj 3243 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 716.417 105.769 730.364] /A << /S /GoTo /D (gboolean) >> >> endobj 3244 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 716.417 396.52 730.364] /A << /S /GoTo /D (bt-sink-bin-is-record-format-supported) >> >> endobj 3260 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 654.093 96.872 668.041] /A << /S /GoTo /D (gpointer) >> >> endobj 3261 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 654.093 263.639 668.041] /A << /S /GoTo /D (BtSinkBin--analyzers) >> >> endobj 3262 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 642.039 110.71 655.986] /A << /S /GoTo /D (GstElement) >> >> endobj 3263 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 642.039 266.927 655.986] /A << /S /GoTo /D (BtSinkBin--input-gain) >> >> endobj 3264 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 629.984 95.766 643.931] /A << /S /GoTo /D (gdouble) >> >> endobj 3265 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 629.984 285.388 643.931] /A << /S /GoTo /D (BtSinkBin--master-volume) >> >> endobj 3266 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 617.929 128.991 631.877] /A << /S /GoTo /D (BtSinkBinMode) >> >> endobj 3267 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 617.929 248.158 631.877] /A << /S /GoTo /D (BtSinkBin--mode) >> >> endobj 3268 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 605.874 85.794 619.822] /A << /S /GoTo /D (gchar) >> >> endobj 3269 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 605.874 292.411 619.822] /A << /S /GoTo /D (BtSinkBin--record-file-name) >> >> endobj 3270 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 593.819 163.153 607.767] /A << /S /GoTo /D (BtSinkBinRecordFormat) >> >> endobj 3271 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 593.819 281.343 607.767] /A << /S /GoTo /D (BtSinkBin--record-format) >> >> endobj 3272 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 531.496 273.682 545.444] /A << /S /GoTo /D (BtSinkBin-struct) >> >> endobj 3273 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 519.441 296.924 533.389] /A << /S /GoTo /D (BtSinkBinMode) >> >> endobj 3274 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 507.387 331.086 521.334] /A << /S /GoTo /D (BtSinkBinRecordFormat) >> >> endobj 3275 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.254 298.203 211.032 309.107] /A << /S /GoTo /D (GstChildProxy) >> >> endobj 3276 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [228.407 298.203 281.179 309.107] /A << /S /GoTo /D (GstBtTempo) >> >> endobj 3280 0 obj << /D [3278 0 R /XYZ -16.307 878.039 null] >> endobj 3281 0 obj << /D [3278 0 R /XYZ 56.693 741.323 null] >> endobj 3282 0 obj << /D [3278 0 R /XYZ 56.693 679 null] >> endobj 3283 0 obj << /D [3278 0 R /XYZ 56.693 556.403 null] >> endobj 3284 0 obj << /D [3278 0 R /XYZ 56.693 469.97 null] >> endobj 3285 0 obj << /D [3278 0 R /XYZ 56.693 463.992 null] >> endobj 3286 0 obj << /D [3278 0 R /XYZ 56.693 467.479 null] >> endobj 3287 0 obj << /D [3278 0 R /XYZ 56.693 456.521 null] >> endobj 3288 0 obj << /D [3278 0 R /XYZ 56.693 445.562 null] >> endobj 3289 0 obj << /D [3278 0 R /XYZ 56.693 434.603 null] >> endobj 3290 0 obj << /D [3278 0 R /XYZ 56.693 423.644 null] >> endobj 3291 0 obj << /D [3278 0 R /XYZ 56.693 412.685 null] >> endobj 3292 0 obj << /D [3278 0 R /XYZ 56.693 401.726 null] >> endobj 3293 0 obj << /D [3278 0 R /XYZ 56.693 390.767 null] >> endobj 3294 0 obj << /D [3278 0 R /XYZ 56.693 379.808 null] >> endobj 3295 0 obj << /D [3278 0 R /XYZ 56.693 315.104 null] >> endobj 3296 0 obj << /D [3278 0 R /XYZ 56.693 256.876 null] >> endobj 3297 0 obj << /D [3278 0 R /XYZ 56.693 198.648 null] >> endobj 3298 0 obj << /D [3278 0 R /XYZ 56.693 122.488 null] >> endobj 3299 0 obj << /D [3278 0 R /XYZ 56.693 97.126 null] >> endobj 3277 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3316 0 obj << /Length 1448 /Filter /FlateDecode >> stream xڽX[6~WBhC]oQ.2H *D)`}'h6}Dy+ifG8 b% Ynj İ *4ZD/KH[ݗ;^"aNJlXlL]vA4%fDGY"9L{:_܋}s9ܻjQ٧]-rQe^H#RvyQc=O&pzRe~fc0t@$q~< pg&'[wZq'8 ^>&'iWSɭKvP\Z9PC99cx_v&Le+;ӬGIda<QVE2%`OF!/#˕m\ŦRL8;oh OY}7Y&QH~炙l7eյVKw73W>f3Kj=_ufxNmkwT'LQujFIżR~q [R7Ά|  .wI%6c6Z +6EuR/9)@q02YTΏza1,Fft;[ޝ&R((gW,7jR-;5 |Snu}` t;g3R;џ^x;}y: FCBϠ_k\eWꉽi]m+ډ C18`_<|. hAt1b ß?\Lسܓ:m'}Mi=;6;xpa9;1Nll_xڿP|xߜMB0ާ/uI*-.yO7ͧ*NsX-{s~dN?o4 endstream endobj 3315 0 obj << /Type /Page /Contents 3316 0 R /Resources 3314 0 R /MediaBox [0 0 595.276 841.89] /Parent 3329 0 R /Annots [ 3310 0 R 3311 0 R 3312 0 R ] >> endobj 3310 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 569.824 83.303 578.671] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3311 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.077 456.681 144.303 467.585] /A << /S /GoTo /D (GstBin) >> >> endobj 3312 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 400.445 99.771 411.349] /A << /S /GoTo /D (BtSinkBin) >> >> endobj 3317 0 obj << /D [3315 0 R /XYZ -11.232 878.039 null] >> endobj 3318 0 obj << /D [3315 0 R /XYZ 56.693 761.903 null] >> endobj 3319 0 obj << /D [3315 0 R /XYZ 56.693 755.228 null] >> endobj 3320 0 obj << /D [3315 0 R /XYZ 56.693 744.269 null] >> endobj 3321 0 obj << /D [3315 0 R /XYZ 56.693 733.31 null] >> endobj 3322 0 obj << /D [3315 0 R /XYZ 56.693 526.441 null] >> endobj 3308 0 obj << /D [3315 0 R /XYZ 56.693 501.079 null] >> endobj 3323 0 obj << /D [3315 0 R /XYZ 56.693 495.101 null] >> endobj 3324 0 obj << /D [3315 0 R /XYZ 56.693 497.991 null] >> endobj 3303 0 obj << /D [3315 0 R /XYZ 56.693 417.944 null] >> endobj 3325 0 obj << /D [3315 0 R /XYZ 62.67 319.619 null] >> endobj 3326 0 obj << /D [3315 0 R /XYZ 62.67 283.753 null] >> endobj 3327 0 obj << /D [3315 0 R /XYZ 62.67 235.933 null] >> endobj 3328 0 obj << /D [3315 0 R /XYZ 62.67 158.224 null] >> endobj 3314 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3332 0 obj << /Length 1500 /Filter /FlateDecode >> stream xYKw8+EB3i:C9&&i>W~2uYOWߕtEt :'"b H*,GUS4-]F_.$ݳ28^mx%h~:97U Ͱ:)@$P]΋A?L\y#A# ,Aٟs$)+_9%x2xWC/YX8nRs|_ѽWyݒecBc RƩS,-dQq1R?8y!<=Twڶc܏єsi8VВ} dM[vo]NQZ"?9R^%*r(6o2w0.ܤ_j8 `v8R-jࢬZ}`GI4-^APeYY ue wةyA[ \^ReeEmo+pK0\縔dhs _t eYAe#tF\d~p[)K|nSS (۬k!n1M\_L<+Xع,r.*ͫ:Vi2Y׾{1Ϣ˩+ GE5$_N[lirNh>"'KƞNXX??wI\_&Z̘a.F-^x'b1)AbaT1WhQs\+d e' q>gRn5T2%'bTaDnzj-D|:SS~[{Pԕ obj.> endobj 3313 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 726.479 120.234 735.326] /A << /S /GoTo /D (BtSinkMachine) >> >> endobj 3333 0 obj << /D [3331 0 R /XYZ -16.307 878.039 null] >> endobj 3306 0 obj << /D [3331 0 R /XYZ 56.693 741.921 null] >> endobj 3334 0 obj << /D [3331 0 R /XYZ 62.67 655.551 null] >> endobj 3335 0 obj << /D [3331 0 R /XYZ 62.67 631.64 null] >> endobj 3336 0 obj << /D [3331 0 R /XYZ 62.67 619.586 null] >> endobj 3337 0 obj << /D [3331 0 R /XYZ 62.67 601.553 null] >> endobj 3338 0 obj << /D [3331 0 R /XYZ 62.67 583.62 null] >> endobj 3339 0 obj << /D [3331 0 R /XYZ 62.67 565.588 null] >> endobj 3340 0 obj << /D [3331 0 R /XYZ 62.67 547.655 null] >> endobj 3341 0 obj << /D [3331 0 R /XYZ 62.67 529.623 null] >> endobj 3342 0 obj << /D [3331 0 R /XYZ 62.67 493.757 null] >> endobj 3343 0 obj << /D [3331 0 R /XYZ 56.693 433.327 null] >> endobj 3300 0 obj << /D [3331 0 R /XYZ 56.693 407.965 null] >> endobj 3344 0 obj << /D [3331 0 R /XYZ 56.693 401.988 null] >> endobj 3345 0 obj << /D [3331 0 R /XYZ 56.693 404.877 null] >> endobj 3301 0 obj << /D [3331 0 R /XYZ 56.693 306.898 null] >> endobj 3346 0 obj << /D [3331 0 R /XYZ 56.693 300.92 null] >> endobj 3347 0 obj << /D [3331 0 R /XYZ 56.693 303.81 null] >> endobj 3302 0 obj << /D [3331 0 R /XYZ 56.693 205.831 null] >> endobj 3348 0 obj << /D [3331 0 R /XYZ 56.693 199.853 null] >> endobj 3349 0 obj << /D [3331 0 R /XYZ 56.693 202.742 null] >> endobj 3330 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3358 0 obj << /Length 1404 /Filter /FlateDecode >> stream xڽYnF}W(PH}u'(@`$Jf#.Eq咶HQ `=3svG"Yo4*d$xa20*ghSC*pM}Q%ElɩƁX,,Wi"!6(?qn=X` le"z`= 0FU FI/=&[vT Ý-L ш3^RJgtoiĄdMwadg OR $x}.D"ME|˵:ZP 0}˰+Zy6Dc !K I*ą5S!"p˳|k9/un߻cHĶH(N.%Hqc e.]$ _2N)q @ B1t.? Xgnωm{ E8RO`LJsԍu`fn☉E]rhճg^\l{4D(_eFu,\N,UMwRqbx. R.2NkuYl[]FbQ pQE4!B g"7_I+(Ubo);QTt ]Nj:b~hQ-C`-q~]fOdyw[PDJ.ƐU7^ׅJVR%k+ސAqZ#^֔G!TT@# Vo-AX55q7c)':`֚.@OMVH6`Ᏼ|)0n Jid\H[0y $O/Z dBC2#y,ewu)0&t H(1H菒31!P<< >}l/ދwDo14|eiz!Gmg"Ig-lK;DAz j(<+9<'[Ni3$ѲT(s1q]svy.w6f2 šuDߓ _cw0V X_W XS3K=8,`xRdhZN莃:'ƶpٯ'ptq}p`zg}m=Q0ī}]Gy۵(W1P#Ԗkj4LE_qЍ ݟ9Ap endstream endobj 3357 0 obj << /Type /Page /Contents 3358 0 R /Resources 3356 0 R /MediaBox [0 0 595.276 841.89] /Parent 3329 0 R /Annots [ 3350 0 R 3351 0 R 3352 0 R 3353 0 R ] >> endobj 3350 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 289.532 131.791 303.48] /A << /S /GoTo /D (BtSinkMachine) >> >> endobj 3351 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 289.532 321.004 303.48] /A << /S /GoTo /D (bt-sink-machine-new) >> >> endobj 3352 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 227.209 294.145 241.157] /A << /S /GoTo /D (BtSinkMachine-struct) >> >> endobj 3353 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 215.154 344.755 229.102] /A << /S /GoTo /D (BtSinkMachinePatternIndex) >> >> endobj 3359 0 obj << /D [3357 0 R /XYZ -11.232 878.039 null] >> endobj 3304 0 obj << /D [3357 0 R /XYZ 56.693 741.921 null] >> endobj 3360 0 obj << /D [3357 0 R /XYZ 56.693 735.943 null] >> endobj 3361 0 obj << /D [3357 0 R /XYZ 56.693 738.833 null] >> endobj 3305 0 obj << /D [3357 0 R /XYZ 56.693 622.921 null] >> endobj 3362 0 obj << /D [3357 0 R /XYZ 56.693 616.943 null] >> endobj 3363 0 obj << /D [3357 0 R /XYZ 56.693 619.832 null] >> endobj 3307 0 obj << /D [3357 0 R /XYZ 56.693 503.921 null] >> endobj 3364 0 obj << /D [3357 0 R /XYZ 56.693 497.943 null] >> endobj 3365 0 obj << /D [3357 0 R /XYZ 56.693 500.832 null] >> endobj 74 0 obj << /D [3357 0 R /XYZ 56.693 409.643 null] >> endobj 630 0 obj << /D [3357 0 R /XYZ 56.693 372.647 null] >> endobj 3366 0 obj << /D [3357 0 R /XYZ 56.693 314.439 null] >> endobj 3367 0 obj << /D [3357 0 R /XYZ 56.693 252.116 null] >> endobj 3368 0 obj << /D [3357 0 R /XYZ 56.693 177.738 null] >> endobj 3369 0 obj << /D [3357 0 R /XYZ 56.693 171.76 null] >> endobj 3370 0 obj << /D [3357 0 R /XYZ 56.693 175.247 null] >> endobj 3371 0 obj << /D [3357 0 R /XYZ 56.693 164.288 null] >> endobj 3372 0 obj << /D [3357 0 R /XYZ 56.693 153.329 null] >> endobj 3373 0 obj << /D [3357 0 R /XYZ 56.693 142.37 null] >> endobj 3374 0 obj << /D [3357 0 R /XYZ 56.693 131.411 null] >> endobj 3375 0 obj << /D [3357 0 R /XYZ 56.693 120.453 null] >> endobj 3376 0 obj << /D [3357 0 R /XYZ 56.693 109.494 null] >> endobj 3356 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3389 0 obj << /Length 1851 /Filter /FlateDecode >> stream xڽY[o6~C+6 X&K]%"KD5Mwx-YvًEQ;ؚ[غOFg~h(gMn-C^,?OIb͗/>Os~zQVzyަUZuT4Q>k2Vd=&:>ESI6}$ŦыU"kQ`+sx9 [ |{ia䄁u/W.-`Dz?}7 }7:J*OiDIs 6Zi1NjYq:YzrV[jjduW5Xdy*??ȥFn *۴Kt)H>H SE<ΛD7ϳK0NˊXz?lc3? iWيge񸱅kЎd`L"ʉIfVy0;VVY bs=}kkuY=i44<˳/kw+Yl{Ll-2^4 O؄@𺞲IjbMF,iZ.()0&6XioP)b᯺]>a. l3>FpSq{$!F6^*`ǎR @̻C8LURf ,"Lc髴ӣo!6iy(7*6*&xPg#_Ey REBC 4x>t郣}0B}gBl͇dpy/ф,H@^& Xy -7Ɂa\ԣ\8/Éx!`;s';c/ A.Hq%_~!]GFTLfAEU=2y#mK 3l:7}n Y8.pJ*x#{*P;q@tp"̯!jM2Ỷ$lᥚRuʛVLI ( ĆRXӘK1U6SRߏI`s4*DZD_n8E;n^:N`>qg \\с墓/]y!r :X^ZEnE |!(FKw"}~7trG鼩Q(RȓQ߄ ?W0OT{%x7)35}K  o ޺GSAzw)!Aގ)UL&q?T2&_#kbN^PNRk Қ*ͦh*@eotKa;oP]AΠꤺKm9XaUC1KRKm/` 'k&Q}&)uJט"K}/  e@$>$<*ގF 1@e&hIYr#}x:m+yYAf @cFDlj 4 Ӄ#@JM<`9DhV6\'PM,O=A'X "v IQE.;bWVrMC˝ě^ AsldN35uuhRNVc Qޤ{ZWMm'Ĵĵ|A|,ʝ.㪝E=5bCס #tQ5ofqu<چ՘&[vh d"5ÆL@5gBvXlD-_a"5`q.!"-;8BC{M/ Sh@crOWt0 nۻgZ`o?rn+5́ endstream endobj 3388 0 obj << /Type /Page /Contents 3389 0 R /Resources 3387 0 R /MediaBox [0 0 595.276 841.89] /Parent 3329 0 R /Annots [ 3354 0 R 3355 0 R 3380 0 R 3381 0 R 3382 0 R 3383 0 R 3384 0 R 3385 0 R 3386 0 R ] >> endobj 3354 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.718 724.422 231.495 735.326] /A << /S /GoTo /D (GstChildProxy) >> >> endobj 3355 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [248.87 724.422 305.098 735.326] /A << /S /GoTo /D (BtPersistence) >> >> endobj 3380 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [429.739 607.966 473.813 618.869] /A << /S /GoTo /D (BtSinkBin) >> >> endobj 3381 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [112.144 440.715 233.689 450.996] /A << /S /GoTo /D (bt-setup-add-machine) >> >> endobj 3382 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [214.184 422.159 258.258 433.063] /A << /S /GoTo /D (BtSinkBin) >> >> endobj 3383 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.024 410.204 235.54 421.108] /A << /S /GoTo /D (BtSettings) >> >> endobj 3384 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 242.839 163.681 251.686] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3385 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.077 133.132 160.343 144.036] /A << /S /GoTo /D (BtMachine) >> >> endobj 3386 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [110.769 78.435 257.598 89.339] /A << /S /GoTo /D (bt-machine-get-pattern-by-index) >> >> endobj 3390 0 obj << /D [3388 0 R /XYZ -16.307 878.039 null] >> endobj 3391 0 obj << /D [3388 0 R /XYZ 56.693 741.323 null] >> endobj 3392 0 obj << /D [3388 0 R /XYZ 56.693 683.095 null] >> endobj 3393 0 obj << /D [3388 0 R /XYZ 56.693 624.867 null] >> endobj 3394 0 obj << /D [3388 0 R /XYZ 56.693 554.684 null] >> endobj 3377 0 obj << /D [3388 0 R /XYZ 56.693 529.322 null] >> endobj 3395 0 obj << /D [3388 0 R /XYZ 56.693 523.345 null] >> endobj 3396 0 obj << /D [3388 0 R /XYZ 56.693 526.234 null] >> endobj 3397 0 obj << /D [3388 0 R /XYZ 56.693 515.275 null] >> endobj 3398 0 obj << /D [3388 0 R /XYZ 56.693 504.316 null] >> endobj 3399 0 obj << /D [3388 0 R /XYZ 56.693 493.357 null] >> endobj 3400 0 obj << /D [3388 0 R /XYZ 56.693 200.36 null] >> endobj 3378 0 obj << /D [3388 0 R /XYZ 56.693 175.632 null] >> endobj 3401 0 obj << /D [3388 0 R /XYZ 56.693 170.287 null] >> endobj 3402 0 obj << /D [3388 0 R /XYZ 56.693 173.176 null] >> endobj 3379 0 obj << /D [3388 0 R /XYZ 56.693 95.301 null] >> endobj 3387 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3447 0 obj << /Length 1822 /Filter /FlateDecode >> stream xڵ[wFzvɱڴ9IG@@4M>}g%%e'dYogg'{zٵ2AFR=!4S~F3CbG hx\cݟbFϮ54̚"4[$ Jϒ}w5}x {E ʄ7}}﵇7? eCvOԦ Dm< "Dx( Dnތo/?BWo{ƤohOj6]capҔzv0Tx2N&Zl@WHG+?>5A֚|dIΉ6bc`80`<)2Z7U'L".'~ qNqpTpX1'`ʶ'ކ+*h6Fը!9RLW[x《&x\nd68.grwp~BDf".L:Cͧyc;>,OF7y."?RlKpn'?ӫ`힚\Ok>V׶_k_ ꄷnequDd~hv FJ!m'{bR f{d"' !q<82FUca:XHEb5i*5 \l =mI V2ÆȲ|h;m:a2}1kHe}8HMn .cBadsULҘLyi!ZCHꍴ Hcֺ8dEqX͉Jv`iL iqXIu6QO *o#XCihPu5r ABA7"JC]|$(hW#!'* v5 eZnB[l U AL*wk[0-WC܏7IoD*ld1ˆDXVjUfʀ5VS9)N%UY~FA%ԜzVoJ kF[b|li]9lMt6 .+o.jl1`@˖qPCO}0/i 7pv2-ĤrJrJP7V6-ӌznFJsd8YQƒl1;eUQblL1FP7j}!\|_>fOLTrD4 gkpK'+i֑PBz#(iHec#("d4UNVBSp-U-7NpK̙-bONVSLڏ\ ƪ*jh3H9ވ:FZ(WŶKE#%Mb )+0ϑ)ވ7FZpJ%/oBC,dnXQ1Vli8So1X!aXv#`? V]AhC4VUNVC58ЪmSMpꍜ1 sm 1iA;&0ʡ)hXXRv9H 4C\ ZAtr Hb+`,'MLG;K\=kY $_䤮=_emPtj6wf&5)=AB\%ң$EVUϲN "X8z ĉʛY);/lYӝ$.Na姜GH endstream endobj 3446 0 obj << /Type /Page /Contents 3447 0 R /Resources 3445 0 R /MediaBox [0 0 595.276 841.89] /Parent 3329 0 R /Annots [ 3403 0 R 3404 0 R 3405 0 R 3406 0 R 3407 0 R 3408 0 R 3409 0 R 3410 0 R 3411 0 R 3412 0 R 3413 0 R 3414 0 R 3415 0 R 3416 0 R 3417 0 R 3418 0 R 3419 0 R 3420 0 R 3421 0 R 3422 0 R 3423 0 R 3424 0 R 3425 0 R 3426 0 R 3427 0 R 3428 0 R 3429 0 R 3430 0 R 3431 0 R 3432 0 R 3433 0 R 3434 0 R 3435 0 R 3436 0 R 3437 0 R 3438 0 R 3439 0 R 3440 0 R 3441 0 R 3442 0 R 3443 0 R 3444 0 R ] >> endobj 3403 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [257.418 500.334 305.906 511.238] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 3404 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [308.895 500.334 342.996 511.238] /A << /S /GoTo /D (BtSetup) >> >> endobj 3405 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.985 500.334 395.569 511.238] /A << /S /GoTo /D (BtSequence) >> >> endobj 3406 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [412.944 500.334 465.805 511.238] /A << /S /GoTo /D (BtWavetable) >> >> endobj 3407 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 434.101 105.769 448.048] /A << /S /GoTo /D (gboolean) >> >> endobj 3408 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 434.101 302.444 448.048] /A << /S /GoTo /D (bt-song-continue) >> >> endobj 3409 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 422.046 99.143 435.994] /A << /S /GoTo /D (BtSong) >> >> endobj 3410 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 422.046 284.481 435.994] /A << /S /GoTo /D (bt-song-new) >> >> endobj 3411 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 409.991 105.769 423.939] /A << /S /GoTo /D (gboolean) >> >> endobj 3412 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 409.991 290.818 423.939] /A << /S /GoTo /D (bt-song-pause) >> >> endobj 3413 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 397.936 105.769 411.884] /A << /S /GoTo /D (gboolean) >> >> endobj 3414 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 397.936 285.288 411.884] /A << /S /GoTo /D (bt-song-play) >> >> endobj 3415 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 385.881 105.769 399.829] /A << /S /GoTo /D (gboolean) >> >> endobj 3416 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 385.881 284.74 399.829] /A << /S /GoTo /D (bt-song-stop) >> >> endobj 3417 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 373.827 105.769 387.774] /A << /S /GoTo /D (gboolean) >> >> endobj 3418 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 373.827 372.73 387.774] /A << /S /GoTo /D (bt-song-update-playback-position) >> >> endobj 3419 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 311.504 120.124 325.451] /A << /S /GoTo /D (BtApplication) >> >> endobj 3420 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 311.504 240.407 325.451] /A << /S /GoTo /D (BtSong--app) >> >> endobj 3421 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 299.449 91.9 313.396] /A << /S /GoTo /D (GstBin) >> >> endobj 3422 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 299.449 238.753 313.396] /A << /S /GoTo /D (BtSong--bin) >> >> endobj 3423 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 287.394 100.19 301.342] /A << /S /GoTo /D (gboolean) >> >> endobj 3424 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 287.394 250.927 301.342] /A << /S /GoTo /D (BtSong--is-idle) >> >> endobj 3425 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 275.339 100.19 289.287] /A << /S /GoTo /D (gboolean) >> >> endobj 3426 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 275.339 265.871 289.287] /A << /S /GoTo /D (BtSong--is-playing) >> >> endobj 3427 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 263.284 126.211 277.232] /A << /S /GoTo /D (BtSinkMachine) >> >> endobj 3428 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 263.284 252.581 277.232] /A << /S /GoTo /D (BtSong--master) >> >> endobj 3429 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 251.229 91.343 265.177] /A << /S /GoTo /D (gulong) >> >> endobj 3430 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 251.229 260.332 265.177] /A << /S /GoTo /D (BtSong--play-pos) >> >> endobj 3431 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 239.175 95.766 253.122] /A << /S /GoTo /D (gdouble) >> >> endobj 3432 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 239.175 261.428 253.122] /A << /S /GoTo /D (BtSong--play-rate) >> >> endobj 3433 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 227.12 111.258 241.067] /A << /S /GoTo /D (BtSequence) >> >> endobj 3434 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 227.12 262.534 241.067] /A << /S /GoTo /D (BtSong--sequence) >> >> endobj 3435 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 215.065 95.776 229.013] /A << /S /GoTo /D (BtSetup) >> >> endobj 3436 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 215.065 247.052 229.013] /A << /S /GoTo /D (BtSong--setup) >> >> endobj 3437 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 203.01 110.162 216.958] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 3438 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 203.01 264.207 216.958] /A << /S /GoTo /D (BtSong--song-info) >> >> endobj 3439 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 190.955 104.075 204.903] /A << /S /GoTo /D (BtSongIO) >> >> endobj 3440 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 190.955 255.909 204.903] /A << /S /GoTo /D (BtSong--song-io) >> >> endobj 3441 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 178.9 114.536 192.848] /A << /S /GoTo /D (BtWavetable) >> >> endobj 3442 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 178.9 265.961 192.848] /A << /S /GoTo /D (BtSong--wavetable) >> >> endobj 3443 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 116.577 261.498 130.525] /A << /S /GoTo /D (BtSong-struct) >> >> endobj 3444 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 104.522 283.086 118.47] /A << /S /GoTo /D (BtSongClass) >> >> endobj 3448 0 obj << /D [3446 0 R /XYZ -11.232 878.039 null] >> endobj 3449 0 obj << /D [3446 0 R /XYZ 62.67 705.809 null] >> endobj 3450 0 obj << /D [3446 0 R /XYZ 62.67 657.988 null] >> endobj 3451 0 obj << /D [3446 0 R /XYZ 62.67 598.212 null] >> endobj 75 0 obj << /D [3446 0 R /XYZ 56.693 552.782 null] >> endobj 144 0 obj << /D [3446 0 R /XYZ 56.693 517.215 null] >> endobj 3452 0 obj << /D [3446 0 R /XYZ 56.693 459.007 null] >> endobj 3453 0 obj << /D [3446 0 R /XYZ 56.693 336.41 null] >> endobj 3454 0 obj << /D [3446 0 R /XYZ 56.693 141.484 null] >> endobj 3445 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3489 0 obj << /Length 1760 /Filter /FlateDecode >> stream xڽY[o6~P`EuvMbCڢe:*K$7Mwx,)rQy;BcɓGN| "8}.ŗ}RϞ4/r%KmE:}?yvb'Sb=NQqXTK$gAB&M'&FaT;f=vΕq|eS n/$|~۟OP0ȸ6@~Kd))n<%]ֵQ+|!=3} J<(R:ޛ Pa,`5XCV PDV ,/Ӹk6ySX[u>J]aTyqۗ$ǂ$mD|PGwOKP=Yxgǜs8r"ri< h+ʸw ̚uf% =!z|-*j5,@d]g6, jgJvi ع^,VsZY?bQ?*.NnOg nbski:꼘rJ}L8jd4fۈL\Jij>fLVnj3{|-kH z[ t4Fk@jEl'gJb@X=TFĵ['>mGLGSojVmi_Z,Q<]Z~Q0B|oἚk aw;-E-쉮2U^k+C`"ƌ")7\,v~ա􈝼OwxW77Ƀ3bLfoA/::aLS9!#28 XdJʏ+=¼/:׶Gutn0H+h{7!E*p|TٞAWIe7op%x[;7ˤRXck!⏦p&~v~F : ZU{m6^R[YH!Y,8[mf_;vW+\F]Y|P 4&T>?r`~x0N D8> endobj 3475 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.07 646.268 193.299 657.172] /A << /S /GoTo /D (BtPersistence) >> >> endobj 3476 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.255 529.812 416.357 540.716] /A << /S /GoTo /D (BtSetup) >> >> endobj 3477 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [108.681 517.857 158.264 528.761] /A << /S /GoTo /D (BtSequence) >> >> endobj 3478 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.97 517.857 347.831 528.761] /A << /S /GoTo /D (BtWavetable) >> >> endobj 3479 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [496.635 517.857 545.123 528.761] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 3480 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.139 487.969 214.54 498.873] /A << /S /GoTo /D (BtSongIO) >> >> endobj 3481 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.824 470.036 249.974 480.94] /A << /S /GoTo /D (BtSong--play-pos) >> >> endobj 3482 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.679 452.104 119.925 463.008] /A << /S /GoTo /D (BtSong--play-rate) >> >> endobj 3483 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 207.982 83.303 216.829] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3484 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [383.29 111.831 417.391 122.735] /A << /S /GoTo /D (BtSetup) >> >> endobj 3485 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [420.926 111.831 470.51 122.735] /A << /S /GoTo /D (BtSequence) >> >> endobj 3486 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [488.758 111.831 537.246 122.735] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 3490 0 obj << /D [3488 0 R /XYZ -16.307 878.039 null] >> endobj 3491 0 obj << /D [3488 0 R /XYZ 56.693 741.323 null] >> endobj 3492 0 obj << /D [3488 0 R /XYZ 56.693 735.346 null] >> endobj 3493 0 obj << /D [3488 0 R /XYZ 56.693 738.833 null] >> endobj 3494 0 obj << /D [3488 0 R /XYZ 56.693 727.874 null] >> endobj 3495 0 obj << /D [3488 0 R /XYZ 56.693 663.17 null] >> endobj 3496 0 obj << /D [3488 0 R /XYZ 56.693 604.942 null] >> endobj 3497 0 obj << /D [3488 0 R /XYZ 56.693 546.714 null] >> endobj 3498 0 obj << /D [3488 0 R /XYZ 56.693 410.777 null] >> endobj 3455 0 obj << /D [3488 0 R /XYZ 56.693 385.415 null] >> endobj 3499 0 obj << /D [3488 0 R /XYZ 56.693 379.438 null] >> endobj 3500 0 obj << /D [3488 0 R /XYZ 56.693 382.327 null] >> endobj 3501 0 obj << /D [3488 0 R /XYZ 56.693 371.368 null] >> endobj 628 0 obj << /D [3488 0 R /XYZ 56.693 167.189 null] >> endobj 3502 0 obj << /D [3488 0 R /XYZ 56.693 161.211 null] >> endobj 3503 0 obj << /D [3488 0 R /XYZ 56.693 164.1 null] >> endobj 3504 0 obj << /D [3488 0 R /XYZ 56.693 153.141 null] >> endobj 3487 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3511 0 obj << /Length 1259 /Filter /FlateDecode >> stream x]6\tLgӲ&wIv&.0e1ͤ_c[l 3H@P {oFkh8CŮHi*Sl~McIܤ_8(Yy_me[ d] Ű' +RƠB=u>("L\SAS,-33=n2NJ$ZdkI]̨@ kO8@Vc|h9@!Lֶ3U njb7w&`0%f6ѕ7y e!P!1P,˦?C{ Fub5q cݭ\Urlm_'17Ec|Ҿ3U-gm a3E?I: DPp{Z$Z =Um66p q^U5mι֯\~za -I}%W] DILԮy@QvωSqJ')Z5Q bz}SƠ2\ahh Y[F\pftn0r1E*^a^g4bk)ML`{H#|8.o=s&n[-wAWM!>ΗaJR~Z&݋{ClOJqq!^)̪QBDGFm rm$XA`vE-=geA8e_)^=aΜ[շt'82,c Zi95\Du52nm4pw5=a$XlH(jq6?ؓ$!/[dGfj~NdH EJ,c- ۍd»t Js7Gl 3> endobj 3505 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 587.857 163.681 596.704] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3506 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 369.63 83.303 378.477] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3507 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [389.322 273.479 440.011 284.383] /A << /S /GoTo /D (BtSong--is-playing) >> >> endobj 3508 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 151.403 83.303 160.25] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3512 0 obj << /D [3510 0 R /XYZ -11.232 878.039 null] >> endobj 3513 0 obj << /D [3510 0 R /XYZ 56.693 761.903 null] >> endobj 3514 0 obj << /D [3510 0 R /XYZ 56.693 755.228 null] >> endobj 3515 0 obj << /D [3510 0 R /XYZ 56.693 744.269 null] >> endobj 3516 0 obj << /D [3510 0 R /XYZ 56.693 733.31 null] >> endobj 3456 0 obj << /D [3510 0 R /XYZ 56.693 547.063 null] >> endobj 3517 0 obj << /D [3510 0 R /XYZ 56.693 541.086 null] >> endobj 3518 0 obj << /D [3510 0 R /XYZ 56.693 543.975 null] >> endobj 3519 0 obj << /D [3510 0 R /XYZ 56.693 533.016 null] >> endobj 3457 0 obj << /D [3510 0 R /XYZ 56.693 328.837 null] >> endobj 3520 0 obj << /D [3510 0 R /XYZ 56.693 322.859 null] >> endobj 3521 0 obj << /D [3510 0 R /XYZ 56.693 325.748 null] >> endobj 3522 0 obj << /D [3510 0 R /XYZ 56.693 314.789 null] >> endobj 3458 0 obj << /D [3510 0 R /XYZ 56.693 110.61 null] >> endobj 3523 0 obj << /D [3510 0 R /XYZ 56.693 104.632 null] >> endobj 3524 0 obj << /D [3510 0 R /XYZ 56.693 107.522 null] >> endobj 3525 0 obj << /D [3510 0 R /XYZ 56.693 96.563 null] >> endobj 3509 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3536 0 obj << /Length 1241 /Filter /FlateDecode >> stream xX[sF~ׯGSĞfik+}q2hҤ޳b UV|򝅠Db>9lShDRae8=^l}+dzQ=\8? M>ߞ_ Vq+VhAi%2t0=whif><Atk lEOۏoK`'fxA7%F8nl]87G: .{ʖu>{ne`3Nq_fL<|8Q9-ܖb.5j6qƘHi93ml1 uAb`&)cɰu1,cI<g㍔h@y pu2H*I0$*q Z2@8]_Sms V^.ܻ({QY6 fLm맻uVU@$uF^Z±&Im̂g%UQ6Ayѐ@XVSX.f-uaѰ+Ka)4:QH(UA*V;&6,K0mˀIö)$} RW?UMH!UuWJReЫ]75T0 $9,qF~ק  ?w3jhs+G6*9ܹT4"6'˙~tϐ6[8VT&۲V (gv_W|n~a{&&7Q6 r:jX^>eX#~Gth`ALG\)<=|d`2\֮C2kjۖ7AvdnNBw60")3eNV-t a=Nw8y`NOakꀨ( ^< _\5nTzw> endobj 3527 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 626.711 83.303 635.558] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3528 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.215 530.56 295.365 541.464] /A << /S /GoTo /D (BtSong--play-pos) >> >> endobj 3529 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 406.427 87.398 417.331] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 3530 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.679 295.341 223.167 306.245] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 3531 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [226.156 295.341 260.258 306.245] /A << /S /GoTo /D (BtSetup) >> >> endobj 3532 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.632 295.341 327.216 306.245] /A << /S /GoTo /D (BtSequence) >> >> endobj 3533 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 116.834 142.53 130.782] /A << /S /GoTo /D (GObjectClass) >> >> endobj 3537 0 obj << /D [3535 0 R /XYZ -16.307 878.039 null] >> endobj 3459 0 obj << /D [3535 0 R /XYZ 56.693 585.918 null] >> endobj 3538 0 obj << /D [3535 0 R /XYZ 56.693 579.94 null] >> endobj 3539 0 obj << /D [3535 0 R /XYZ 56.693 582.829 null] >> endobj 3540 0 obj << /D [3535 0 R /XYZ 56.693 571.87 null] >> endobj 3541 0 obj << /D [3535 0 R /XYZ 56.693 365.101 null] >> endobj 3473 0 obj << /D [3535 0 R /XYZ 56.693 339.739 null] >> endobj 3542 0 obj << /D [3535 0 R /XYZ 56.693 333.761 null] >> endobj 3543 0 obj << /D [3535 0 R /XYZ 56.693 336.651 null] >> endobj 3474 0 obj << /D [3535 0 R /XYZ 56.693 256.604 null] >> endobj 3544 0 obj << /D [3535 0 R /XYZ 56.693 250.627 null] >> endobj 3545 0 obj << /D [3535 0 R /XYZ 56.693 253.516 null] >> endobj 3546 0 obj << /D [3535 0 R /XYZ 56.693 242.557 null] >> endobj 3547 0 obj << /D [3535 0 R /XYZ 56.693 231.598 null] >> endobj 3534 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3551 0 obj << /Length 1159 /Filter /FlateDecode >> stream xYKs6W(u*G=؉inX3L$I:.ʖhL=x-v]-A烓L[dULIH[(5Ez?{Ety4Q@GWV1}ZJ ݈D (j9+,y:Upp KQE:,DJqCNje ޛߑi@Svm9vfl$XeioАߍ:+ L}!y2NKHznϤ|)R`\ܓVgq+zO6lzaVWtReN'_φnl+~HΊCS|w_ԁQJ^*_C> endobj 3552 0 obj << /D [3550 0 R /XYZ -11.232 878.039 null] >> endobj 3553 0 obj << /D [3550 0 R /XYZ 56.693 741.323 null] >> endobj 3460 0 obj << /D [3550 0 R /XYZ 56.693 715.961 null] >> endobj 3554 0 obj << /D [3550 0 R /XYZ 56.693 709.984 null] >> endobj 3555 0 obj << /D [3550 0 R /XYZ 56.693 712.873 null] >> endobj 3461 0 obj << /D [3550 0 R /XYZ 56.693 614.894 null] >> endobj 3556 0 obj << /D [3550 0 R /XYZ 56.693 608.916 null] >> endobj 3557 0 obj << /D [3550 0 R /XYZ 56.693 611.806 null] >> endobj 3462 0 obj << /D [3550 0 R /XYZ 56.693 513.827 null] >> endobj 3558 0 obj << /D [3550 0 R /XYZ 56.693 507.849 null] >> endobj 3559 0 obj << /D [3550 0 R /XYZ 56.693 510.738 null] >> endobj 3463 0 obj << /D [3550 0 R /XYZ 56.693 394.827 null] >> endobj 3560 0 obj << /D [3550 0 R /XYZ 56.693 388.849 null] >> endobj 3561 0 obj << /D [3550 0 R /XYZ 56.693 391.738 null] >> endobj 3464 0 obj << /D [3550 0 R /XYZ 56.693 275.826 null] >> endobj 3562 0 obj << /D [3550 0 R /XYZ 56.693 269.849 null] >> endobj 3563 0 obj << /D [3550 0 R /XYZ 56.693 272.738 null] >> endobj 3465 0 obj << /D [3550 0 R /XYZ 56.693 174.759 null] >> endobj 3564 0 obj << /D [3550 0 R /XYZ 56.693 168.781 null] >> endobj 3565 0 obj << /D [3550 0 R /XYZ 56.693 171.671 null] >> endobj 3549 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3583 0 obj << /Length 1129 /Filter /FlateDecode >> stream x͙K6 ! eT*0Ò`3=䷧% ^O$٨[Z hL[mV1& $V#mMaxS~R_I2)< E'Y[.t8y35PS+4FhkL6qhNhdi@aAtg rfOGDOHRWOgNIɇ$L)[j6&?Gy\$ *u+P&126I.a;H85X4טZ{/Œ İ5 Zw UMS7jmױ9g}] [fSRŇI0i,3b.!>~|B_»}K:eNJDV2\γrJ.C.hkؿWk2ge->T/ɧ "gAm/?"N])Ad*,dS4FL_J=iԺ"|̵8B))y\?]3c3 qC7;ۊ1Z)9Q{6l9V:91)^a(5W>6a:eոUv6P}ib {19=ދ5w#ăMXw/5WmۤbCcq\16RyDk)O&eJ.3k s  YwdBXux/&s9I6 ;D"C'F:E^wP"nHZ]1=(3_%AzqͿ n endstream endobj 3582 0 obj << /Type /Page /Contents 3583 0 R /Resources 3581 0 R /MediaBox [0 0 595.276 841.89] /Parent 3526 0 R /Annots [ 3566 0 R ] >> endobj 3566 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [258.962 129.209 290.852 140.113] /A << /S /GoTo /D (BtSong) >> >> endobj 3584 0 obj << /D [3582 0 R /XYZ -16.307 878.039 null] >> endobj 3466 0 obj << /D [3582 0 R /XYZ 56.693 741.921 null] >> endobj 3585 0 obj << /D [3582 0 R /XYZ 56.693 737.593 null] >> endobj 3586 0 obj << /D [3582 0 R /XYZ 56.693 740.483 null] >> endobj 3467 0 obj << /D [3582 0 R /XYZ 56.693 617.249 null] >> endobj 3587 0 obj << /D [3582 0 R /XYZ 56.693 612.921 null] >> endobj 3588 0 obj << /D [3582 0 R /XYZ 56.693 615.81 null] >> endobj 3468 0 obj << /D [3582 0 R /XYZ 56.693 525.142 null] >> endobj 3589 0 obj << /D [3582 0 R /XYZ 56.693 520.814 null] >> endobj 3590 0 obj << /D [3582 0 R /XYZ 56.693 523.703 null] >> endobj 3469 0 obj << /D [3582 0 R /XYZ 56.693 433.035 null] >> endobj 3591 0 obj << /D [3582 0 R /XYZ 56.693 428.707 null] >> endobj 3592 0 obj << /D [3582 0 R /XYZ 56.693 431.597 null] >> endobj 3471 0 obj << /D [3582 0 R /XYZ 56.693 340.928 null] >> endobj 3593 0 obj << /D [3582 0 R /XYZ 56.693 336.6 null] >> endobj 3594 0 obj << /D [3582 0 R /XYZ 56.693 339.49 null] >> endobj 3472 0 obj << /D [3582 0 R /XYZ 56.693 248.821 null] >> endobj 3595 0 obj << /D [3582 0 R /XYZ 56.693 244.494 null] >> endobj 3596 0 obj << /D [3582 0 R /XYZ 56.693 247.383 null] >> endobj 76 0 obj << /D [3582 0 R /XYZ 56.693 179.787 null] >> endobj 1108 0 obj << /D [3582 0 R /XYZ 56.693 144.441 null] >> endobj 3597 0 obj << /D [3582 0 R /XYZ 56.693 90.243 null] >> endobj 3581 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3632 0 obj << /Length 2321 /Filter /FlateDecode >> stream xڵ[k۸>B]>ćФM: eX,y^>4#yl=CByϽ$EyssNFA"AEppDA*Ip>|A9owv?>].%QJCRP!cCC{CRnMjYe $S>r'1#/9 2LU=~@Hgv`PeR9N&.ƚ (=hQWK?*l8[V/3twwcAM7©Dv$Ӽjui ,"" *!{()DBOͮ8o]B1҉ EnsinY C"F ?bF$Pf2)9b j`tJiRZE9@4 uX M? F WhZVmf9V#5cx0H'ifHfLЌaK`&=_FQXD Q?&Hp&q5TFiuȨIbUSQ?L +gΙ݌\IFMz0^qǜ'ա&:N G t2AG!GtnP^-ь:l'*dA&(1HDaFԵԤhBj6?V@!dA&o@SB v-5 FPX2@@ AQ|0,BP_IA u(5KޚTOy€'D PX? #C~.C_+0HUcUs:s: #">1 :Q!DdѵO9ZE\|XF3KGX51  ~ bɑ0ZDi0MCϯs^J %ڧsgt7|22qvpGDA֑ 9:An 8a"ɜ$/$0bFԺ)D JBkmӥ/xwT K9&@dpK {a54֔ ƗBS!?l`Bl/\mdv*#wD~R.lS?]#09I9Jm7_üUߜ3հdQά^dEܱ8;ouQŠnfT$CJu'&4en><>Y?ybޝ[1KW*6௺Lt_~dÈ%Y\ڬisk~Wjhdxؕ\i6w yT4l_[9B/!.}qîp%ܗu(5\k]3R"ϟP<7|J_6:wB ש"3v3vatZD푭yLer2&MVdk@Ee8Fĕ+_kpmŷjuOܚL^5ZH#3j)tSW:[H—Nh jnmS=ڑlqQh݂> endobj 3567 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 747.457 115.741 761.405] /A << /S /GoTo /D (BtSongInfo) >> >> endobj 3568 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 747.457 305.512 761.405] /A << /S /GoTo /D (bt-song-info-new) >> >> endobj 3569 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 735.402 114.894 749.35] /A << /S /GoTo /D (gchar) >> >> endobj 3570 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 735.402 400.396 749.35] /A << /S /GoTo /D (bt-song-info-get-change-dts-in-local-tz) >> >> endobj 3571 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 723.347 84.747 737.295] /A << /S /GoTo /D (gint) >> >> endobj 3572 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 723.347 409.451 737.295] /A << /S /GoTo /D (bt-song-info-get-seconds-since-last-saved) >> >> endobj 3573 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 711.292 127.566 725.24] /A << /S /GoTo /D (GstClockTime) >> >> endobj 3574 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 711.292 339.534 725.24] /A << /S /GoTo /D (bt-song-info-tick-to-time) >> >> endobj 3575 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 699.238 96.922 713.185] /A << /S /GoTo /D (gulong) >> >> endobj 3576 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 699.238 339.534 713.185] /A << /S /GoTo /D (bt-song-info-time-to-tick) >> >> endobj 3577 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 687.183 86.76 701.13] /A << /S /GoTo /D (void) >> >> endobj 3578 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 687.183 357.805 701.13] /A << /S /GoTo /D (bt-song-info-time-to-m-s-ms) >> >> endobj 3579 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 675.128 86.76 689.076] /A << /S /GoTo /D (void) >> >> endobj 3580 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 675.128 355.036 689.076] /A << /S /GoTo /D (bt-song-info-tick-to-m-s-ms) >> >> endobj 3598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 612.805 85.794 626.753] /A << /S /GoTo /D (gchar) >> >> endobj 3599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 612.805 251.475 626.753] /A << /S /GoTo /D (BtSongInfo--author) >> >> endobj 3600 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 600.75 91.343 614.698] /A << /S /GoTo /D (gulong) >> >> endobj 3601 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 600.75 242.619 614.698] /A << /S /GoTo /D (BtSongInfo--bars) >> >> endobj 3602 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 588.695 91.343 602.643] /A << /S /GoTo /D (gulong) >> >> endobj 3603 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 588.695 243.734 602.643] /A << /S /GoTo /D (BtSongInfo--bpm) >> >> endobj 3604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 576.64 85.794 590.588] /A << /S /GoTo /D (gchar) >> >> endobj 3605 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 576.64 269.179 590.588] /A << /S /GoTo /D (BtSongInfo--change-dts) >> >> endobj 3606 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 564.586 85.794 578.533] /A << /S /GoTo /D (gchar) >> >> endobj 3607 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 564.586 264.745 578.533] /A << /S /GoTo /D (BtSongInfo--create-dts) >> >> endobj 3608 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 552.531 85.794 566.478] /A << /S /GoTo /D (gchar) >> >> endobj 3609 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 552.531 263.649 566.478] /A << /S /GoTo /D (BtSongInfo--file-name) >> >> endobj 3610 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 540.476 85.794 554.424] /A << /S /GoTo /D (gchar) >> >> endobj 3611 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 540.476 248.148 554.424] /A << /S /GoTo /D (BtSongInfo--genre) >> >> endobj 3612 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 528.421 85.794 542.369] /A << /S /GoTo /D (gchar) >> >> endobj 3613 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 528.421 242.071 542.369] /A << /S /GoTo /D (BtSongInfo--info) >> >> endobj 3614 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 516.366 85.794 530.314] /A << /S /GoTo /D (gchar) >> >> endobj 3615 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 516.366 247.6 530.314] /A << /S /GoTo /D (BtSongInfo--name) >> >> endobj 3616 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 504.311 93.564 518.259] /A << /S /GoTo /D (BtSong) >> >> endobj 3617 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 504.311 244.84 518.259] /A << /S /GoTo /D (BtSongInfo--song) >> >> endobj 3618 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 492.257 96.872 506.204] /A << /S /GoTo /D (gpointer) >> >> endobj 3619 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 492.257 250.379 506.204] /A << /S /GoTo /D (BtSongInfo--taglist) >> >> endobj 3620 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 480.202 94.112 494.149] /A << /S /GoTo /D (guint64) >> >> endobj 3621 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 480.202 277.487 494.149] /A << /S /GoTo /D (BtSongInfo--tick-duration) >> >> endobj 3622 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 468.147 91.343 482.095] /A << /S /GoTo /D (gulong) >> >> endobj 3623 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 468.147 238.753 482.095] /A << /S /GoTo /D (BtSongInfo--tpb) >> >> endobj 3624 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 405.824 278.095 419.771] /A << /S /GoTo /D (BtSongInfo-struct) >> >> endobj 3625 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [153.668 273.353 209.896 284.256] /A << /S /GoTo /D (BtPersistence) >> >> endobj 3626 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [243.853 156.896 279.599 167.8] /A << /S /GoTo /D (GObject) >> >> endobj 3627 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [420.352 127.009 448.905 137.912] /A << /S /GoTo /D (BtSongInfo--bpm) >> >> endobj 3628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 115.053 83.133 125.957] /A << /S /GoTo /D (BtSongInfo--bars) >> >> endobj 3629 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [101.469 115.053 125.041 125.957] /A << /S /GoTo /D (BtSongInfo--tpb) >> >> endobj 3633 0 obj << /D [3631 0 R /XYZ -11.232 878.039 null] >> endobj 3634 0 obj << /D [3631 0 R /XYZ 56.693 637.711 null] >> endobj 3635 0 obj << /D [3631 0 R /XYZ 56.693 430.73 null] >> endobj 3636 0 obj << /D [3631 0 R /XYZ 56.693 368.407 null] >> endobj 3637 0 obj << /D [3631 0 R /XYZ 56.693 362.43 null] >> endobj 3638 0 obj << /D [3631 0 R /XYZ 56.693 365.917 null] >> endobj 3639 0 obj << /D [3631 0 R /XYZ 56.693 354.958 null] >> endobj 3640 0 obj << /D [3631 0 R /XYZ 56.693 290.254 null] >> endobj 3641 0 obj << /D [3631 0 R /XYZ 56.693 232.026 null] >> endobj 3642 0 obj << /D [3631 0 R /XYZ 56.693 173.798 null] >> endobj 3630 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3666 0 obj << /Length 1442 /Filter /FlateDecode >> stream xZr6)p:5}IoԞfN4aeJD"SN:>$n%t/=hHĿ/FNmV1+$V#m)ߡӫ2]0IWum8]ǟ>>__ Uܑa#40(Ra6KFI瓿&"D\vAw5"XXV_n3~M~z"xm') ss.$K 7M腭?EEfLEϨ~ZA$T!0ˉ.-8D M,R̍K01lEyV5MG; 5X1c SR37b pR2 V57o!L*w x_?-7$-"K=JФ?=ʺT.pR+;%$o٘֕%n`U\-O ҖUOY^OwNk7TeT(B<7q{ NP\.3~0+ jɖfQ>p`cx!ExZl"g/ݓDFF*- paOov0 _'iyf'c왲Ia {ak)ћA.{δ֘~A.EBC`K,ÆuYo*6=<$50&G In6m,m|IPrz* 'S,0jYM<gA%#8LӢtoχK'2VmV} {zL (aYix^sc;ihža`eN sY3QC;F#\hY=aSC Dbo]68/rLd 0w{#h8D_ X}ΊT>A#Ju*_ =`J>(pò}9`*"P endstream endobj 3665 0 obj << /Type /Page /Contents 3666 0 R /Resources 3664 0 R /MediaBox [0 0 595.276 841.89] /Parent 3526 0 R /Annots [ 3663 0 R ] >> endobj 3663 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 538.528 163.681 547.375] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3667 0 obj << /D [3665 0 R /XYZ -16.307 878.039 null] >> endobj 3668 0 obj << /D [3665 0 R /XYZ 56.693 741.323 null] >> endobj 3643 0 obj << /D [3665 0 R /XYZ 56.693 715.961 null] >> endobj 3669 0 obj << /D [3665 0 R /XYZ 56.693 709.984 null] >> endobj 3670 0 obj << /D [3665 0 R /XYZ 56.693 712.873 null] >> endobj 3671 0 obj << /D [3665 0 R /XYZ 56.693 701.914 null] >> endobj 3644 0 obj << /D [3665 0 R /XYZ 56.693 497.735 null] >> endobj 3672 0 obj << /D [3665 0 R /XYZ 56.693 491.757 null] >> endobj 3673 0 obj << /D [3665 0 R /XYZ 56.693 494.646 null] >> endobj 3674 0 obj << /D [3665 0 R /XYZ 56.693 483.688 null] >> endobj 3675 0 obj << /D [3665 0 R /XYZ 56.693 472.729 null] >> endobj 3645 0 obj << /D [3665 0 R /XYZ 56.693 316.563 null] >> endobj 3676 0 obj << /D [3665 0 R /XYZ 56.693 310.586 null] >> endobj 3677 0 obj << /D [3665 0 R /XYZ 56.693 313.475 null] >> endobj 3678 0 obj << /D [3665 0 R /XYZ 56.693 302.516 null] >> endobj 3679 0 obj << /D [3665 0 R /XYZ 56.693 291.557 null] >> endobj 3646 0 obj << /D [3665 0 R /XYZ 56.693 140.071 null] >> endobj 3680 0 obj << /D [3665 0 R /XYZ 56.693 135.654 null] >> endobj 3681 0 obj << /D [3665 0 R /XYZ 56.693 138.543 null] >> endobj 3682 0 obj << /D [3665 0 R /XYZ 56.693 127.584 null] >> endobj 3683 0 obj << /D [3665 0 R /XYZ 56.693 116.625 null] >> endobj 3664 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F117 3684 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3687 0 obj << /Length 1531 /Filter /FlateDecode >> stream xZKF+rQv"%fW0gO3~4!d0?W]U]6AkDv6y-*lr-5EG0}-9,L$dzh2bN>ܼ7U Ͱ&M)3p6@v~QE}r`a ;C̸[iۈoSRlE 'a0r|WB)R)3Z]x&kf &AhpX7`HX\xoI e. SQT ( Rj  ʴpa*IΠ2:7ftFGbaeBt۟ql13i}eHoxx(եlw- K%S:@SNqaߓyF't'@HZ`p_-@ Dqfu%US U)T6' $/&ȀY/ e,W (1ऩ셄cY4kM;i,fVf~iVB”5Meu2H R9m &M/ӀM)Ā<pjF0`_oq3*Hm0j8ϪzV0ن回uI:-1˧^W$Ǻx.- $!6zxPU823oA_],M.z3a2kJȤhO-R°t*%JU%Uʸ7Fal cķ0Ƒ/ 2j6_|=#5aS2cٝ'ne9 endstream endobj 3686 0 obj << /Type /Page /Contents 3687 0 R /Resources 3685 0 R /MediaBox [0 0 595.276 841.89] /Parent 3705 0 R >> endobj 3688 0 obj << /D [3686 0 R /XYZ -11.232 878.039 null] >> endobj 3647 0 obj << /D [3686 0 R /XYZ 56.693 617.588 null] >> endobj 3689 0 obj << /D [3686 0 R /XYZ 56.693 611.611 null] >> endobj 3690 0 obj << /D [3686 0 R /XYZ 56.693 614.5 null] >> endobj 3691 0 obj << /D [3686 0 R /XYZ 56.693 603.541 null] >> endobj 3692 0 obj << /D [3686 0 R /XYZ 56.693 592.582 null] >> endobj 3648 0 obj << /D [3686 0 R /XYZ 56.693 388.203 null] >> endobj 3693 0 obj << /D [3686 0 R /XYZ 56.693 382.226 null] >> endobj 3694 0 obj << /D [3686 0 R /XYZ 56.693 385.115 null] >> endobj 3695 0 obj << /D [3686 0 R /XYZ 56.693 374.156 null] >> endobj 3696 0 obj << /D [3686 0 R /XYZ 56.693 363.197 null] >> endobj 3697 0 obj << /D [3686 0 R /XYZ 56.693 352.238 null] >> endobj 3698 0 obj << /D [3686 0 R /XYZ 56.693 341.28 null] >> endobj 3699 0 obj << /D [3686 0 R /XYZ 56.693 330.321 null] >> endobj 3649 0 obj << /D [3686 0 R /XYZ 56.693 132.013 null] >> endobj 3700 0 obj << /D [3686 0 R /XYZ 56.693 126.036 null] >> endobj 3701 0 obj << /D [3686 0 R /XYZ 56.693 128.925 null] >> endobj 3702 0 obj << /D [3686 0 R /XYZ 56.693 117.966 null] >> endobj 3703 0 obj << /D [3686 0 R /XYZ 56.693 107.007 null] >> endobj 3704 0 obj << /D [3686 0 R /XYZ 56.693 96.048 null] >> endobj 3685 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F117 3684 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3708 0 obj << /Length 1367 /Filter /FlateDecode >> stream xڽYM6+tԢѷlekJvIr`R6=䷧36clYzjAsDws 2(hp ۯ_4w0do$ˇhz_ 0܏@hXtH :߸N0ӣ0 7r&)|{&@_v#WHRW_{Ik͙VTaFߎPmO, KY:YPُE5IioIeLĵzG+Ed=Q<; X$@{,y)Xp>V']3e9> 3p?Yrlez{ ݚ#% @FO@Pʥx LZ5 &S VeKTn=;;#(>\ʲ5.г9&  mLh3HkB Z(`IlTY^3N&>Z͒s[̞m1iWif5Tc) K=pJ\ҒM'i^6WPb[4 ҖWi TWRZfeSeCcL,P43 $}SA98MlQ-M9tV6Q4?QVؘR`dynm׳#e)[t(IPW++ݍ֗ Rx!{ҡm A26}A"pᣳdcziӝko"+kPs7PsQRR.Pw'6_$)<LȾ9}92<:Fc&twMw=VX@`)SX?*ǽRX?,£N!ൗ> /R9ĽLiշ)ZZwq8Ͼ@m*C_߸tGuDر8l/ ~ 섔9D{Rf\U*nRlI)L!3{\_)b/Eber=wQZam:> @֘RRެN)꓀vU2J\UݔؓJm[%oVg .)y0/m<-r]wWS/vJz_?HZo endstream endobj 3707 0 obj << /Type /Page /Contents 3708 0 R /Resources 3706 0 R /MediaBox [0 0 595.276 841.89] /Parent 3705 0 R >> endobj 3709 0 obj << /D [3707 0 R /XYZ -16.307 878.039 null] >> endobj 3710 0 obj << /D [3707 0 R /XYZ 56.693 762.899 null] >> endobj 3711 0 obj << /D [3707 0 R /XYZ 56.693 751.94 null] >> endobj 3712 0 obj << /D [3707 0 R /XYZ 56.693 551.042 null] >> endobj 3662 0 obj << /D [3707 0 R /XYZ 56.693 525.681 null] >> endobj 3713 0 obj << /D [3707 0 R /XYZ 56.693 519.703 null] >> endobj 3714 0 obj << /D [3707 0 R /XYZ 56.693 522.592 null] >> endobj 3715 0 obj << /D [3707 0 R /XYZ 56.693 439.956 null] >> endobj 3650 0 obj << /D [3707 0 R /XYZ 56.693 414.594 null] >> endobj 3716 0 obj << /D [3707 0 R /XYZ 56.693 408.617 null] >> endobj 3717 0 obj << /D [3707 0 R /XYZ 56.693 411.506 null] >> endobj 3651 0 obj << /D [3707 0 R /XYZ 56.693 295.594 null] >> endobj 3718 0 obj << /D [3707 0 R /XYZ 56.693 289.616 null] >> endobj 3719 0 obj << /D [3707 0 R /XYZ 56.693 292.506 null] >> endobj 2180 0 obj << /D [3707 0 R /XYZ 56.693 176.594 null] >> endobj 3720 0 obj << /D [3707 0 R /XYZ 56.693 170.616 null] >> endobj 3721 0 obj << /D [3707 0 R /XYZ 56.693 173.505 null] >> endobj 3706 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3724 0 obj << /Length 951 /Filter /FlateDecode >> stream xYMo7W>ID=: i rHrXX"@ZU?ropȒ^>\o3i ؜L׷3ϽMfLndSkMfKYdBX! ކY(B~_m}ua)KF+D@^?OVVj)ͽbwji.6x39ȽJL>0"WR5ByO T}]p8M4[!tFW'u.6w{܂bVj5.P1lshǿ{quW:bap/|wgZҤbJG7GS/,u h6eOuܾjduS3G7= d5~`h-1rm|S JPSu(]66Y$ )~4febU6ezHݏaY37[IU@BaAl.XbԤ6uŢ v mȶ2c$0[nC ׯ`$r E ,À%c~tvU? "%˟Uޟ~ [{0γUhP~hRq/{Ti& GWW[CyzN3#ǙaSH=^B=6G=6"XB_mWKٙ$[%=rc~7wv8%*1EiERJ03lb鸤bYnM,rж7wcqgg[Y, p),9?=Bw  I&xVisɛ~Z]7Ъ?F=nl+QI.<翻{%8J%6/OcQ`(" 4k endstream endobj 3723 0 obj << /Type /Page /Contents 3724 0 R /Resources 3722 0 R /MediaBox [0 0 595.276 841.89] /Parent 3705 0 R >> endobj 3725 0 obj << /D [3723 0 R /XYZ -11.232 878.039 null] >> endobj 3652 0 obj << /D [3723 0 R /XYZ 56.693 741.921 null] >> endobj 3726 0 obj << /D [3723 0 R /XYZ 56.693 736.26 null] >> endobj 3727 0 obj << /D [3723 0 R /XYZ 56.693 739.15 null] >> endobj 3653 0 obj << /D [3723 0 R /XYZ 56.693 624.959 null] >> endobj 3728 0 obj << /D [3723 0 R /XYZ 56.693 619.299 null] >> endobj 3729 0 obj << /D [3723 0 R /XYZ 56.693 622.188 null] >> endobj 3654 0 obj << /D [3723 0 R /XYZ 56.693 507.998 null] >> endobj 3730 0 obj << /D [3723 0 R /XYZ 56.693 502.337 null] >> endobj 3731 0 obj << /D [3723 0 R /XYZ 56.693 505.227 null] >> endobj 3655 0 obj << /D [3723 0 R /XYZ 56.693 391.036 null] >> endobj 3732 0 obj << /D [3723 0 R /XYZ 56.693 385.376 null] >> endobj 3733 0 obj << /D [3723 0 R /XYZ 56.693 388.265 null] >> endobj 3656 0 obj << /D [3723 0 R /XYZ 56.693 274.075 null] >> endobj 3734 0 obj << /D [3723 0 R /XYZ 56.693 268.414 null] >> endobj 3735 0 obj << /D [3723 0 R /XYZ 56.693 271.304 null] >> endobj 3657 0 obj << /D [3723 0 R /XYZ 56.693 157.113 null] >> endobj 3736 0 obj << /D [3723 0 R /XYZ 56.693 151.453 null] >> endobj 3737 0 obj << /D [3723 0 R /XYZ 56.693 154.342 null] >> endobj 3722 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3744 0 obj << /Length 1298 /Filter /FlateDecode >> stream xڽXIoFW(x@ i6@4ڃcDl)R9BY%W2+ryo}3op4pt>8 NΔ 2hr a2T$̢i[]_Gc*)>&7I0|M.'oO44̪",4F@@Y8"(t1 {ačE$FIxϢOx=Mhu Lno0!x-D#xkgJYUsx޺Z,GeRwxX;02eORG $~D"JxD&*f͵Mmۿ>^r$lW6-K"CMc]J\MT kBZy_>_W%N1[|" x+^["S"n (@z\ċ?i|8o ?N2PIr~cX!ØWyјK#O>?ʴN6).i~ a F BYZ; EdqnI ؝$#>i?X"ku=b6|1Hb߀ERmoq/ CXCtx֔q$Q1((J$GbG? 6v'H1!]wOo0*jql%?TKs-{%e!7qt,+FT %Q5I+!NOMVwă4yȡt Pt h,ߏz{ ~h5/8LBb!eD0%tY 'V O~\?, ՗1u($*MQVq &e4O$hQN 8S T,_W<3,iRUiˠ &ܥmrS/jC@+aZPe&r6I[4p3:׉+@T]Ž#IΆ`+,Dylz`l`Yzxfg,0ȶB 2[KV}'.]%M(v;wqL}w endstream endobj 3743 0 obj << /Type /Page /Contents 3744 0 R /Resources 3742 0 R /MediaBox [0 0 595.276 841.89] /Parent 3705 0 R /Annots [ 3738 0 R 3739 0 R 3740 0 R 3741 0 R ] >> endobj 3738 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 188.465 141.185 202.412] /A << /S /GoTo /D (BtSourceMachine) >> >> endobj 3739 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 188.465 330.399 202.412] /A << /S /GoTo /D (bt-source-machine-new) >> >> endobj 3740 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 126.142 303.539 140.089] /A << /S /GoTo /D (BtSourceMachine-struct) >> >> endobj 3741 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 114.087 354.149 128.034] /A << /S /GoTo /D (BtSourceMachinePatternIndex) >> >> endobj 3745 0 obj << /D [3743 0 R /XYZ -16.307 878.039 null] >> endobj 3658 0 obj << /D [3743 0 R /XYZ 56.693 741.921 null] >> endobj 3746 0 obj << /D [3743 0 R /XYZ 56.693 735.943 null] >> endobj 3747 0 obj << /D [3743 0 R /XYZ 56.693 738.833 null] >> endobj 3659 0 obj << /D [3743 0 R /XYZ 56.693 640.853 null] >> endobj 3748 0 obj << /D [3743 0 R /XYZ 56.693 634.876 null] >> endobj 3749 0 obj << /D [3743 0 R /XYZ 56.693 637.765 null] >> endobj 3661 0 obj << /D [3743 0 R /XYZ 56.693 539.786 null] >> endobj 3750 0 obj << /D [3743 0 R /XYZ 56.693 533.809 null] >> endobj 3751 0 obj << /D [3743 0 R /XYZ 56.693 536.698 null] >> endobj 2181 0 obj << /D [3743 0 R /XYZ 56.693 402.853 null] >> endobj 3752 0 obj << /D [3743 0 R /XYZ 56.693 396.876 null] >> endobj 3753 0 obj << /D [3743 0 R /XYZ 56.693 399.765 null] >> endobj 77 0 obj << /D [3743 0 R /XYZ 56.693 309.134 null] >> endobj 1109 0 obj << /D [3743 0 R /XYZ 56.693 271.579 null] >> endobj 3754 0 obj << /D [3743 0 R /XYZ 56.693 213.371 null] >> endobj 3755 0 obj << /D [3743 0 R /XYZ 56.693 151.048 null] >> endobj 3756 0 obj << /D [3743 0 R /XYZ 56.693 81.588 null] >> endobj 3742 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R /F117 3684 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3766 0 obj << /Length 1881 /Filter /FlateDecode >> stream xZo6_!`f5/,YhMYR&Mۇ;Jmɲ-Iw;{ػ<9>9})Tx#HhI WIw;[|gw,*G(> E0~uRaO`K0hHꝖGV' +#Py>2S'N#[s\GfHbI i@p"Eh+RW|o(o5Sǯeu,4O le74 TLa,%.+ #Yau0”Ou|Gݺ ]!fP_VMx7q*8N~L҇$j'?!pvZ#"Yb?BYhWa7-@(AT/ ALSG\LYj%"\ |78 bN|AbXsY%$Q¶_ @k%wY&'qj#JLPw4-&P>IEFhq- SH_ )UNjv_N! nQF"Ph̹(' 5~2't.K|vn]y^2uMM ?^J* a9 %l:$4 8SM~%D08MvTTsPUsR9yy7( r+X u" 8eUAh w+sɨ0nA>=#-pQb)58Qq} cV!EPUb.vnֿ|Y~pn]F`0!u*]˺C3Pcl8j$RF^Ȍwaɸ> x! 3Wma[zozϻ2 q.wdolLRc)$ UHG@x |G8 { D  q&,z4YwTNi3Bo9FN}||ru|G9 !?,Cl~yei=D϶eYd&ql\#SmG]*$γsAJdLɰc?bt&ͯf SSXA&0c1zqa<mAa%pWqYmp `d/;:tHfsٶ×aN=2HK8ҬIֹA[f_0Zj ھLZvyo (@A:2\*U% eOW7?%NFi6wžn}Ot#4=bG _KljO0ڕ=Y(:IJov'uATT:ڨ~!`n4P endstream endobj 3765 0 obj << /Type /Page /Contents 3766 0 R /Resources 3764 0 R /MediaBox [0 0 595.276 841.89] /Parent 3705 0 R /Annots [ 3760 0 R 3761 0 R 3762 0 R 3763 0 R ] >> endobj 3760 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.112 607.869 240.89 618.773] /A << /S /GoTo /D (GstChildProxy) >> >> endobj 3761 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [258.265 607.869 314.493 618.773] /A << /S /GoTo /D (BtPersistence) >> >> endobj 3762 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [112.144 314.199 233.689 324.481] /A << /S /GoTo /D (bt-setup-add-machine) >> >> endobj 3763 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 83.904 163.681 92.751] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3767 0 obj << /D [3765 0 R /XYZ -11.232 878.039 null] >> endobj 3768 0 obj << /D [3765 0 R /XYZ 56.693 761.903 null] >> endobj 3769 0 obj << /D [3765 0 R /XYZ 56.693 755.228 null] >> endobj 3770 0 obj << /D [3765 0 R /XYZ 56.693 744.269 null] >> endobj 3771 0 obj << /D [3765 0 R /XYZ 56.693 733.31 null] >> endobj 3772 0 obj << /D [3765 0 R /XYZ 56.693 722.351 null] >> endobj 3773 0 obj << /D [3765 0 R /XYZ 56.693 711.392 null] >> endobj 3774 0 obj << /D [3765 0 R /XYZ 56.693 700.433 null] >> endobj 3775 0 obj << /D [3765 0 R /XYZ 56.693 689.474 null] >> endobj 3776 0 obj << /D [3765 0 R /XYZ 56.693 624.771 null] >> endobj 3777 0 obj << /D [3765 0 R /XYZ 56.693 566.543 null] >> endobj 3778 0 obj << /D [3765 0 R /XYZ 56.693 508.314 null] >> endobj 3779 0 obj << /D [3765 0 R /XYZ 56.693 450.086 null] >> endobj 3757 0 obj << /D [3765 0 R /XYZ 56.693 424.725 null] >> endobj 3780 0 obj << /D [3765 0 R /XYZ 56.693 418.747 null] >> endobj 3781 0 obj << /D [3765 0 R /XYZ 56.693 421.636 null] >> endobj 3782 0 obj << /D [3765 0 R /XYZ 56.693 410.678 null] >> endobj 3783 0 obj << /D [3765 0 R /XYZ 56.693 399.719 null] >> endobj 3784 0 obj << /D [3765 0 R /XYZ 56.693 388.76 null] >> endobj 3785 0 obj << /D [3765 0 R /XYZ 56.693 377.801 null] >> endobj 3786 0 obj << /D [3765 0 R /XYZ 56.693 366.842 null] >> endobj 3764 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3855 0 obj << /Length 1617 /Filter /FlateDecode >> stream xڵZrH}+[GSg7uV%) JH.IO$l )< I̙}{ps= ^])h%dfpUę̜OǏ4.MMliy{㇙L޽rd+\`0 ;|U\x2@[!/T`)t5;3xkse>^+k 4/LF&)}( "#-tq6Mu}#SsOG İĒ-sR; k$\\(ENlyž:Zӝ vjALpnK?µ[m١%E{WO% &hY or>]HKs_.G*/@}ߺMo8RDgO"yqsdc4]fs食(:0+5$E"04X[r2},f:FaKjNRF ;MhS1[#$pfFD 5?IQ@LJ2=+ &ŮÓl}akqq_ٻ$1VM ƬLlM,bs%"Ļxfݼq<|cH!d8{o1ϻk3B[ZEUN+MA"t䬲('/1PNg)\a۹vHi8:R(+;߷daPZh SUVu?5)oϡY&0Nj7ȾBS :x?ДVp |DpC7)m,c3oJɰ!Y;h%;Fy[([i}OaXf}$s^||ǐ˵wʀۊۯVX%mĠvf]e4]Fa۲:*f ii杚HN1-"$/D%HE(aH>:{L8Q¦޴ַCREs6.XXG0&/ 824((;Uf\TIt/]jĥޗ Fk\@=Wը65ΧnJuL#@z( b\sPT&>oE ^$ksR%բK0 = 1|zp8{.a&oGnCOg˛*R `-^2 =9(b -qIL#7 =! uh`liSԠgrKOEߤi! d]`ΤKT00 ].яOj``I yY>jG2aI!0ӎ]#U4`>LUo0lLƼ˿iD endstream endobj 3854 0 obj << /Type /Page /Contents 3855 0 R /Resources 3853 0 R /MediaBox [0 0 595.276 841.89] /Parent 3705 0 R /Annots [ 3787 0 R 3788 0 R 3789 0 R 3790 0 R 3791 0 R 3792 0 R 3793 0 R 3794 0 R 3795 0 R 3796 0 R 3797 0 R 3798 0 R 3799 0 R 3800 0 R 3801 0 R 3802 0 R 3803 0 R 3804 0 R 3805 0 R 3806 0 R 3807 0 R 3808 0 R 3809 0 R 3810 0 R 3811 0 R 3812 0 R ] >> endobj 3787 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.077 671.563 160.343 682.467] /A << /S /GoTo /D (BtMachine) >> >> endobj 3788 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [110.769 615.328 257.598 626.232] /A << /S /GoTo /D (bt-machine-get-pattern-by-index) >> >> endobj 3789 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 208.995 86.76 222.943] /A << /S /GoTo /D (void) >> >> endobj 3790 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 208.995 355.873 222.943] /A << /S /GoTo /D (bt-value-group-blend-column) >> >> endobj 3791 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 196.941 86.76 210.888] /A << /S /GoTo /D (void) >> >> endobj 3792 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 196.941 359.749 210.888] /A << /S /GoTo /D (bt-value-group-blend-columns) >> >> endobj 3793 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 184.886 126.799 198.833] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 3794 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 184.886 318.135 198.833] /A << /S /GoTo /D (bt-value-group-copy) >> >> endobj 3795 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 172.831 86.76 186.779] /A << /S /GoTo /D (void) >> >> endobj 3796 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 172.831 353.093 186.779] /A << /S /GoTo /D (bt-value-group-clear-column) >> >> endobj 3797 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 160.776 86.76 174.724] /A << /S /GoTo /D (void) >> >> endobj 3798 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 160.776 356.969 174.724] /A << /S /GoTo /D (bt-value-group-clear-columns) >> >> endobj 3799 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 148.721 86.76 162.669] /A << /S /GoTo /D (void) >> >> endobj 3800 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 148.721 361.701 162.669] /A << /S /GoTo /D (bt-value-group-delete-full-row) >> >> endobj 3801 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 136.666 86.76 150.614] /A << /S /GoTo /D (void) >> >> endobj 3802 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 136.666 342.882 150.614] /A << /S /GoTo /D (bt-value-group-delete-row) >> >> endobj 3803 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 124.612 105.769 138.559] /A << /S /GoTo /D (gboolean) >> >> endobj 3804 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 124.612 376.336 138.559] /A << /S /GoTo /D (bt-value-group-deserialize-column) >> >> endobj 3805 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 112.557 86.76 126.504] /A << /S /GoTo /D (void) >> >> endobj 3806 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 112.557 347.026 126.504] /A << /S /GoTo /D (bt-value-group-flip-column) >> >> endobj 3807 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 100.502 86.76 114.45] /A << /S /GoTo /D (void) >> >> endobj 3808 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 100.502 350.902 114.45] /A << /S /GoTo /D (bt-value-group-flip-columns) >> >> endobj 3809 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 88.447 91.373 102.395] /A << /S /GoTo /D (gchar) >> >> endobj 3810 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 88.447 337.203 102.395] /A << /S /GoTo /D (bt-value-group-get-event) >> >> endobj 3811 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 76.392 99.124 90.34] /A << /S /GoTo /D (GValue) >> >> endobj 3812 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 76.392 358.782 90.34] /A << /S /GoTo /D (bt-value-group-get-event-data) >> >> endobj 3856 0 obj << /D [3854 0 R /XYZ -16.307 878.039 null] >> endobj 3857 0 obj << /D [3854 0 R /XYZ 56.693 741.323 null] >> endobj 3758 0 obj << /D [3854 0 R /XYZ 56.693 715.961 null] >> endobj 3858 0 obj << /D [3854 0 R /XYZ 56.693 709.984 null] >> endobj 3859 0 obj << /D [3854 0 R /XYZ 56.693 712.873 null] >> endobj 3759 0 obj << /D [3854 0 R /XYZ 56.693 632.827 null] >> endobj 3860 0 obj << /D [3854 0 R /XYZ 62.67 540.479 null] >> endobj 3861 0 obj << /D [3854 0 R /XYZ 62.67 492.658 null] >> endobj 3862 0 obj << /D [3854 0 R /XYZ 62.67 438.86 null] >> endobj 3863 0 obj << /D [3854 0 R /XYZ 62.67 373.107 null] >> endobj 78 0 obj << /D [3854 0 R /XYZ 56.693 327.677 null] >> endobj 2120 0 obj << /D [3854 0 R /XYZ 56.693 292.11 null] >> endobj 3864 0 obj << /D [3854 0 R /XYZ 56.693 233.902 null] >> endobj 3853 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3890 0 obj << /Length 2063 /Filter /FlateDecode >> stream xڵ[]o6}ϯPߤt 춝Ӈi(6hG\I̯HŒD=8(K&ћWWU(TFwH,R1D˗L\^RҸΔ&_&>ɖ_pZHYɬY(\CqhD+\ G2ac}jF`D, w%)FJPDX|lul ``RFaL"EFrW"#%%`=cU\','۷ F K+(& KG5Yv#x`#lꂚҙb0*a#4Iדi M)$ | a@ep#1 ,n8MB]P#9S8C3l$#Ef|9aENIr% } "T9FȡŚM&14Vsuj1Ջ8a#b:]:v|6tA=N> rV)#%D1]2ǵO>~*x3Ը@v+ 0۷}VgH40rȋa` _3o!  H'60il$kimz5yUUF$@(j X q†tu%}0.e?\n$"T?D=Lq$8@Ln8\/WaAֲC‘}Q|A„x`ad8P0r~`Z50a@͂a@u==z)fwe;[oŒȗ8 Oxm0FD,Wx̾(^?4|}jʤ VK賳baX@ Q }t m QՐQiԾӵcl {w}gLsWrBK0g,|]Yشc6&q[㖩?@^}_͵IYuuR{a@C,viN/6I~;?@^͊ⴥ{rϦukeY'ڪ;kf|=euxM JY>6[ԞrʁI?VL tZAnf!jdnU4sa*< endstream endobj 3889 0 obj << /Type /Page /Contents 3890 0 R /Resources 3888 0 R /MediaBox [0 0 595.276 841.89] /Parent 3901 0 R /Annots [ 3813 0 R 3814 0 R 3815 0 R 3816 0 R 3817 0 R 3818 0 R 3819 0 R 3820 0 R 3821 0 R 3822 0 R 3823 0 R 3824 0 R 3825 0 R 3826 0 R 3827 0 R 3828 0 R 3829 0 R 3830 0 R 3831 0 R 3832 0 R 3833 0 R 3834 0 R 3835 0 R 3836 0 R 3837 0 R 3838 0 R 3839 0 R 3840 0 R 3841 0 R 3842 0 R 3843 0 R 3844 0 R 3845 0 R 3846 0 R 3847 0 R 3848 0 R 3849 0 R 3850 0 R 3851 0 R 3852 0 R 3877 0 R 3878 0 R 3879 0 R 3880 0 R 3881 0 R 3882 0 R 3883 0 R 3884 0 R 3885 0 R 3886 0 R 3887 0 R ] >> endobj 3813 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 739.387 86.76 753.335] /A << /S /GoTo /D (void) >> >> endobj 3814 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 739.387 360.047 753.335] /A << /S /GoTo /D (bt-value-group-insert-full-row) >> >> endobj 3815 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 727.332 86.76 741.28] /A << /S /GoTo /D (void) >> >> endobj 3816 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 727.332 341.228 741.28] /A << /S /GoTo /D (bt-value-group-insert-row) >> >> endobj 3817 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 715.278 126.799 729.225] /A << /S /GoTo /D (BtValueGroup) >> >> endobj 3818 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 715.278 315.216 729.225] /A << /S /GoTo /D (bt-value-group-new) >> >> endobj 3819 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 703.223 86.76 717.17] /A << /S /GoTo /D (void) >> >> endobj 3820 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 703.223 375.788 717.17] /A << /S /GoTo /D (bt-value-group-randomize-column) >> >> endobj 3821 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 691.168 86.76 705.116] /A << /S /GoTo /D (void) >> >> endobj 3822 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 691.168 379.664 705.116] /A << /S /GoTo /D (bt-value-group-randomize-columns) >> >> endobj 3823 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 679.113 86.76 693.061] /A << /S /GoTo /D (void) >> >> endobj 3824 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 679.113 402.896 693.061] /A << /S /GoTo /D (bt-value-group-range-randomize-column) >> >> endobj 3825 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 667.058 86.76 681.006] /A << /S /GoTo /D (void) >> >> endobj 3826 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 667.058 406.772 681.006] /A << /S /GoTo /D (bt-value-group-range-randomize-columns) >> >> endobj 3827 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 655.003 86.76 668.951] /A << /S /GoTo /D (void) >> >> endobj 3828 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 655.003 428.66 668.951] /A << /S /GoTo /D (bt-value-group-transpose-coarse-down-column) >> >> endobj 3829 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 642.949 86.76 656.896] /A << /S /GoTo /D (void) >> >> endobj 3830 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 642.949 432.535 656.896] /A << /S /GoTo /D (bt-value-group-transpose-coarse-down-columns) >> >> endobj 3831 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 630.894 86.76 644.841] /A << /S /GoTo /D (void) >> >> endobj 3832 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 630.894 416.734 644.841] /A << /S /GoTo /D (bt-value-group-transpose-coarse-up-column) >> >> endobj 3833 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 618.839 86.76 632.787] /A << /S /GoTo /D (void) >> >> endobj 3834 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 618.839 420.61 632.787] /A << /S /GoTo /D (bt-value-group-transpose-coarse-up-columns) >> >> endobj 3835 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 606.784 86.76 620.732] /A << /S /GoTo /D (void) >> >> endobj 3836 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 606.784 418.159 620.732] /A << /S /GoTo /D (bt-value-group-transpose-fine-down-column) >> >> endobj 3837 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 594.729 86.76 608.677] /A << /S /GoTo /D (void) >> >> endobj 3838 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 594.729 422.035 608.677] /A << /S /GoTo /D (bt-value-group-transpose-fine-down-columns) >> >> endobj 3839 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 582.674 86.76 596.622] /A << /S /GoTo /D (void) >> >> endobj 3840 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 582.674 406.234 596.622] /A << /S /GoTo /D (bt-value-group-transpose-fine-up-column) >> >> endobj 3841 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 570.62 86.76 584.567] /A << /S /GoTo /D (void) >> >> endobj 3842 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 570.62 410.109 584.567] /A << /S /GoTo /D (bt-value-group-transpose-fine-up-columns) >> >> endobj 3843 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 558.565 86.76 572.512] /A << /S /GoTo /D (void) >> >> endobj 3844 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 558.565 366.931 572.512] /A << /S /GoTo /D (bt-value-group-serialize-column) >> >> endobj 3845 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 546.51 86.76 560.458] /A << /S /GoTo /D (void) >> >> endobj 3846 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 546.51 370.807 560.458] /A << /S /GoTo /D (bt-value-group-serialize-columns) >> >> endobj 3847 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 534.455 105.769 548.403] /A << /S /GoTo /D (gboolean) >> >> endobj 3848 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 534.455 336.097 548.403] /A << /S /GoTo /D (bt-value-group-set-event) >> >> endobj 3849 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 522.4 105.769 536.348] /A << /S /GoTo /D (gboolean) >> >> endobj 3850 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 522.4 338.867 536.348] /A << /S /GoTo /D (bt-value-group-test-event) >> >> endobj 3851 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 510.345 105.769 524.293] /A << /S /GoTo /D (gboolean) >> >> endobj 3852 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 510.345 332.63 524.293] /A << /S /GoTo /D (bt-value-group-test-tick) >> >> endobj 3877 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 448.022 91.343 461.97] /A << /S /GoTo /D (gulong) >> >> endobj 3878 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 448.022 250.927 461.97] /A << /S /GoTo /D (BtValueGroup--length) >> >> endobj 3879 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 435.967 138.774 449.915] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 3880 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 435.967 292.212 449.915] /A << /S /GoTo /D (BtValueGroup--parameter-group) >> >> endobj 3881 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 373.644 81.181 387.592] /A << /S /GoTo /D (void) >> >> endobj 3882 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 373.644 285.777 387.592] /A << /S /GoTo /D (BtValueGroup-group-changed) >> >> endobj 3883 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 373.644 579.053 387.592] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3884 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 361.59 81.181 375.537] /A << /S /GoTo /D (void) >> >> endobj 3885 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 361.59 287.43 375.537] /A << /S /GoTo /D (BtValueGroup-param-changed) >> >> endobj 3886 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 361.59 579.053 375.537] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 3887 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 299.266 289.154 313.214] /A << /S /GoTo /D (BtValueGroup-struct) >> >> endobj 3891 0 obj << /D [3889 0 R /XYZ -11.232 878.039 null] >> endobj 3892 0 obj << /D [3889 0 R /XYZ 56.693 472.929 null] >> endobj 3893 0 obj << /D [3889 0 R /XYZ 56.693 398.551 null] >> endobj 3894 0 obj << /D [3889 0 R /XYZ 56.693 324.173 null] >> endobj 3895 0 obj << /D [3889 0 R /XYZ 56.693 265.085 null] >> endobj 3896 0 obj << /D [3889 0 R /XYZ 56.693 260.185 null] >> endobj 3897 0 obj << /D [3889 0 R /XYZ 56.693 263.672 null] >> endobj 3898 0 obj << /D [3889 0 R /XYZ 56.693 252.713 null] >> endobj 3899 0 obj << /D [3889 0 R /XYZ 56.693 190.63 null] >> endobj 3900 0 obj << /D [3889 0 R /XYZ 56.693 135.023 null] >> endobj 3888 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3931 0 obj << /Length 1508 /Filter /FlateDecode >> stream xZKoFWQ.A @61zq)U,49wvI|Zj8(/ov Z ^O.'W"b ]ϑTXYL/w_Y9dzdiq6Y&]:{dVq+4Fh#R.mŅr=gBaAxK4ܼ',A{$)+B&OH}y">I1W,_nnZ XC?&]z%UmVu?$G8ukk"&K龗TaFbk kۙ@Y0%~uqO[)!3Ա̞X-Jܷe4@xvE=-fyW0 ǜ2+esl?ұzұY*랕{7~K\wO}Hv͛4u*.?ܴݬ͉4H)?<5!ǑLئykӂ vjGWQ'Q-ح6E syr) x5#ً5uybͨEX[:wMHdN=$Yrߦ驟#Z'S3*])A/J<Bk5LJ 7NwR'ˡŒ՘Nh ۃ7Y/D5 s4\Tog$5`y9m{)\j@02o ̘7iLYp3L@uC_ "@0e*}Hrx5 ㏦&].n3<:}t5]7pr/{O8m endstream endobj 3930 0 obj << /Type /Page /Contents 3931 0 R /Resources 3929 0 R /MediaBox [0 0 595.276 841.89] /Parent 3901 0 R /Annots [ 3927 0 R 3928 0 R ] >> endobj 3927 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 479.853 98.137 488.699] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3928 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 226.053 98.137 234.9] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3932 0 obj << /D [3930 0 R /XYZ -16.307 878.039 null] >> endobj 3933 0 obj << /D [3930 0 R /XYZ 56.693 741.323 null] >> endobj 3865 0 obj << /D [3930 0 R /XYZ 56.693 715.961 null] >> endobj 3934 0 obj << /D [3930 0 R /XYZ 56.693 709.984 null] >> endobj 3935 0 obj << /D [3930 0 R /XYZ 56.693 712.873 null] >> endobj 3936 0 obj << /D [3930 0 R /XYZ 56.693 701.914 null] >> endobj 3937 0 obj << /D [3930 0 R /XYZ 56.693 690.955 null] >> endobj 3938 0 obj << /D [3930 0 R /XYZ 56.693 679.996 null] >> endobj 3939 0 obj << /D [3930 0 R /XYZ 56.693 669.038 null] >> endobj 3866 0 obj << /D [3930 0 R /XYZ 56.693 439.059 null] >> endobj 3940 0 obj << /D [3930 0 R /XYZ 56.693 433.082 null] >> endobj 3941 0 obj << /D [3930 0 R /XYZ 56.693 435.971 null] >> endobj 3942 0 obj << /D [3930 0 R /XYZ 56.693 425.012 null] >> endobj 3943 0 obj << /D [3930 0 R /XYZ 56.693 414.053 null] >> endobj 3944 0 obj << /D [3930 0 R /XYZ 56.693 403.094 null] >> endobj 3867 0 obj << /D [3930 0 R /XYZ 56.693 185.302 null] >> endobj 3945 0 obj << /D [3930 0 R /XYZ 56.693 179.354 null] >> endobj 3946 0 obj << /D [3930 0 R /XYZ 56.693 182.243 null] >> endobj 3947 0 obj << /D [3930 0 R /XYZ 56.693 171.284 null] >> endobj 3929 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3954 0 obj << /Length 1478 /Filter /FlateDecode >> stream xZr6+pR$7Oe\55I%'ǥbdJQEObqB=% | Ȝ0r5\78fF@S$1{r;|X^&w8̾\0i ͇ZzXeʠK;.৛[WQ d0c@UΒtΨ?/ɧowzR(CL:\ΚƅPTK49Q.K:nVAR*H0Xn<^m*N0Hw9 G ˆCs*R!Np*h,(A˳:L6qHL}kSB?"Z'sxNWr?# (X.fy_8Fp!X\)T> f~^-+p6*3-ʈe?VcܶpI \,D3N~Nd2UVt^yŐT`Pй!2.)]ӊr&{((u>=l0BVC:-}}S^xuMOxˁ5&P .RVPŨ\_9JDfVDHq!$L * q,,εQ wX^a63nǤ 5$q_uwa2#Sm!p!A=j$0m0pvT-0PcW(YmM N!( u3Z/*2Cw8$a9Nq1-dsa>|ʞ}9tz\r-qꏃͲ졝Iʘ:]2[Zg?'!?H㕰x۞EM)[|M)cו;dw}_J s/KI{| log$s2s/~ƔTo1%Э:yrUVoW[ c⬷eUoK 0vu '}Ÿ5Z&m. a95zBFֆLoڀrk#rY:w)p} 0˥>IW0dJ}.40!6 GJ z[ATpt&Z[[yVEgǛJD_[8HkRm\VЯq*͊oG }7/42>\> endobj 3948 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 688.374 163.681 697.221] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 3949 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 652.509 98.137 661.355] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3950 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 375.606 98.137 384.453] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3951 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 122.167 98.137 131.014] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3955 0 obj << /D [3953 0 R /XYZ -11.232 878.039 null] >> endobj 3868 0 obj << /D [3953 0 R /XYZ 56.693 611.715 null] >> endobj 3956 0 obj << /D [3953 0 R /XYZ 56.693 605.737 null] >> endobj 3957 0 obj << /D [3953 0 R /XYZ 56.693 608.627 null] >> endobj 3958 0 obj << /D [3953 0 R /XYZ 56.693 597.668 null] >> endobj 3959 0 obj << /D [3953 0 R /XYZ 56.693 586.709 null] >> endobj 3960 0 obj << /D [3953 0 R /XYZ 56.693 575.75 null] >> endobj 3961 0 obj << /D [3953 0 R /XYZ 56.693 564.791 null] >> endobj 3869 0 obj << /D [3953 0 R /XYZ 56.693 334.813 null] >> endobj 3962 0 obj << /D [3953 0 R /XYZ 56.693 328.835 null] >> endobj 3963 0 obj << /D [3953 0 R /XYZ 56.693 331.724 null] >> endobj 3964 0 obj << /D [3953 0 R /XYZ 56.693 320.766 null] >> endobj 3965 0 obj << /D [3953 0 R /XYZ 56.693 309.807 null] >> endobj 3966 0 obj << /D [3953 0 R /XYZ 56.693 298.848 null] >> endobj 3870 0 obj << /D [3953 0 R /XYZ 56.693 81.588 null] >> endobj 3952 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3973 0 obj << /Length 1631 /Filter /FlateDecode >> stream xZYoF~ׯTT}sPMؔ"TS ΊC+:y7fhht=ymdULE7H*,ţ.8>=Yd$__,).'$Kַz&n޽ykhdVq+4#FhCmov3wF >et{?FwۻaM[yIq-_+ݩ;\ב9TDZa "FQDH1P (/-į#eE.i]Bl nGaKPƆ3l?аKӆr~gjY:KVIj GT~JĻMכITG*IvkM~8&+{IV;,nw/b̽Ǿe`Fa.7*]/̡g)B ,$ ya_wȃY:arX\Ӭ8Wk8ې2WB-Whʁ]1d~r)ih4-7~4^f""8rʪUq9#T2v0 *KjD!6T/ \Z1|^(b_4M!Z \X|X0hj52ęqL%pE\˰g1,e.8ЫcҢZj}XbN.Tjch% s[s(i-Yn=uː.y"u6X)1Ѓe~X Wֿ”\@~i)1i3l?аW)B*1au)4{u)1YXu@ TԧuT_bFH[=E2$qb9!V55b>"YU=кĪDPG1X48aZ^$HXWX8ZTn/o,|@6 ji,bfNbCjX_[.@r r7"&3 W"6gTx %ʐˑ-k$[ƫd6]m/j9fipM"(1X҄]Uod8u"˔$^O ?̶Y.;mEK}w~jX>;\f$~qB:G )H_}ؒ ))Y߅'-1td/X>)J,{ߛ:XkRl$#ynY4Gh Dn.㐩{S:Y.ξ|΃cofrYbp~4Tt-0g&sChM,?Ű{ZU܆.wY1-̧p-a;Agj5|@5<@| 1\2G0}ڎ (iZDt84tRTύYF,^/N̵ݥd> endobj 3967 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 591.946 98.137 600.793] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3968 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 361.768 98.137 370.615] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3974 0 obj << /D [3972 0 R /XYZ -16.307 878.039 null] >> endobj 3975 0 obj << /D [3972 0 R /XYZ 56.693 761.903 null] >> endobj 3976 0 obj << /D [3972 0 R /XYZ 56.693 755.228 null] >> endobj 3977 0 obj << /D [3972 0 R /XYZ 56.693 744.269 null] >> endobj 3978 0 obj << /D [3972 0 R /XYZ 56.693 733.31 null] >> endobj 3871 0 obj << /D [3972 0 R /XYZ 56.693 551.152 null] >> endobj 3979 0 obj << /D [3972 0 R /XYZ 56.693 545.175 null] >> endobj 3980 0 obj << /D [3972 0 R /XYZ 56.693 548.064 null] >> endobj 3981 0 obj << /D [3972 0 R /XYZ 56.693 537.105 null] >> endobj 3982 0 obj << /D [3972 0 R /XYZ 56.693 526.146 null] >> endobj 3983 0 obj << /D [3972 0 R /XYZ 56.693 515.187 null] >> endobj 3872 0 obj << /D [3972 0 R /XYZ 56.693 320.975 null] >> endobj 3984 0 obj << /D [3972 0 R /XYZ 56.693 314.997 null] >> endobj 3985 0 obj << /D [3972 0 R /XYZ 56.693 317.887 null] >> endobj 3986 0 obj << /D [3972 0 R /XYZ 56.693 306.928 null] >> endobj 3987 0 obj << /D [3972 0 R /XYZ 56.693 295.969 null] >> endobj 3988 0 obj << /D [3972 0 R /XYZ 56.693 285.01 null] >> endobj 3989 0 obj << /D [3972 0 R /XYZ 56.693 274.051 null] >> endobj 3990 0 obj << /D [3972 0 R /XYZ 56.693 263.092 null] >> endobj 3971 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3996 0 obj << /Length 1643 /Filter /FlateDecode >> stream xZMF+tO$lʻU*Y\lז ZL!؇ a`Ю+-vxԯg_nzWkm#Kb*GRey-^5DI5C&i*ȒmrdI:.x>x?z VhF8hY\hޫQ( ~h{FaMy=!@ _ϣ7zt 0%+ .Izbl/noѐ1X@fޮcqȊ,Wq\80C9zEǟߴb%dJC/ Y:<ލq>0/܌|)4j`  n(C)cŸZ̘%jTN3ѓ8 qDC--!hb9/#|8.Z)#' ƒcy7gw bNJ.74DSl&piKPFYuX5A nt(~՚aKȮi{[nv76%1b6%pLZEZE*1\3nϷ)JkߔƋtUcU]YoܤfnD͉(,}/|7N ܪV0Y5˨&ɳŘt)\g]>y|`2;=A>,ʗ0!ˍīLa%:oSK*窩ՓDsRN54x΁*q@͝-*^^qj(ͦF/h[@ﮂg[;GІ&PUjqMJ_1Y0|NI wKkR0 I$/[& \j0ly&oZ>0 8M5 6H-e"gx *K-J G [ qÔSŇ r)6f {BeZ@@e:*C\8"d[k)& ; 8$RT5\s(E],glf:b*ZYtNSy/,n9*`%N~u@|qi'Uҟz_z"Tz^ѩYp9F^dͻWa/@,GFgiTmS;82ݱ;_ݿF|Y^pnt0@_vsw0NcrL9c<@|} xVt0 .}( M p;p5 |{eg16]"`it0D$Kܦ)I 0p xw7~X5NߩT?YdgԨäkqLǵE32 =!V> endobj 3969 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 726.566 83.303 737.47] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 3970 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 726.566 164.468 737.47] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 3991 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 710.69 98.137 719.537] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3992 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 433.788 98.137 442.635] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3993 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 179.9 98.137 188.746] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 3997 0 obj << /D [3995 0 R /XYZ -11.232 878.039 null] >> endobj 3873 0 obj << /D [3995 0 R /XYZ 56.693 669.897 null] >> endobj 3998 0 obj << /D [3995 0 R /XYZ 56.693 663.919 null] >> endobj 3999 0 obj << /D [3995 0 R /XYZ 56.693 666.808 null] >> endobj 4000 0 obj << /D [3995 0 R /XYZ 56.693 655.85 null] >> endobj 4001 0 obj << /D [3995 0 R /XYZ 56.693 644.891 null] >> endobj 4002 0 obj << /D [3995 0 R /XYZ 56.693 633.932 null] >> endobj 4003 0 obj << /D [3995 0 R /XYZ 56.693 622.973 null] >> endobj 3874 0 obj << /D [3995 0 R /XYZ 56.693 392.995 null] >> endobj 4004 0 obj << /D [3995 0 R /XYZ 56.693 387.017 null] >> endobj 4005 0 obj << /D [3995 0 R /XYZ 56.693 389.906 null] >> endobj 4006 0 obj << /D [3995 0 R /XYZ 56.693 378.947 null] >> endobj 4007 0 obj << /D [3995 0 R /XYZ 56.693 367.988 null] >> endobj 4008 0 obj << /D [3995 0 R /XYZ 56.693 357.03 null] >> endobj 3875 0 obj << /D [3995 0 R /XYZ 56.693 139.106 null] >> endobj 4009 0 obj << /D [3995 0 R /XYZ 56.693 133.129 null] >> endobj 4010 0 obj << /D [3995 0 R /XYZ 56.693 136.018 null] >> endobj 4011 0 obj << /D [3995 0 R /XYZ 56.693 125.059 null] >> endobj 4012 0 obj << /D [3995 0 R /XYZ 56.693 114.1 null] >> endobj 4013 0 obj << /D [3995 0 R /XYZ 56.693 103.141 null] >> endobj 3994 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F108 345 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4021 0 obj << /Length 1625 /Filter /FlateDecode >> stream xZ[6~W:YEwSI& Ka`omGX`֐B>4C].W:F1Sh8ERascxjzx(Y^xg085V|eUDP[XC"1lQHMW_= V.x {q`} 쑃lJcizgU-=#MhYi6fi2)ǃ NI0aUZ @<38HV$GlőD>ट”P_-5(\j'0o\)bf,BJ+Y-c^1A 7%8HbKmTnζdeEG_-o1cyi 0c6MG3'[{maINc B۶_jܚU w,njo6Lj 0ux6&d>I F` 0y8L3{{ۇo݊u eC8Ar|Bip5'S`k90ʌfp P {w =>5EVv^R i5m*|T]Im᯳6'T;kœ/8%/HA_huevqAT_CK ?MunLj{ɋXb*G |˺գKm-Dꝼ?γeY$,]NALًWRyL䥕GId+FmEWuu&!y1BàVlevk7s4 J~>;j3hNsY9V4gO;D қ+So \)qCi'Es.Skw6Gu}26WiVۡA6w-JfEPӥrT)+_8v\9 ?(O,͠J郙: ٲ+\^c+Jj[;n} .#,` h޾Ev㐭Obw)#V]:hUE`Zw+[ۀ[[-\9TU { S}Ѽ4;C p10b!mPBqk`PM y&`YQp] 3iY*h."fַ'[m[MWȿY p BwAAӱ(gI%݉m(o褂 餞֜ט(ĶoMP1'rgku՛i@zMP!E糯:~GLl 7‘)̅潉c*\$`ߢ,οB(B52|p(raTI_]7)hnM_i ߟ@H :T?Q=dM@#n9w )a 5&ҁ/sD}C7[WX<}R x,ukkxP"ה endstream endobj 4020 0 obj << /Type /Page /Contents 4021 0 R /Resources 4019 0 R /MediaBox [0 0 595.276 841.89] /Parent 3901 0 R /Annots [ 4014 0 R 4015 0 R 4016 0 R 4017 0 R 4018 0 R ] >> endobj 4014 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.588 576.833 246.141 587.737] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4015 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 560.958 98.137 569.804] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4016 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.411 442.889 457.281 453.793] /A << /S /GoTo /D (GValue) >> >> endobj 4017 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.519 258.98 142.072 269.884] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4018 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 243.105 98.137 251.951] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4022 0 obj << /D [4020 0 R /XYZ -16.307 878.039 null] >> endobj 3876 0 obj << /D [4020 0 R /XYZ 56.693 520.164 null] >> endobj 4023 0 obj << /D [4020 0 R /XYZ 56.693 514.187 null] >> endobj 4024 0 obj << /D [4020 0 R /XYZ 56.693 517.076 null] >> endobj 4025 0 obj << /D [4020 0 R /XYZ 56.693 506.117 null] >> endobj 4026 0 obj << /D [4020 0 R /XYZ 56.693 495.158 null] >> endobj 4027 0 obj << /D [4020 0 R /XYZ 56.693 484.199 null] >> endobj 3902 0 obj << /D [4020 0 R /XYZ 56.693 202.311 null] >> endobj 4028 0 obj << /D [4020 0 R /XYZ 56.693 196.334 null] >> endobj 4029 0 obj << /D [4020 0 R /XYZ 56.693 199.223 null] >> endobj 4030 0 obj << /D [4020 0 R /XYZ 56.693 188.264 null] >> endobj 4031 0 obj << /D [4020 0 R /XYZ 56.693 177.305 null] >> endobj 4019 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4038 0 obj << /Length 1531 /Filter /FlateDecode >> stream xZMs6W(u* ڛ3:n/GȔDe>wA2IQ%iJ؇}K9"jpy3x 2( IHjnrјI2o4r_YFKoۀ`B3 Tx@ w ~=0 b <%wo)B̸Kqۀ\gC>9#jnǜ!ξVG+#F@;Oq0\n<dKQ9|rH͂U'k"&}bK01l*Nݙ@5UѾ~I`X f`l b9 0)c̩b-u{:2HPHL| "|Q<ռ cߤI$U]fIXhKe/#0a-g5m:6C2BCJ Lu42f_'' T8qu|O⼍=81eW4\5)xujQ\9ωNv%qC&#|%0_ػVyDiT=OĒPza3X2Q…j1640⠋2@ lJ13fX6/`L`$A]RH +3L,⮏MI$`I\sׇ0] u/ nk_0KչuO. 0T ]@[O`MU}#ITSjCbm-z-}w]T)^hv)i'Ç1|3*F/3ieJe?gHƒ 6}=f_(`Jޟlc6BAIaEMd7,k5s q!uJIGP Tu]Qm23[<=%ڨAbU^vhTf(LƱ!gy٧U\cU`ߤQE:t(d/ (,FߪPOHy­+QSBK8@jN.eV vN! Me4ެ>EEs̊+bR-(Tr]G&"ٷ)ͽBR7KCqOuTwIX)KY2ؚ2To Qu}oah$ KlV endstream endobj 4037 0 obj << /Type /Page /Contents 4038 0 R /Resources 4036 0 R /MediaBox [0 0 595.276 841.89] /Parent 4055 0 R /Annots [ 4032 0 R 4033 0 R 4034 0 R 4035 0 R ] >> endobj 4032 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 750.844 98.137 759.691] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4033 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 520.667 98.137 529.513] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4034 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 292.363 163.681 301.21] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4035 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 257.038 98.137 265.885] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4039 0 obj << /D [4037 0 R /XYZ -11.232 878.039 null] >> endobj 3903 0 obj << /D [4037 0 R /XYZ 56.693 710.051 null] >> endobj 4040 0 obj << /D [4037 0 R /XYZ 56.693 704.073 null] >> endobj 4041 0 obj << /D [4037 0 R /XYZ 56.693 706.962 null] >> endobj 4042 0 obj << /D [4037 0 R /XYZ 56.693 696.004 null] >> endobj 4043 0 obj << /D [4037 0 R /XYZ 56.693 685.045 null] >> endobj 4044 0 obj << /D [4037 0 R /XYZ 56.693 674.086 null] >> endobj 3904 0 obj << /D [4037 0 R /XYZ 56.693 479.873 null] >> endobj 4045 0 obj << /D [4037 0 R /XYZ 56.693 473.896 null] >> endobj 4046 0 obj << /D [4037 0 R /XYZ 56.693 476.785 null] >> endobj 4047 0 obj << /D [4037 0 R /XYZ 56.693 465.826 null] >> endobj 4048 0 obj << /D [4037 0 R /XYZ 56.693 454.867 null] >> endobj 3905 0 obj << /D [4037 0 R /XYZ 56.693 216.631 null] >> endobj 4049 0 obj << /D [4037 0 R /XYZ 56.693 210.924 null] >> endobj 4050 0 obj << /D [4037 0 R /XYZ 56.693 213.813 null] >> endobj 4051 0 obj << /D [4037 0 R /XYZ 56.693 202.854 null] >> endobj 4052 0 obj << /D [4037 0 R /XYZ 56.693 191.895 null] >> endobj 4053 0 obj << /D [4037 0 R /XYZ 56.693 180.936 null] >> endobj 4054 0 obj << /D [4037 0 R /XYZ 56.693 169.977 null] >> endobj 4036 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4061 0 obj << /Length 1517 /Filter /FlateDecode >> stream xZMo6W5𳽥X@ uTE~}Î.z$+ԛߐ3o$,\Lί&ojXbW]"QmYru|o|ٌK:=/fdyZL<]ջ7o M *pBsbF%" of:0M_&O ۹Ln'?.DXSO$U~DŽ|_/g"`pS b d8A=> ǡ).(Uc ? J¤L0"9޲с< ŴKL?v+"N./&0:ʮuZ1Kq|M;ͶlMޯ7UD%?VvvᢓЁhLpen*u3pRm]#_%ymfnt,'_W!XXnl /> endobj 4056 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 661.081 98.137 669.928] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4057 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 407.192 98.137 416.039] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4058 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 130.29 98.137 139.137] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4062 0 obj << /D [4060 0 R /XYZ -16.307 878.039 null] >> endobj 3906 0 obj << /D [4060 0 R /XYZ 56.693 620.287 null] >> endobj 4063 0 obj << /D [4060 0 R /XYZ 56.693 614.31 null] >> endobj 4064 0 obj << /D [4060 0 R /XYZ 56.693 617.199 null] >> endobj 4065 0 obj << /D [4060 0 R /XYZ 56.693 606.24 null] >> endobj 4066 0 obj << /D [4060 0 R /XYZ 56.693 595.281 null] >> endobj 4067 0 obj << /D [4060 0 R /XYZ 56.693 584.322 null] >> endobj 3907 0 obj << /D [4060 0 R /XYZ 56.693 366.399 null] >> endobj 4068 0 obj << /D [4060 0 R /XYZ 56.693 360.421 null] >> endobj 4069 0 obj << /D [4060 0 R /XYZ 56.693 363.31 null] >> endobj 4070 0 obj << /D [4060 0 R /XYZ 56.693 352.352 null] >> endobj 4071 0 obj << /D [4060 0 R /XYZ 56.693 341.393 null] >> endobj 4072 0 obj << /D [4060 0 R /XYZ 56.693 330.434 null] >> endobj 4073 0 obj << /D [4060 0 R /XYZ 56.693 319.475 null] >> endobj 3908 0 obj << /D [4060 0 R /XYZ 56.693 89.497 null] >> endobj 4059 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4078 0 obj << /Length 1643 /Filter /FlateDecode >> stream xZ]o6}У= /ˏZ +1lw)ю%3ZY1%eq"e<{5xq9xi\BgǰW4XZ.'E9X7m7oz2}|}V2iJ^/`_UCLHMǙCֿEp42u2n"+fT& 1;bi;. E4UavK)&cs1VoDp џcM6 X) wdίz9Yﴸ}ͯo~yp-ݛO5vBH(rLb{<} з7bU6ݼGhv5ܧwW/jÐ,͍ñ=鈆| |~jc}tppˀF;!,=ٸ[ϋ]$sdY^?ʟvҽO/.qj8앿|1=e9AMJKz=!j#=]fSVzy$p3B&]ffeYB#9캳i Ųz2>LU}qS8{ŒBJ''Kz1 aк2B/ ;XpGB6OH;/p:pp(:Bm&F< AmrՂqzNjGq4HZ?aR} ;݂GMD˹MG(a@hT1 S[:lHu9$Zduf8Gjn&-"+jVΊEuz㗒yϘa1=W$rh j?!_T>y8 %m&6v>Q[97Fø!~ؚI9͗EjOGye :ٟrK_` ?L76^POV.m?6llr()-JGJ߈O !WFp(iG?180** %_?dcGZ N돽&~"{vax-LUG2ϡ> endobj 4074 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 534.262 98.137 543.109] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4075 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 249.926 103.118 258.773] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4079 0 obj << /D [4077 0 R /XYZ -11.232 878.039 null] >> endobj 4080 0 obj << /D [4077 0 R /XYZ 56.693 761.903 null] >> endobj 4081 0 obj << /D [4077 0 R /XYZ 56.693 755.228 null] >> endobj 4082 0 obj << /D [4077 0 R /XYZ 56.693 744.269 null] >> endobj 4083 0 obj << /D [4077 0 R /XYZ 56.693 733.31 null] >> endobj 4084 0 obj << /D [4077 0 R /XYZ 56.693 722.351 null] >> endobj 4085 0 obj << /D [4077 0 R /XYZ 56.693 711.392 null] >> endobj 3909 0 obj << /D [4077 0 R /XYZ 56.693 493.469 null] >> endobj 4086 0 obj << /D [4077 0 R /XYZ 56.693 487.491 null] >> endobj 4087 0 obj << /D [4077 0 R /XYZ 56.693 490.38 null] >> endobj 4088 0 obj << /D [4077 0 R /XYZ 56.693 479.422 null] >> endobj 4089 0 obj << /D [4077 0 R /XYZ 56.693 468.463 null] >> endobj 4090 0 obj << /D [4077 0 R /XYZ 56.693 457.504 null] >> endobj 4091 0 obj << /D [4077 0 R /XYZ 56.693 446.545 null] >> endobj 4092 0 obj << /D [4077 0 R /XYZ 56.693 435.586 null] >> endobj 3910 0 obj << /D [4077 0 R /XYZ 56.693 210.813 null] >> endobj 4093 0 obj << /D [4077 0 R /XYZ 56.693 206.011 null] >> endobj 4094 0 obj << /D [4077 0 R /XYZ 56.693 208.9 null] >> endobj 4095 0 obj << /D [4077 0 R /XYZ 56.693 197.941 null] >> endobj 4096 0 obj << /D [4077 0 R /XYZ 56.693 186.982 null] >> endobj 4097 0 obj << /D [4077 0 R /XYZ 56.693 176.023 null] >> endobj 4098 0 obj << /D [4077 0 R /XYZ 56.693 165.064 null] >> endobj 4076 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F108 345 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4104 0 obj << /Length 1504 /Filter /FlateDecode >> stream xZMo6W CrRt,PdȮQGJey_ߡD;۔iEC`[ߌ 3/> endobj 4099 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 673.136 103.118 681.982] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4100 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 385.275 103.118 394.121] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4101 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 121.75 103.118 130.597] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4105 0 obj << /D [4103 0 R /XYZ -16.307 878.039 null] >> endobj 3911 0 obj << /D [4103 0 R /XYZ 56.693 632.342 null] >> endobj 4106 0 obj << /D [4103 0 R /XYZ 56.693 626.365 null] >> endobj 4107 0 obj << /D [4103 0 R /XYZ 56.693 629.254 null] >> endobj 4108 0 obj << /D [4103 0 R /XYZ 56.693 618.295 null] >> endobj 4109 0 obj << /D [4103 0 R /XYZ 56.693 607.336 null] >> endobj 4110 0 obj << /D [4103 0 R /XYZ 56.693 596.377 null] >> endobj 4111 0 obj << /D [4103 0 R /XYZ 56.693 585.418 null] >> endobj 4112 0 obj << /D [4103 0 R /XYZ 56.693 574.459 null] >> endobj 3912 0 obj << /D [4103 0 R /XYZ 56.693 344.481 null] >> endobj 4113 0 obj << /D [4103 0 R /XYZ 56.693 338.503 null] >> endobj 4114 0 obj << /D [4103 0 R /XYZ 56.693 341.393 null] >> endobj 4115 0 obj << /D [4103 0 R /XYZ 56.693 330.434 null] >> endobj 4116 0 obj << /D [4103 0 R /XYZ 56.693 319.475 null] >> endobj 4117 0 obj << /D [4103 0 R /XYZ 56.693 308.516 null] >> endobj 4118 0 obj << /D [4103 0 R /XYZ 56.693 297.557 null] >> endobj 3913 0 obj << /D [4103 0 R /XYZ 56.693 81.588 null] >> endobj 4102 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4123 0 obj << /Length 1564 /Filter /FlateDecode >> stream x[Mo6Wh 7[n ^ Mdר#-w(ю%1FIPI əa|pv18}gqiŔ(M8 rxv[;: ʓ_eVMe_Mb;ˈEX-<4Zip ;p{:_6IbP'=X$YGDŗ50ѩ!2Mubfq d+,~م2Ui KJʵsᾘ_WoD`q_`M&[+aY'l<[wc\Xe<||U,nGނO ~*Ps.5SB?3B۫*U D3~{@ֆ*drT[4(Ŵ9,&K&~br$8xL*nQHɲ󫿟vԽO/lB__g5R?%J#{UvܴÃ~OP@ izךS'DPuy+WCeqS}M]܀vVV>8QcC L*jlZ,I76y^jY튆S9@1+G \Y-G=@#ȅ3zs6s,%x#OhAb2B>ZT2E4CY[nvR"|xN?&3u5|/䦛kBrC{@tr¡d7e1ьڷhi$p$Xg:8*r-)+Ab5/EHkR~(yN0 {n J|7ABjDO qjw: =xr[#N8G8H :d(/,uɚ7'aD# uy~T " $l4j։G0F _6όXծo}Y~I-1I]~+Z5ӊdfīIJfe?dfYJ \u ?.Wz&~bS}w};ןUO̍dYNu%s~~du2U.dX8*b;D D6Y QQD)B&zGMoqgpUCgt#GP#W? s+> endobj 4119 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 511.249 103.118 520.095] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4120 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 246.401 103.118 255.248] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4124 0 obj << /D [4122 0 R /XYZ -11.232 878.039 null] >> endobj 4125 0 obj << /D [4122 0 R /XYZ 56.693 761.903 null] >> endobj 4126 0 obj << /D [4122 0 R /XYZ 56.693 755.228 null] >> endobj 4127 0 obj << /D [4122 0 R /XYZ 56.693 744.269 null] >> endobj 4128 0 obj << /D [4122 0 R /XYZ 56.693 733.31 null] >> endobj 4129 0 obj << /D [4122 0 R /XYZ 56.693 722.351 null] >> endobj 4130 0 obj << /D [4122 0 R /XYZ 56.693 711.392 null] >> endobj 4131 0 obj << /D [4122 0 R /XYZ 56.693 700.433 null] >> endobj 3914 0 obj << /D [4122 0 R /XYZ 56.693 470.455 null] >> endobj 4132 0 obj << /D [4122 0 R /XYZ 56.693 464.477 null] >> endobj 4133 0 obj << /D [4122 0 R /XYZ 56.693 467.367 null] >> endobj 4134 0 obj << /D [4122 0 R /XYZ 56.693 456.408 null] >> endobj 4135 0 obj << /D [4122 0 R /XYZ 56.693 445.449 null] >> endobj 4136 0 obj << /D [4122 0 R /XYZ 56.693 434.49 null] >> endobj 4137 0 obj << /D [4122 0 R /XYZ 56.693 423.531 null] >> endobj 3915 0 obj << /D [4122 0 R /XYZ 56.693 205.608 null] >> endobj 4138 0 obj << /D [4122 0 R /XYZ 56.693 199.63 null] >> endobj 4139 0 obj << /D [4122 0 R /XYZ 56.693 202.519 null] >> endobj 4140 0 obj << /D [4122 0 R /XYZ 56.693 191.56 null] >> endobj 4141 0 obj << /D [4122 0 R /XYZ 56.693 180.601 null] >> endobj 4142 0 obj << /D [4122 0 R /XYZ 56.693 169.643 null] >> endobj 4143 0 obj << /D [4122 0 R /XYZ 56.693 158.684 null] >> endobj 4144 0 obj << /D [4122 0 R /XYZ 56.693 147.725 null] >> endobj 4121 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F108 345 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4147 0 obj << /Length 221 /Filter /FlateDecode >> stream xڝ=o1 WA%JȆ",V2td[1YYpVZ;0VؠZAŠwe(髙If%Ok咏)Ь]x_V]IᵫDҦTȻk#;1[Rg5¶-> oy> endobj 4148 0 obj << /D [4146 0 R /XYZ -16.307 878.039 null] >> endobj 4145 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4154 0 obj << /Length 1660 /Filter /FlateDecode >> stream xZn6}W.j.}ۢ`nЗ"p5ةl%JŎ(N!g 9&&Wד7M,zHED[j\'7ӷO_ٜK:}eiCLt{>-6߼341 ͉L(67>4z*g*Q3MJ5?ʇD2J8(|I>N~У_OBe%'TTfٷ͹ D C@qh&ݷvz=.<Ͷ}U'0xPx[C^`Y= u.a 26 j/b|} R/"eGr + xȎ n׻mnn)C;sƈ![lW 0x? Dl 0Hpধ@R"<3nʏFK/>"Ċ2,0H S0}\d+c,gxnG)u< ŴkL?vK*)_|$7s`tJ cŊ*/brf G~etyJoW{{z`No?Qʷ-޻m2⟷U'јsA˜C}{3p|P#cOXh-̟ ,X}%j=LcƫU](Aht˸6"[6d3QBe& ;O7p,On 7@B0k[L3Ac)Ztk4~ |! @`$8ƴaB[Lh`ڭ xDb> endobj 4149 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 661.081 103.118 669.928] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4150 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 396.233 103.118 405.08] /A << /S /GoTo /D (api-index-0.11) >> >> endobj 4151 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 96.318 98.137 105.164] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4155 0 obj << /D [4153 0 R /XYZ -11.232 878.039 null] >> endobj 3916 0 obj << /D [4153 0 R /XYZ 56.693 620.287 null] >> endobj 4156 0 obj << /D [4153 0 R /XYZ 56.693 614.31 null] >> endobj 4157 0 obj << /D [4153 0 R /XYZ 56.693 617.199 null] >> endobj 4158 0 obj << /D [4153 0 R /XYZ 56.693 606.24 null] >> endobj 4159 0 obj << /D [4153 0 R /XYZ 56.693 595.281 null] >> endobj 4160 0 obj << /D [4153 0 R /XYZ 56.693 584.322 null] >> endobj 4161 0 obj << /D [4153 0 R /XYZ 56.693 573.363 null] >> endobj 3917 0 obj << /D [4153 0 R /XYZ 56.693 355.44 null] >> endobj 4162 0 obj << /D [4153 0 R /XYZ 56.693 349.462 null] >> endobj 4163 0 obj << /D [4153 0 R /XYZ 56.693 352.352 null] >> endobj 4164 0 obj << /D [4153 0 R /XYZ 56.693 341.393 null] >> endobj 4165 0 obj << /D [4153 0 R /XYZ 56.693 330.434 null] >> endobj 4166 0 obj << /D [4153 0 R /XYZ 56.693 319.475 null] >> endobj 4167 0 obj << /D [4153 0 R /XYZ 56.693 308.516 null] >> endobj 4168 0 obj << /D [4153 0 R /XYZ 56.693 297.557 null] >> endobj 4152 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4175 0 obj << /Length 1773 /Filter /FlateDecode >> stream xZnF}WQ*/훋@% Y^)Beѥw7IK E/Ιݙ9nG77 2a a2pU$zx>ov_ɔ .w^6Y֫)c8׻67#Hf3FF嶱b =D"JxD&Jl\G~ڞr$,'ȁ__g*D+%!Wy iU%^=uw2GT :~c ӎ6DvP{;iN>L%*7y٦uZ@7n[7u}""GS4?O=l񏾇HJ=\C,XKA,{ܭғtjץICj㯁_=#cԠs{ȫrj龧NsΩOU3` Y:kʩ}IS )ICh,᪋kۼ؅QdUcy/yKpթxS,}'N{VE94\qRnH="Nr3gu~:Kf/Md 0$1txo*j=e!* 3X> cdBxMbBES1Em-6(XAԭvUNS% J?o)Xi8, L8`Hx@@ӓ  eSpPP%u\.|@([vȹSiG`:Hʠ=O%hP6̌(Xto\7yF%o2,kx;e4Gx  8I}rN0 5iܤLf,C9OyoR#%@7 E^iþ=^W(#Oټ,HedUHk>ZXMzpŅF+ZsV믯p)v)^q|Ekn 6s9`d;VXkfdũ1 `c=$lU ΃xtZ |H[cQ$ub!Ldkb_!B:;3/72ow.gV* bVt?hk\ (A+zp> endobj 4170 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 505.812 98.137 514.659] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4171 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 187.041 83.303 195.888] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4172 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 170.124 98.137 178.971] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4176 0 obj << /D [4174 0 R /XYZ -16.307 878.039 null] >> endobj 3918 0 obj << /D [4174 0 R /XYZ 56.693 741.921 null] >> endobj 4177 0 obj << /D [4174 0 R /XYZ 56.693 735.943 null] >> endobj 4178 0 obj << /D [4174 0 R /XYZ 56.693 738.833 null] >> endobj 4179 0 obj << /D [4174 0 R /XYZ 56.693 727.874 null] >> endobj 4180 0 obj << /D [4174 0 R /XYZ 56.693 716.915 null] >> endobj 4181 0 obj << /D [4174 0 R /XYZ 56.693 705.956 null] >> endobj 4182 0 obj << /D [4174 0 R /XYZ 56.693 694.997 null] >> endobj 3919 0 obj << /D [4174 0 R /XYZ 56.693 465.019 null] >> endobj 4183 0 obj << /D [4174 0 R /XYZ 56.693 459.041 null] >> endobj 4184 0 obj << /D [4174 0 R /XYZ 56.693 461.93 null] >> endobj 4185 0 obj << /D [4174 0 R /XYZ 56.693 450.971 null] >> endobj 4186 0 obj << /D [4174 0 R /XYZ 56.693 440.013 null] >> endobj 4187 0 obj << /D [4174 0 R /XYZ 56.693 429.054 null] >> endobj 4188 0 obj << /D [4174 0 R /XYZ 56.693 418.095 null] >> endobj 3920 0 obj << /D [4174 0 R /XYZ 56.693 130.784 null] >> endobj 4189 0 obj << /D [4174 0 R /XYZ 56.693 125.822 null] >> endobj 4190 0 obj << /D [4174 0 R /XYZ 56.693 128.711 null] >> endobj 4191 0 obj << /D [4174 0 R /XYZ 56.693 117.752 null] >> endobj 4192 0 obj << /D [4174 0 R /XYZ 56.693 106.793 null] >> endobj 4193 0 obj << /D [4174 0 R /XYZ 56.693 95.834 null] >> endobj 4173 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4201 0 obj << /Length 1457 /Filter /FlateDecode >> stream xڽYn6SRgU5 RH@qG#yܴ})۲X^|H4CN&SmF1&7H* G)\dgU$GL:z874+ɖ|e4&(;B3 LkTp@ѱhݡѻ]ѵ(pK4]|!G z` ꑃjJ2MƚDJJz6ʦSюlV-ꔟ ;M?_ t)Ø"-i)A)R9V`i7]S2&0c1RZa̶-- b,ٵ`{"2N!+uIogWvgZ1h` 4\zkayMPɥXQz>4`V\LAѶ];(0^̃.yܮ4mf_>IHCHeZyeU3@(t t 3Oc р`1[ Uum@^ 7͗ %diufζZ7ǚ0Ʊ[TaFbP *,-jW i nnP>(78MZ  2\ݤqwkF4Kmh]&Y+${Ol&?̴EoYa$2^gNȚ͌֝YMT3Dz͈ pR/ox}4gc#dX̵ѫUAҗ 65X؎廡E@^1[:PotI< !%LH =m &&?fƦݧ3_P@!!V(bύ-{QpG= !r sHX>W2SNDZ-;Y][@4awl#ea61=`vBBj?vOZDoKߧ@r(H]QCiּO)XC$OnrwbKvVY{6&gz[A+L94^D}{?-W~A뇋8 oBEo=+ r Peڔdzf6|ϋ浡Hʢ~gJySJ&4ylVL *EG~2XoǃfXH'"k߮d۹ywzMs 8`/ipv iOɬ|=;MB"lk孻Vu.me  endstream endobj 4200 0 obj << /Type /Page /Contents 4201 0 R /Resources 4199 0 R /MediaBox [0 0 595.276 841.89] /Parent 4169 0 R /Annots [ 4194 0 R 4195 0 R 4196 0 R 4197 0 R 4198 0 R ] >> endobj 4194 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 578.89 83.303 587.737] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4195 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 560.958 98.137 569.804] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4196 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 331.883 83.303 342.07] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4197 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.034 331.883 191.735 342.07] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 4198 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.691 315.703 98.137 324.55] /A << /S /GoTo /D (api-index-0.7) >> >> endobj 4202 0 obj << /D [4200 0 R /XYZ -11.232 878.039 null] >> endobj 3921 0 obj << /D [4200 0 R /XYZ 56.693 520.164 null] >> endobj 4203 0 obj << /D [4200 0 R /XYZ 56.693 514.187 null] >> endobj 4204 0 obj << /D [4200 0 R /XYZ 56.693 517.076 null] >> endobj 4205 0 obj << /D [4200 0 R /XYZ 56.693 506.117 null] >> endobj 4206 0 obj << /D [4200 0 R /XYZ 56.693 495.158 null] >> endobj 4207 0 obj << /D [4200 0 R /XYZ 56.693 272.91 null] >> endobj 3926 0 obj << /D [4200 0 R /XYZ 56.693 247.961 null] >> endobj 4208 0 obj << /D [4200 0 R /XYZ 56.693 242.396 null] >> endobj 4209 0 obj << /D [4200 0 R /XYZ 56.693 245.285 null] >> endobj 4210 0 obj << /D [4200 0 R /XYZ 56.693 164.064 null] >> endobj 3922 0 obj << /D [4200 0 R /XYZ 56.693 139.115 null] >> endobj 4211 0 obj << /D [4200 0 R /XYZ 56.693 133.55 null] >> endobj 4212 0 obj << /D [4200 0 R /XYZ 56.693 136.44 null] >> endobj 4199 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4219 0 obj << /Length 1884 /Filter /FlateDecode >> stream xZKF+tRCֱ7$%`k7!== VK\b4MO= 8X8]^.0Q( H,P!|*\σ7͗/e=RǗixj6Q:yws X(\(=pD+hz׈,{Q`)v#μ 2 ij׏IM Sr'M&A4W<8.l!OZ߁`u>xNg{NBad4WS30Hp{j3.DPA1hݣPC񽊛E}vcIpb,O$ˆVeǏ?_PY8dx1ݿZJ{~e9Kcd/ݮ 1())AB 50 B5Z LńV6j8%ER>M(O7q1V1<ŷ)#&Es}Γ2n,šiq:Vx'@ $b> 'O?%HPyH"BUR-EZ8nl >|ʒyË3'4G)?P !hbMլLU+N`:~/?Lt鈲D]uH "N Őxo}=x'L!¦ 6e&9|Gw0M͡Q؀PQO!P SCqt9Qoyi_1r>^,)0\gV=!xN Hq_s2H )ctT3xx|羘;VOJgi4d*D8~}Ś{ҿNja&jxwI<ʼnɸ+I&(gL`f .94GoadaD1ȧIc兂Ȕ^"5R*UvRCYK#%rgmDN4E&(3Kv#4`>ܐցPྚ{,eY&z`JѪJbJm|EqDjw4|  8;)I(DG 0XCyĽ jZI}3-ĺyķIYVW+sa*B(N<=\xX1ZO`"|Wj*S&*; S? AIS]V '[0A` "1[V ]9u[صӲ qp)@LBX m V  10`&`Ѳ))Fk~Ov(Y;>-~mhq8n͝7[3a䨵mnZƷ`17~KjZ'kp6{CUutLQ5` X+Υɝz%WD~ndp0HܗWML`{LQp2}|0!ǵ@> { wM-uB a|?ʵ2\L+uu2S 7+\_8csE5')4lo<}:?GP`}""gI"8F^P<> endobj 4213 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [358.299 512.712 385.906 523.616] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4214 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.408 403.393 306.508 415.727] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 4215 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [273.413 392.868 301.019 405.386] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4216 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 303.204 125.813 314.108] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 4220 0 obj << /D [4218 0 R /XYZ -16.307 878.039 null] >> endobj 3923 0 obj << /D [4218 0 R /XYZ 56.693 741.921 null] >> endobj 4221 0 obj << /D [4218 0 R /XYZ 56.693 735.943 null] >> endobj 4222 0 obj << /D [4218 0 R /XYZ 56.693 738.833 null] >> endobj 4223 0 obj << /D [4218 0 R /XYZ 56.693 638.263 null] >> endobj 3924 0 obj << /D [4218 0 R /XYZ 56.693 612.902 null] >> endobj 4224 0 obj << /D [4218 0 R /XYZ 56.693 606.924 null] >> endobj 4225 0 obj << /D [4218 0 R /XYZ 56.693 609.813 null] >> endobj 4226 0 obj << /D [4218 0 R /XYZ 56.693 598.854 null] >> endobj 4227 0 obj << /D [4218 0 R /XYZ 56.693 587.895 null] >> endobj 4228 0 obj << /D [4218 0 R /XYZ 56.693 576.936 null] >> endobj 4229 0 obj << /D [4218 0 R /XYZ 56.693 565.978 null] >> endobj 3925 0 obj << /D [4218 0 R /XYZ 56.693 264.468 null] >> endobj 4230 0 obj << /D [4218 0 R /XYZ 56.693 258.49 null] >> endobj 4231 0 obj << /D [4218 0 R /XYZ 56.693 261.379 null] >> endobj 4232 0 obj << /D [4218 0 R /XYZ 56.693 250.42 null] >> endobj 4233 0 obj << /D [4218 0 R /XYZ 56.693 239.461 null] >> endobj 4234 0 obj << /D [4218 0 R /XYZ 56.693 228.503 null] >> endobj 4235 0 obj << /D [4218 0 R /XYZ 56.693 217.544 null] >> endobj 4236 0 obj << /D [4218 0 R /XYZ 56.693 206.585 null] >> endobj 4217 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4268 0 obj << /Length 1829 /Filter /FlateDecode >> stream xڵZnF}WPrۢ 4AӤ<$AKkDeb/KSzHH䙳3gggޫٹҞFZR]\{B"4.i|?9O/?>khV|D`yٹ=`%\QsF3D"0Èk߻\y`DqO OqP94}7N)Gb iMwuQ4)lۤ Z!xapYf>;[Ǜ0 (Fp^7CtJB MMg2`W8 !GGX0&DXK0@in!"k.خFN8xN[<5ƀCG@~O>T/,LXp" fDir_;(͆ј&YcnCq*{sb.p65gbrǙ 9n5/¿ ٽf 6 misO092,> 55 Yّ예~z`L"E1\9 (4”?7,D _*UM\Fz&@9. #‰[sbV60ʂw vJX d!_$EZijҠRNFۆQڑΈ{lx`A=!Ҝ8+w^,3(fO հCJ,?|JԮu$Mu/g)ԲfC:b OSݲiR6{Q$|T2re ǒSRsl`Vzr8lA2BO#X[3oqYH\U' fա*h I>6g8hdư*6 Xpb>ZҋUadAdtY1-ei MB]j8v]U]oU)ү0 9brDb>lX|v,UmA_tj y˲ȼ⠪~RdK^nYJKh6..+pZ8zA2BQ#*<ȾxIe*Ca8Ue2kj,Uz+DlwA4O׃6 9tt[Ϩ'w ikeZrXqL^f[~YmW~ijHqL aOTտ&@l& Ϊ{j?gaao"!er.`G!R}%ƻ|PGko;Z<>Ou U(4TKe2@J)FS@ E\^,%ڌ7 <_#;l)gߩPkwպS! X#:0&;@3ƫ"Y s->͵;\;l#1A>#>1fa9fCme($TziV*֢zm`XKO.Zvrޛdn;~B,vM۷'Vhf=2Jgqb¸|K4OO endstream endobj 4267 0 obj << /Type /Page /Contents 4268 0 R /Resources 4266 0 R /MediaBox [0 0 595.276 841.89] /Parent 4169 0 R /Annots [ 4237 0 R 4238 0 R 4239 0 R 4240 0 R 4241 0 R 4242 0 R 4243 0 R 4244 0 R 4245 0 R 4246 0 R 4247 0 R 4248 0 R 4249 0 R 4250 0 R 4251 0 R 4252 0 R 4253 0 R 4254 0 R 4255 0 R 4256 0 R 4257 0 R 4258 0 R 4259 0 R 4260 0 R 4261 0 R 4262 0 R 4263 0 R 4264 0 R ] >> endobj 4237 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 660.618 125.813 671.522] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 4238 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [119.019 592.726 171.88 603.63] /A << /S /GoTo /D (BtWavetable) >> >> endobj 4239 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [270.23 592.726 326.568 603.63] /A << /S /GoTo /D (BtWavelevels) >> >> endobj 4240 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 526.493 105.769 540.441] /A << /S /GoTo /D (gboolean) >> >> endobj 4241 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 526.493 328.795 540.441] /A << /S /GoTo /D (bt-wave-add-wavelevel) >> >> endobj 4242 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 514.438 119.716 528.386] /A << /S /GoTo /D (BtWavelevel) >> >> endobj 4243 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 514.438 347.923 528.386] /A << /S /GoTo /D (bt-wave-get-level-by-index) >> >> endobj 4244 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 502.383 100.748 516.331] /A << /S /GoTo /D (BtWave) >> >> endobj 4245 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 502.383 286.235 516.331] /A << /S /GoTo /D (bt-wave-new) >> >> endobj 4246 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 440.06 84.15 454.008] /A << /S /GoTo /D (guint) >> >> endobj 4247 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 440.06 260.88 454.008] /A << /S /GoTo /D (BtWave--channels) >> >> endobj 4248 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 428.005 91.343 441.953] /A << /S /GoTo /D (gulong) >> >> endobj 4249 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 428.005 248.008 441.953] /A << /S /GoTo /D (BtWave--index) >> >> endobj 4250 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 415.951 139.442 429.898] /A << /S /GoTo /D (BtWaveLoopMode) >> >> endobj 4251 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 415.951 269.189 429.898] /A << /S /GoTo /D (BtWave--loop-mode) >> >> endobj 4252 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 403.896 85.794 417.843] /A << /S /GoTo /D (gchar) >> >> endobj 4253 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 403.896 247.6 417.843] /A << /S /GoTo /D (BtWave--name) >> >> endobj 4254 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 391.841 93.564 405.789] /A << /S /GoTo /D (BtSong) >> >> endobj 4255 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 391.841 244.84 405.789] /A << /S /GoTo /D (BtWave--song) >> >> endobj 4256 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 379.786 85.794 393.734] /A << /S /GoTo /D (gchar) >> >> endobj 4257 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 379.786 237.089 393.734] /A << /S /GoTo /D (BtWave--uri) >> >> endobj 4258 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 367.731 95.766 381.679] /A << /S /GoTo /D (gdouble) >> >> endobj 4259 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 367.731 255.709 381.679] /A << /S /GoTo /D (BtWave--volume) >> >> endobj 4260 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 355.676 96.872 369.624] /A << /S /GoTo /D (gpointer) >> >> endobj 4261 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 355.676 269.438 369.624] /A << /S /GoTo /D (BtWave--wavelevels) >> >> endobj 4262 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 293.353 263.102 307.301] /A << /S /GoTo /D (BtWave-struct) >> >> endobj 4263 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 281.299 307.376 295.246] /A << /S /GoTo /D (BtWaveLoopMode) >> >> endobj 4264 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [138.675 134.852 194.903 145.756] /A << /S /GoTo /D (BtPersistence) >> >> endobj 4269 0 obj << /D [4267 0 R /XYZ -11.232 878.039 null] >> endobj 93 0 obj << /D [4267 0 R /XYZ 56.693 646.604 null] >> endobj 1110 0 obj << /D [4267 0 R /XYZ 56.693 609.608 null] >> endobj 4270 0 obj << /D [4267 0 R /XYZ 56.693 551.4 null] >> endobj 4271 0 obj << /D [4267 0 R /XYZ 56.693 464.967 null] >> endobj 4272 0 obj << /D [4267 0 R /XYZ 56.693 318.26 null] >> endobj 4273 0 obj << /D [4267 0 R /XYZ 56.693 247.089 null] >> endobj 4274 0 obj << /D [4267 0 R /XYZ 56.693 242.18 null] >> endobj 4275 0 obj << /D [4267 0 R /XYZ 56.693 245.667 null] >> endobj 4276 0 obj << /D [4267 0 R /XYZ 56.693 234.708 null] >> endobj 4277 0 obj << /D [4267 0 R /XYZ 56.693 223.749 null] >> endobj 4278 0 obj << /D [4267 0 R /XYZ 56.693 212.79 null] >> endobj 4279 0 obj << /D [4267 0 R /XYZ 56.693 150.684 null] >> endobj 4280 0 obj << /D [4267 0 R /XYZ 56.693 95.054 null] >> endobj 4266 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4303 0 obj << /Length 1672 /Filter /FlateDecode >> stream xڽZKs6W(u,oSƙɤv7%1#S.IEI],PLǷ@`ͥҁFZR!,P7vngFGc*]>~Ncp4N&(DכOo.C V2#+B`B"^PPnyR^e"< n` } 0: ̇@(p  y! g%g Hsoq6IrX=`L9bRWcgqguL_&Yn43Ihe:Cc57 u{a4xmD0^#*x4TC>c(4Q0_n14}T -zm#Է.nWGF (e.+eHaHp>DԌ "%2׈@=/_A{C_A 1}GpDy:{)j=Cb^r|^ .ݛ/݊hVrl3Yvq"]|]+k ~M,~h ~7AqL ##aFH*u9ݕm7sLEwv_Q%xQ<bPtw@geGi=m̋+W/BV~ {aJ!wTWUPb& t=uoVdln([1 s5%;t E07vŽgU3X/. D*AƢ61z8>tZ.Z!&[zK 9nv/u漆؃S&& RMX* DCXghπ2J;†Zvec$)Q&B> 4%?T@.ZO]qK!e6?O:ClSXˎ֕_sNr?|\+95Yem;q+_9 Sc%sWDQHm^(f+jMK lϢb#ֲ⻵lUm)SHP0`P;ʶp>P}w-h3纮6ۀ 誦Kg\ 7g\KDD lE4g櫿F=,FqʢA- _ w@gU[ @se.@JwΪ@qH_G.c~qXp endstream endobj 4302 0 obj << /Type /Page /Contents 4303 0 R /Resources 4301 0 R /MediaBox [0 0 595.276 841.89] /Parent 4169 0 R /Annots [ 4265 0 R 4295 0 R 4296 0 R 4297 0 R 4298 0 R 4299 0 R 4300 0 R ] >> endobj 4265 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.525 724.422 311.863 735.326] /A << /S /GoTo /D (BtWavelevels) >> >> endobj 4295 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [339.729 591.417 421.96 602.321] /A << /S /GoTo /D (bt-wavelevel-new) >> >> endobj 4296 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 455.947 83.303 466.133] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4297 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 455.947 164.468 466.133] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 4298 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 338.595 161.519 349.126] /A << /S /GoTo /D (bt-wave-add-wavelevel) >> >> endobj 4299 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 202.751 108.16 212.938] /A << /S /GoTo /D (BtWavelevel) >> >> endobj 4300 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [154.585 202.751 183.138 212.938] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4304 0 obj << /D [4302 0 R /XYZ -16.307 878.039 null] >> endobj 4305 0 obj << /D [4302 0 R /XYZ 56.693 741.323 null] >> endobj 4306 0 obj << /D [4302 0 R /XYZ 56.693 683.095 null] >> endobj 4282 0 obj << /D [4302 0 R /XYZ 56.693 657.733 null] >> endobj 4307 0 obj << /D [4302 0 R /XYZ 56.693 651.756 null] >> endobj 4308 0 obj << /D [4302 0 R /XYZ 56.693 654.645 null] >> endobj 4309 0 obj << /D [4302 0 R /XYZ 56.693 643.686 null] >> endobj 4310 0 obj << /D [4302 0 R /XYZ 56.693 632.727 null] >> endobj 4283 0 obj << /D [4302 0 R /XYZ 56.693 416.493 null] >> endobj 4311 0 obj << /D [4302 0 R /XYZ 56.693 410.515 null] >> endobj 4312 0 obj << /D [4302 0 R /XYZ 56.693 413.405 null] >> endobj 4313 0 obj << /D [4302 0 R /XYZ 56.693 402.446 null] >> endobj 4314 0 obj << /D [4302 0 R /XYZ 56.693 391.487 null] >> endobj 4284 0 obj << /D [4302 0 R /XYZ 56.693 145.365 null] >> endobj 4315 0 obj << /D [4302 0 R /XYZ 56.693 139.387 null] >> endobj 4316 0 obj << /D [4302 0 R /XYZ 56.693 142.276 null] >> endobj 4317 0 obj << /D [4302 0 R /XYZ 56.693 131.317 null] >> endobj 4318 0 obj << /D [4302 0 R /XYZ 56.693 120.359 null] >> endobj 4319 0 obj << /D [4302 0 R /XYZ 56.693 109.4 null] >> endobj 4320 0 obj << /D [4302 0 R /XYZ 56.693 98.441 null] >> endobj 4301 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4326 0 obj << /Length 1649 /Filter /FlateDecode >> stream xڽZr6}WQa)NbO3vjd9OG,*({MOLjhrE Aqq!ZNѿ#p@MLݻ#nt-o 2 qv{k/g )5Zd;EF&Ȣn'R'_Z36Deڱ˘-MJdx,MV뜝m$\"a|:6?fYm VPAU;`qW`cpǡ&;Y 4}HfYoއF0Zehq}hdaJ"l:&I}ƂM \|^`(nm<z0, .%&T Xƥ"X#FVՄB.uM. AL(QJfТ#Ju V1dYiSP""%D1t>|~S)6uO`lg !)Šx?L]]LN4UR0nyPRɉ2tJBubDDCU|zN֖.͞"VMEANS@PAxt WB'Mح p=Ñau=,\/ҤxJj>b.VEuv7 $xo@; $B_aW^Bt[|A%RKS@#xH[ ޒ xy \k3޿08:E=[V{6:@PHz77 Wˢv!e6- gO<ۜ&APMk770.OBvV DIr=tYFYu"-nw[DYV)\ F\̻֛,i P BjΨJ)f eJ VbաeW57QfW”V2<+N$xVŹd̋0D( f.?NuU#ϚAb'RS?d!I̋ 7p =)(L8DaN\HKy%f&ʉbskx t٨ԤgaUo(͋s ,ک6Zy(;)کl^Moo//n..߼<=mqVBԀʁ)pyVE4mQLn=,Ѣ-KE!;G@T fy>1v&Ĩ ٟuxQuӳy[h?j{h;,eچ.,2z.<@:u T[W?|GLуظJMCǶf'#_3*ap^eyuP(Лh.]$XH@>׈3^~L)+l-@6а/04R?`Chb_~X7f'3.hv9 'q_40lygj endstream endobj 4325 0 obj << /Type /Page /Contents 4326 0 R /Resources 4324 0 R /MediaBox [0 0 595.276 841.89] /Parent 4340 0 R /Annots [ 4322 0 R 4323 0 R ] >> endobj 4322 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 469.7 163.681 478.546] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4323 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 300.32 89.191 311.224] /A << /S /GoTo /D (BtWave) >> >> endobj 4327 0 obj << /D [4325 0 R /XYZ -11.232 878.039 null] >> endobj 4328 0 obj << /D [4325 0 R /XYZ 56.693 762.899 null] >> endobj 4329 0 obj << /D [4325 0 R /XYZ 56.693 751.94 null] >> endobj 4330 0 obj << /D [4325 0 R /XYZ 56.693 740.981 null] >> endobj 4331 0 obj << /D [4325 0 R /XYZ 56.693 426.316 null] >> endobj 4294 0 obj << /D [4325 0 R /XYZ 56.693 400.954 null] >> endobj 4332 0 obj << /D [4325 0 R /XYZ 56.693 394.977 null] >> endobj 4333 0 obj << /D [4325 0 R /XYZ 56.693 397.866 null] >> endobj 4287 0 obj << /D [4325 0 R /XYZ 56.693 317.82 null] >> endobj 4334 0 obj << /D [4325 0 R /XYZ 62.67 237.427 null] >> endobj 4335 0 obj << /D [4325 0 R /XYZ 62.67 207.539 null] >> endobj 4336 0 obj << /D [4325 0 R /XYZ 62.67 171.674 null] >> endobj 4337 0 obj << /D [4325 0 R /XYZ 56.693 121.459 null] >> endobj 4285 0 obj << /D [4325 0 R /XYZ 56.693 97.51 null] >> endobj 4338 0 obj << /D [4325 0 R /XYZ 56.693 92.945 null] >> endobj 4339 0 obj << /D [4325 0 R /XYZ 56.693 95.834 null] >> endobj 4324 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4343 0 obj << /Length 972 /Filter /FlateDecode >> stream x͘Ks6Lc Nә:=qiNi)n(JH?roc4@b2$'CM#2Ylc 9y7<.?}*z4 unC]f:$::ьhT VƜj^#(tLG1wPd{"Jɕ" "甜~jyT@ 6ejj"ItzYhrjZLyS#Dv&dB6(ޛl[Ńt=jxe+5?dv11I5JUTAW/R۠ɹRRGoGGoѧ7>55t4fDҠYK^AD9H©ц,v㿧/'h2 bp9WmfQMwc}i`)0I(RS]hC|7^}Zlg eΖ{-@( (N T>+>SWK76cgXL<z3^ \v_((EBjAPP\ | .E1wy\3u]AH"<$~{O4&૧ _,pOdɪ  Ύb@2+jaLŀ}xD8 2"x2C)J^_?ڝC@ۋҙ;?l޳;$l+C W0wCgcj m Ɋ Ad~*2ppn degwSPb߲J/*SkAAUCVyWS 6eg duOQ䀭;w> endobj 4344 0 obj << /D [4342 0 R /XYZ -16.307 878.039 null] >> endobj 4286 0 obj << /D [4342 0 R /XYZ 56.693 656.253 null] >> endobj 4345 0 obj << /D [4342 0 R /XYZ 56.693 650.275 null] >> endobj 4346 0 obj << /D [4342 0 R /XYZ 56.693 653.164 null] >> endobj 4288 0 obj << /D [4342 0 R /XYZ 56.693 537.252 null] >> endobj 4347 0 obj << /D [4342 0 R /XYZ 56.693 531.275 null] >> endobj 4348 0 obj << /D [4342 0 R /XYZ 56.693 534.164 null] >> endobj 4289 0 obj << /D [4342 0 R /XYZ 56.693 418.252 null] >> endobj 4349 0 obj << /D [4342 0 R /XYZ 56.693 412.275 null] >> endobj 4350 0 obj << /D [4342 0 R /XYZ 56.693 415.164 null] >> endobj 4290 0 obj << /D [4342 0 R /XYZ 56.693 299.252 null] >> endobj 4351 0 obj << /D [4342 0 R /XYZ 56.693 293.274 null] >> endobj 4352 0 obj << /D [4342 0 R /XYZ 56.693 296.164 null] >> endobj 4291 0 obj << /D [4342 0 R /XYZ 56.693 198.185 null] >> endobj 4353 0 obj << /D [4342 0 R /XYZ 56.693 192.207 null] >> endobj 4354 0 obj << /D [4342 0 R /XYZ 56.693 195.096 null] >> endobj 4341 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4379 0 obj << /Length 1607 /Filter /FlateDecode >> stream xڽZnF}WPPE}Em&v`0I8_Y.i(fyy۳gf x:::U3H*'$y@7y, 'T`8JНo4?xD7G{`%\QAsD"8tP?r vLG<=D2]ߎ.>coxq[O(pyFp=pl LXj:mB\X işbⓏ=wlw]ԋ}&p,Y];H$"F۞C˧4s.nnt~ܸ6+1~qu?d&D!Ø4 _Fl- fk>,]yī,]_g۰^FQ2¿g?a9|ux]GYkѓlIy`dԳwaoRJGpch)F#IJ IȥCR2lk)K)y|rb&dg~Dh, C2]]'KX-$Zfq XՐ"`.!LZ!u]" >>%ڠ֚HPn V(pjϣ' m$)R" 7!k4)YxXl@J?cH˂:PfJ$<_QYx1hq< 9c !BMS7EGsAͽ?4&c„ ^BOۿӫw=9fB-2Lǹh~ $R ?FT6AXvEfb*_U*p٦t(ցt!?EjIfՃdZބ",SG{*AŜ,h'$g`V">|ˬk10b Xzc:NyJa1 $w MRkC6U}e> endobj 4355 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.002 474.765 223.496 485.669] /A << /S /GoTo /D (BtWave) >> >> endobj 4356 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 408.532 418.798 422.48] /A << /S /GoTo /D (BT-WAVELEVEL-DEFAULT-ROOT-NOTE:CAPS) >> >> endobj 4357 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 396.477 119.716 410.425] /A << /S /GoTo /D (BtWavelevel) >> >> endobj 4358 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 396.477 305.204 410.425] /A << /S /GoTo /D (bt-wavelevel-new) >> >> endobj 4359 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 334.154 96.872 348.102] /A << /S /GoTo /D (gpointer) >> >> endobj 4360 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 334.154 242.619 348.102] /A << /S /GoTo /D (BtWavelevel--data) >> >> endobj 4361 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 322.099 91.343 336.047] /A << /S /GoTo /D (gulong) >> >> endobj 4362 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 322.099 250.927 336.047] /A << /S /GoTo /D (BtWavelevel--length) >> >> endobj 4363 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 310.045 91.343 323.992] /A << /S /GoTo /D (gulong) >> >> endobj 4364 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 310.045 261.438 323.992] /A << /S /GoTo /D (BtWavelevel--loop-end) >> >> endobj 4365 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 297.99 91.343 311.938] /A << /S /GoTo /D (gulong) >> >> endobj 4366 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 297.99 264.207 311.938] /A << /S /GoTo /D (BtWavelevel--loop-start) >> >> endobj 4367 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 285.935 91.343 299.883] /A << /S /GoTo /D (gulong) >> >> endobj 4368 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 285.935 240.955 299.883] /A << /S /GoTo /D (BtWavelevel--rate) >> >> endobj 4369 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 273.88 106.286 287.828] /A << /S /GoTo /D (GstBtNote) >> >> endobj 4370 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 273.88 262.544 287.828] /A << /S /GoTo /D (BtWavelevel--root-note) >> >> endobj 4371 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 261.825 93.564 275.773] /A << /S /GoTo /D (BtSong) >> >> endobj 4372 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 261.825 244.84 275.773] /A << /S /GoTo /D (BtWavelevel--song) >> >> endobj 4373 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 249.77 95.168 263.718] /A << /S /GoTo /D (BtWave) >> >> endobj 4374 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 249.77 246.594 263.718] /A << /S /GoTo /D (BtWavelevel--wave) >> >> endobj 4375 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 187.447 282.07 201.395] /A << /S /GoTo /D (BtWavelevel-struct) >> >> endobj 4380 0 obj << /D [4378 0 R /XYZ -11.232 878.039 null] >> endobj 4292 0 obj << /D [4378 0 R /XYZ 56.693 741.921 null] >> endobj 4381 0 obj << /D [4378 0 R /XYZ 56.693 735.943 null] >> endobj 4382 0 obj << /D [4378 0 R /XYZ 56.693 738.833 null] >> endobj 4293 0 obj << /D [4378 0 R /XYZ 56.693 604.988 null] >> endobj 4383 0 obj << /D [4378 0 R /XYZ 56.693 599.01 null] >> endobj 4384 0 obj << /D [4378 0 R /XYZ 56.693 601.9 null] >> endobj 94 0 obj << /D [4378 0 R /XYZ 56.693 528.644 null] >> endobj 1111 0 obj << /D [4378 0 R /XYZ 56.693 491.647 null] >> endobj 4385 0 obj << /D [4378 0 R /XYZ 56.693 433.439 null] >> endobj 4386 0 obj << /D [4378 0 R /XYZ 56.693 359.061 null] >> endobj 4387 0 obj << /D [4378 0 R /XYZ 56.693 212.354 null] >> endobj 4388 0 obj << /D [4378 0 R /XYZ 56.693 150.031 null] >> endobj 4389 0 obj << /D [4378 0 R /XYZ 56.693 144.053 null] >> endobj 4390 0 obj << /D [4378 0 R /XYZ 56.693 147.54 null] >> endobj 4391 0 obj << /D [4378 0 R /XYZ 56.693 136.581 null] >> endobj 4377 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4408 0 obj << /Length 1816 /Filter /FlateDecode >> stream xڽZ[sF}ׯؙHm´;=ɸq8̓` ɚdyoﷰH$``9oo@t;\hUL +#QSt;Fwoq=2Ig"7`dKo>z!X ;BJ hC_= WQ.w1{VI'$)+8Oz$C-')vE̻?NyQI!A \I!}oHe@eߟ&4-Bh (=;ڏ~͢8ɨiEMk!s$'#|9N}_?O. m[n̳"|?~4 gll[>II6Z7 TǏVt{o9-u/ҳGJ٣:'b `/DMp6Y]?ܸL&,_,Ipn)4N]t(?5!~~uo/8j z ̏< LpYP5p%T.Œ İ($WEUC@ LIf77(gI y,].ZۏA&4\7&Om MdTkj4WkA" A )ATS5U37EE[G:I&eǶدUzgo5r8 ޓoFe 9,؆\jz^˜' ? {إF5l D" -{!W-n4v+QprU(6ay v#Pha" Lt#hSѢ'UN #;4DDBb&ʚC7;mU$]Edh4 Ί W XQ Ւ{?BJk!?΢/4^!yǺ]m;nh_Aͭ.kA]s]Ob7)vf[{Ua HA1d/ @3@g_Y֞:+G޼͔!qpǭ} XM@1ɚcNulZO1? ykWֱ* xn Uyv[cVj,: y5,{泵7UBd?A Z0]5`%5#ޕ endstream endobj 4407 0 obj << /Type /Page /Contents 4408 0 R /Resources 4406 0 R /MediaBox [0 0 595.276 841.89] /Parent 4340 0 R /Annots [ 4376 0 R 4403 0 R 4404 0 R 4405 0 R ] >> endobj 4376 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.643 724.422 213.871 735.326] /A << /S /GoTo /D (BtPersistence) >> >> endobj 4403 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 607.966 108.16 618.869] /A << /S /GoTo /D (BtWavelevel) >> >> endobj 4404 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.517 607.966 278.011 618.869] /A << /S /GoTo /D (BtWave) >> >> endobj 4405 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 97.92 163.681 106.767] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4409 0 obj << /D [4407 0 R /XYZ -16.307 878.039 null] >> endobj 4410 0 obj << /D [4407 0 R /XYZ 56.693 741.323 null] >> endobj 4411 0 obj << /D [4407 0 R /XYZ 56.693 683.095 null] >> endobj 4412 0 obj << /D [4407 0 R /XYZ 56.693 624.867 null] >> endobj 4413 0 obj << /D [4407 0 R /XYZ 56.693 566.639 null] >> endobj 4392 0 obj << /D [4407 0 R /XYZ 56.693 541.277 null] >> endobj 4414 0 obj << /D [4407 0 R /XYZ 56.693 535.3 null] >> endobj 4415 0 obj << /D [4407 0 R /XYZ 56.693 538.189 null] >> endobj 4321 0 obj << /D [4407 0 R /XYZ 56.693 458.143 null] >> endobj 4416 0 obj << /D [4407 0 R /XYZ 56.693 452.165 null] >> endobj 4417 0 obj << /D [4407 0 R /XYZ 56.693 455.054 null] >> endobj 4418 0 obj << /D [4407 0 R /XYZ 56.693 444.095 null] >> endobj 4419 0 obj << /D [4407 0 R /XYZ 56.693 433.137 null] >> endobj 4420 0 obj << /D [4407 0 R /XYZ 56.693 422.178 null] >> endobj 4421 0 obj << /D [4407 0 R /XYZ 56.693 411.219 null] >> endobj 4422 0 obj << /D [4407 0 R /XYZ 56.693 400.26 null] >> endobj 4423 0 obj << /D [4407 0 R /XYZ 56.693 389.301 null] >> endobj 4424 0 obj << /D [4407 0 R /XYZ 56.693 378.342 null] >> endobj 4425 0 obj << /D [4407 0 R /XYZ 56.693 367.383 null] >> endobj 4406 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F105 312 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4431 0 obj << /Length 1055 /Filter /FlateDecode >> stream x՘KoF{ZH:B] ¢d4RTwA[DE9\4E].FKmV1F$V#m*σ!Q -4\\Lx6I60zsvi2 a#4,T0AYhnRQQS`*w1<{֠O~#`3W,g(Z$VcFEOtlIq'CJ4U¼f `4Kc$0皫k"&Ku%UQƢ2E%V6][@YAK; :6ezrucR@X TlIRIۡ"9qcԕXq&v+J nn"C2HW5)I3 0 Hh 9%y{,U%sVSKU^݋5_ꢰT]*pbaw,X1K.?[Z%WJ > c(%Kq .R1>NZÁ8xfn)CamwEI&ʷ+ImM]?Jc!HKa%1֫NulSJ5y_kXJz$.sT(͓YuϞjly}%Pad|q,ͧ$ Yiw м3kmVꄱX] A;*vȧ{B' ˆS@'ò~iE7KsVIly-)>+~%_E>`A;ڂ-pA[l DvmC݊-TXo9 .WӘT8'tˤJ;=R nuwR%1QsthmmVhr.кtV=B l\SPHłE> endobj 4426 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [127.507 671.563 161.001 682.467] /A << /S /GoTo /D (BtWave) >> >> endobj 4427 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.67 671.563 261.164 682.467] /A << /S /GoTo /D (BtWave) >> >> endobj 4428 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.514 671.563 366.977 682.467] /A << /S /GoTo /D (BtWavelevel) >> >> endobj 4432 0 obj << /D [4430 0 R /XYZ -11.232 878.039 null] >> endobj 4433 0 obj << /D [4430 0 R /XYZ 56.693 741.323 null] >> endobj 4402 0 obj << /D [4430 0 R /XYZ 56.693 715.961 null] >> endobj 4434 0 obj << /D [4430 0 R /XYZ 56.693 709.984 null] >> endobj 4435 0 obj << /D [4430 0 R /XYZ 56.693 712.873 null] >> endobj 4436 0 obj << /D [4430 0 R /XYZ 56.693 630.237 null] >> endobj 4393 0 obj << /D [4430 0 R /XYZ 56.693 604.875 null] >> endobj 4437 0 obj << /D [4430 0 R /XYZ 56.693 598.897 null] >> endobj 4438 0 obj << /D [4430 0 R /XYZ 56.693 601.787 null] >> endobj 4394 0 obj << /D [4430 0 R /XYZ 56.693 503.807 null] >> endobj 4439 0 obj << /D [4430 0 R /XYZ 56.693 497.83 null] >> endobj 4440 0 obj << /D [4430 0 R /XYZ 56.693 500.719 null] >> endobj 4395 0 obj << /D [4430 0 R /XYZ 56.693 384.807 null] >> endobj 4441 0 obj << /D [4430 0 R /XYZ 56.693 378.83 null] >> endobj 4442 0 obj << /D [4430 0 R /XYZ 56.693 381.719 null] >> endobj 4396 0 obj << /D [4430 0 R /XYZ 56.693 283.74 null] >> endobj 4443 0 obj << /D [4430 0 R /XYZ 56.693 277.762 null] >> endobj 4444 0 obj << /D [4430 0 R /XYZ 56.693 280.652 null] >> endobj 4397 0 obj << /D [4430 0 R /XYZ 56.693 182.673 null] >> endobj 4445 0 obj << /D [4430 0 R /XYZ 56.693 176.695 null] >> endobj 4446 0 obj << /D [4430 0 R /XYZ 56.693 179.584 null] >> endobj 4429 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4474 0 obj << /Length 1507 /Filter /FlateDecode >> stream xڽZMs6W(e*{tmiICY–"]ۻ AH< ,e=]L|K*ŭ'$>GE8=-_gs*H,F `Ab >r~\j3ME*}ww+?wUuz> endobj 4447 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [161.638 391.631 195.132 402.535] /A << /S /GoTo /D (BtWave) >> >> endobj 4448 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.865 391.631 268.755 402.535] /A << /S /GoTo /D (BtSong) >> >> endobj 4449 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 325.398 105.769 339.345] /A << /S /GoTo /D (gboolean) >> >> endobj 4450 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 325.398 329.194 339.345] /A << /S /GoTo /D (bt-wavetable-add-wave) >> >> endobj 4451 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 313.343 100.748 327.29] /A << /S /GoTo /D (BtWave) >> >> endobj 4452 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 313.343 368.895 327.29] /A << /S /GoTo /D (bt-wavetable-get-wave-by-index) >> >> endobj 4453 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 301.288 120.115 315.236] /A << /S /GoTo /D (BtWavetable) >> >> endobj 4454 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 301.288 305.602 315.236] /A << /S /GoTo /D (bt-wavetable-new) >> >> endobj 4455 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 289.233 86.76 303.181] /A << /S /GoTo /D (void) >> >> endobj 4456 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 289.233 391.18 303.181] /A << /S /GoTo /D (bt-wavetable-remember-missing-wave) >> >> endobj 4457 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 277.178 105.769 291.126] /A << /S /GoTo /D (gboolean) >> >> endobj 4458 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 277.178 344.387 291.126] /A << /S /GoTo /D (bt-wavetable-remove-wave) >> >> endobj 4459 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 214.855 96.872 228.803] /A << /S /GoTo /D (gpointer) >> >> endobj 4460 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 214.855 284.79 228.803] /A << /S /GoTo /D (BtWavetable--missing-waves) >> >> endobj 4461 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 202.8 93.564 216.748] /A << /S /GoTo /D (BtSong) >> >> endobj 4462 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 202.8 244.84 216.748] /A << /S /GoTo /D (BtWavetable--song) >> >> endobj 4463 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 190.746 96.872 204.693] /A << /S /GoTo /D (gpointer) >> >> endobj 4464 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 190.746 250.469 204.693] /A << /S /GoTo /D (BtWavetable--waves) >> >> endobj 4465 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 128.422 81.181 142.37] /A << /S /GoTo /D (void) >> >> endobj 4466 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 128.422 273.702 142.37] /A << /S /GoTo /D (BtWavetable-wave-added) >> >> endobj 4467 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 128.422 579.053 142.37] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 4468 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 116.368 81.181 130.315] /A << /S /GoTo /D (void) >> >> endobj 4469 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 116.368 284.472 130.315] /A << /S /GoTo /D (BtWavetable-wave-removed) >> >> endobj 4470 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [536.383 116.368 579.053 130.315] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 4475 0 obj << /D [4473 0 R /XYZ -16.307 878.039 null] >> endobj 4399 0 obj << /D [4473 0 R /XYZ 56.693 741.921 null] >> endobj 4476 0 obj << /D [4473 0 R /XYZ 56.693 735.943 null] >> endobj 4477 0 obj << /D [4473 0 R /XYZ 56.693 738.833 null] >> endobj 4400 0 obj << /D [4473 0 R /XYZ 56.693 622.921 null] >> endobj 4478 0 obj << /D [4473 0 R /XYZ 56.693 616.943 null] >> endobj 4479 0 obj << /D [4473 0 R /XYZ 56.693 619.832 null] >> endobj 4401 0 obj << /D [4473 0 R /XYZ 56.693 521.853 null] >> endobj 4480 0 obj << /D [4473 0 R /XYZ 56.693 515.876 null] >> endobj 4481 0 obj << /D [4473 0 R /XYZ 56.693 518.765 null] >> endobj 95 0 obj << /D [4473 0 R /XYZ 56.693 445.509 null] >> endobj 1112 0 obj << /D [4473 0 R /XYZ 56.693 408.512 null] >> endobj 4482 0 obj << /D [4473 0 R /XYZ 56.693 350.304 null] >> endobj 4483 0 obj << /D [4473 0 R /XYZ 56.693 239.762 null] >> endobj 4484 0 obj << /D [4473 0 R /XYZ 56.693 153.329 null] >> endobj 4485 0 obj << /D [4473 0 R /XYZ 56.693 81.588 null] >> endobj 4472 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4506 0 obj << /Length 1710 /Filter /FlateDecode >> stream xY[F~WXTAJU)fDnV[ۄ$=s1`cXCۗ9̹88xٻ.UD(T@H$#qpۿZ~\ ܿ*/~ID\GM2뒾N]=`>8K=Diwa+'  z@9c0 BRGT3|4 ~j& ~>iX4H*au5\l`wn8JoaWCH `Tc@Tɰ#@ q:3H>Om6`a qNW}nο˚))3MR.t_+ұR7hk>\eY'EpL(V $VEr dp/fndweM"b|~;DHVVVs)("qr۹~Gwfsl8&u7r?j=z?cCh^=TBnژ,Y:9:OI_[x ^N&վ4l^t;ۄiA:MB?MGF/f`j'%Iꨠ*r7eb^9.mmU-6 ȍK;ۙB9X_/k endstream endobj 4505 0 obj << /Type /Page /Contents 4506 0 R /Resources 4504 0 R /MediaBox [0 0 595.276 841.89] /Parent 4524 0 R /Annots [ 4471 0 R 4496 0 R 4497 0 R 4498 0 R 4499 0 R 4500 0 R 4501 0 R 4502 0 R 4503 0 R ] >> endobj 4471 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 747.457 282.469 761.405] /A << /S /GoTo /D (BtWavetable-struct) >> >> endobj 4496 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.042 614.986 214.27 625.89] /A << /S /GoTo /D (BtPersistence) >> >> endobj 4497 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [237.822 498.53 275.192 509.433] /A << /S /GoTo /D (BtWaves) >> >> endobj 4498 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [394.732 498.53 447.195 509.433] /A << /S /GoTo /D (BtWavelevel) >> >> endobj 4499 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [278.748 480.597 318.23 491.501] /A << /S /GoTo /D (BtPattern) >> >> endobj 4500 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [340.127 347.592 403.39 358.496] /A << /S /GoTo /D (bt-wave-new) >> >> endobj 4501 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 212.122 83.303 222.308] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4502 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 212.122 164.468 222.308] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 4503 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 94.77 161.918 105.301] /A << /S /GoTo /D (bt-wavetable-add-wave) >> >> endobj 4507 0 obj << /D [4505 0 R /XYZ -11.232 878.039 null] >> endobj 4508 0 obj << /D [4505 0 R /XYZ 56.693 710.04 null] >> endobj 4509 0 obj << /D [4505 0 R /XYZ 56.693 704.063 null] >> endobj 4510 0 obj << /D [4505 0 R /XYZ 56.693 707.55 null] >> endobj 4511 0 obj << /D [4505 0 R /XYZ 56.693 696.591 null] >> endobj 4512 0 obj << /D [4505 0 R /XYZ 56.693 631.887 null] >> endobj 4513 0 obj << /D [4505 0 R /XYZ 56.693 573.659 null] >> endobj 4514 0 obj << /D [4505 0 R /XYZ 56.693 515.431 null] >> endobj 4515 0 obj << /D [4505 0 R /XYZ 56.693 439.27 null] >> endobj 4486 0 obj << /D [4505 0 R /XYZ 56.693 413.909 null] >> endobj 4516 0 obj << /D [4505 0 R /XYZ 56.693 407.931 null] >> endobj 4517 0 obj << /D [4505 0 R /XYZ 56.693 410.82 null] >> endobj 4518 0 obj << /D [4505 0 R /XYZ 56.693 399.861 null] >> endobj 4519 0 obj << /D [4505 0 R /XYZ 56.693 388.902 null] >> endobj 4487 0 obj << /D [4505 0 R /XYZ 56.693 172.668 null] >> endobj 4520 0 obj << /D [4505 0 R /XYZ 56.693 166.691 null] >> endobj 4521 0 obj << /D [4505 0 R /XYZ 56.693 169.58 null] >> endobj 4522 0 obj << /D [4505 0 R /XYZ 56.693 158.621 null] >> endobj 4523 0 obj << /D [4505 0 R /XYZ 56.693 147.662 null] >> endobj 4504 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4532 0 obj << /Length 1553 /Filter /FlateDecode >> stream xZ[o6~У=,k4m: K$'mw(ReɱCy\?7ޏ.F)h%2IHp?<>Rmpi&7?(|]JfrEQ,ZI$B_ 4jψ((0`]}0: @(pGFxw{!Qi9axڔ&1.ZAL`8"JImԔrDi("eHm `X )MQ'PO(Y̦fTfZ(2-TXt [BE-O׃IVl6aL)TÔ ;0Jږ!H/]tav !Ex\u6[#>ӍD]&%@A4&Ok7|YUJAuu*mu^Em?|)ū.:~6M 4%1վW&uw,ƥʸD.0icD!ͼή*+Ei֣$WewU3ArgNL̷{vq*``/21d @n¾D"Jx@u`zҺ߶PR 8Ď*lYaWDg[{% "ʢ|' 'H ݜ_Xh$<Z`0,uIՔ,o"1b˿"%<<՘] (!&n;#OXh-}mwF~O I{׃U0mn'r3.행cI\':}S5Y$0زɃ4ib 1$Cb S#[F|Gi1y^s6ɿ㢈ӛ'e&[u(U=êpz*0acG]/Y8A4<^u(q 0Ruڎ3g*{\vJ𫾙jly6ka\H܈Il*ʛ8L|cT!KP1%;Vha5ބ-M&q&V5#K3/C.|=f;LZ)Ug,qbJF$ʋXYZNMhC[qE tبytk٭)y, P>mNBճ(g^}΃T8 0֢#hJ n9{4mN\XBEڬkl]W0> endobj 4527 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 645.186 89.191 655.373] /A << /S /GoTo /D (BtWave) >> >> endobj 4528 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.616 645.186 164.169 655.373] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4529 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 410.367 163.681 419.214] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4533 0 obj << /D [4531 0 R /XYZ -16.307 878.039 null] >> endobj 4488 0 obj << /D [4531 0 R /XYZ 56.693 587.8 null] >> endobj 4534 0 obj << /D [4531 0 R /XYZ 56.693 581.823 null] >> endobj 4535 0 obj << /D [4531 0 R /XYZ 56.693 584.712 null] >> endobj 4536 0 obj << /D [4531 0 R /XYZ 56.693 573.753 null] >> endobj 4489 0 obj << /D [4531 0 R /XYZ 56.693 369.573 null] >> endobj 4537 0 obj << /D [4531 0 R /XYZ 56.693 363.596 null] >> endobj 4538 0 obj << /D [4531 0 R /XYZ 56.693 366.485 null] >> endobj 4539 0 obj << /D [4531 0 R /XYZ 56.693 355.526 null] >> endobj 4540 0 obj << /D [4531 0 R /XYZ 56.693 344.567 null] >> endobj 4490 0 obj << /D [4531 0 R /XYZ 56.693 176.132 null] >> endobj 4541 0 obj << /D [4531 0 R /XYZ 56.693 172.043 null] >> endobj 4542 0 obj << /D [4531 0 R /XYZ 56.693 174.932 null] >> endobj 4543 0 obj << /D [4531 0 R /XYZ 56.693 163.973 null] >> endobj 4544 0 obj << /D [4531 0 R /XYZ 56.693 153.014 null] >> endobj 4530 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4550 0 obj << /Length 1443 /Filter /FlateDecode >> stream xڽYMs6WVcў4LZL YtIʮso emڌ|"Eo}$A Dd28>lSh2GRae8 ] O6߾eIh$dqbs;Oa WǧA*`f8T᱿@I? T.t=J &@5`ܯi] 0H ޗԮM X4Vw86ݴ8xJ%jvSla8bdx7rhzUu`>8 ǔb#$^7Ǩ/B1L44  CUwZ0 j`jdF& 3X1Ѳ $6qiY&#E6)fO<\mly.HN],L3?$t s ;~|Py.gDZ&)[ Qs%UQ<4(hSh6 Hc0a4J ],b)lpɢ=/p IrEPP^ nj2N&*:exWj.uL ڵK*Y;h:,9qPuW<~\:0orSpRX`E?04]F=*b6H*Z` dGaaJU~j W:'5Vey谈|yǗ9h`q/ R7Ma(暽saN#wri~-l֜?# ӛ0ZXթ 8 Eh̩;BDy!8Z L_6 HWؐ98MאkvB$u!Io{f', `-1RIcн5So_LK.l|Cv:C]_.ef+OVߢwS[@_ "<2#|':JxN\}]~L!s8 -ey/4u|}v䬽Y7s&./(\JZ+;Ӎtp$8%H\Gv?Fl"ܣP96jWj @ڤ6k2GpuI j+ *$fPȠ&s3pj}Ju%XP[v;sYAf{)&+%~Uh/$y?XȪ=CٗL M|ޯAi$KY C$DPf *"`";bTS/2w7aZDlrMP&QiI.0*'}]D;ء^ endstream endobj 4549 0 obj << /Type /Page /Contents 4550 0 R /Resources 4548 0 R /MediaBox [0 0 595.276 841.89] /Parent 4524 0 R /Annots [ 4545 0 R 4546 0 R 4547 0 R ] >> endobj 4545 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 679.709 83.303 689.896] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4546 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.767 679.709 164.468 689.896] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 4547 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.027 574.327 131.522 585.231] /A << /S /GoTo /D (BtWave) >> >> endobj 4551 0 obj << /D [4549 0 R /XYZ -11.232 878.039 null] >> endobj 4552 0 obj << /D [4549 0 R /XYZ 56.693 639.357 null] >> endobj 4525 0 obj << /D [4549 0 R /XYZ 56.693 615.178 null] >> endobj 4553 0 obj << /D [4549 0 R /XYZ 56.693 610.383 null] >> endobj 4554 0 obj << /D [4549 0 R /XYZ 56.693 613.272 null] >> endobj 4555 0 obj << /D [4549 0 R /XYZ 56.693 534.692 null] >> endobj 4491 0 obj << /D [4549 0 R /XYZ 56.693 510.513 null] >> endobj 4556 0 obj << /D [4549 0 R /XYZ 56.693 505.718 null] >> endobj 4557 0 obj << /D [4549 0 R /XYZ 56.693 508.607 null] >> endobj 4492 0 obj << /D [4549 0 R /XYZ 56.693 415.867 null] >> endobj 4558 0 obj << /D [4549 0 R /XYZ 56.693 411.072 null] >> endobj 4559 0 obj << /D [4549 0 R /XYZ 56.693 413.961 null] >> endobj 4493 0 obj << /D [4549 0 R /XYZ 56.693 321.221 null] >> endobj 4560 0 obj << /D [4549 0 R /XYZ 56.693 316.426 null] >> endobj 4561 0 obj << /D [4549 0 R /XYZ 56.693 319.315 null] >> endobj 4562 0 obj << /D [4549 0 R /XYZ 56.693 223.985 null] >> endobj 4494 0 obj << /D [4549 0 R /XYZ 56.693 199.806 null] >> endobj 4563 0 obj << /D [4549 0 R /XYZ 56.693 195.011 null] >> endobj 4564 0 obj << /D [4549 0 R /XYZ 56.693 197.9 null] >> endobj 4565 0 obj << /D [4549 0 R /XYZ 56.693 186.941 null] >> endobj 4566 0 obj << /D [4549 0 R /XYZ 56.693 175.982 null] >> endobj 4567 0 obj << /D [4549 0 R /XYZ 56.693 165.023 null] >> endobj 4548 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4601 0 obj << /Length 1936 /Filter /FlateDecode >> stream xZnF+j,ua]obNr@ql?`Wz:AD-W?%|&_|wpd¯p BC6!/U@Pj7n.?ʭ9M& ;vA'4D y6>J)kl(>z)}9?$vaf T™::m][ J4ŷܮh]~UWwoPYOh}C#0f*WAg\cZ2ApsykIF h?[S5q֛K 1~+ﰱ$s*JkuٓK ?Yg2]9+ ҃ $Xaf` :b S)f_u1}ΆQ%{M=Xe&B)߼b?9ԫ*4]k_S^3/C W(?rxH)zO̙?L[w(zy.T*Kl#jdTe`e?V`dtFW.}Un6}tomi!SQE ڌ㓚#˜` yxP(4sJQ5OR'7\9VT/H/d 'P4]ڸ9~F&uRI8%0D7%AXJP7-"*%qr\$_N\Mai5~cQ,l`P/f4נ5ѧ>5t}CKV{77 6eywQ Z#e{@܉pLC@[䠈 ֦uŘ:5NyTtEei`XƥAoTtH&0҇i8$a D8 禁7Nq,֛w?ǀCX7HǺAx j]ڕMisV8ÀHl֛.k uW13 ]TlO4>‘fgCuJjR!MSoZ|R'ѷirhE0N'`k0EJ-(>!y7m~8B3 v9/fCᑞ+=f6ϿOxeӛUal]:! qU4,04g2HcPl^NGoRScO6Lh endstream endobj 4600 0 obj << /Type /Page /Contents 4601 0 R /Resources 4599 0 R /MediaBox [0 0 595.276 841.89] /Parent 4524 0 R /Annots [ 4568 0 R 4569 0 R 4570 0 R 4571 0 R 4572 0 R 4573 0 R 4574 0 R 4575 0 R 4576 0 R 4577 0 R 4578 0 R 4579 0 R 4580 0 R 4581 0 R 4582 0 R 4583 0 R 4584 0 R 4585 0 R 4586 0 R 4587 0 R 4588 0 R 4589 0 R 4590 0 R 4591 0 R 4592 0 R 4593 0 R 4594 0 R ] >> endobj 4568 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 660.618 125.813 671.522] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 4569 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [83.143 394.774 125.813 405.678] /A << /S /GoTo /D (G-SIGNAL-NO-HOOKS:CAPS) >> >> endobj 4570 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.781 328.94 266.922 337.786] /A << /S /GoTo /D (BtMachines) >> >> endobj 4571 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 260.649 144.353 274.597] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 4572 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 260.649 337.293 274.597] /A << /S /GoTo /D (bt-wire-get-param-group) >> >> endobj 4573 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 248.595 98.177 262.542] /A << /S /GoTo /D (BtWire) >> >> endobj 4574 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 248.595 283.365 262.542] /A << /S /GoTo /D (bt-wire-new) >> >> endobj 4575 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 236.54 105.769 250.487] /A << /S /GoTo /D (gboolean) >> >> endobj 4576 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 236.54 305.741 250.487] /A << /S /GoTo /D (bt-wire-reconnect) >> >> endobj 4577 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 224.485 105.769 238.433] /A << /S /GoTo /D (gboolean) >> >> endobj 4578 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 224.485 301.328 238.433] /A << /S /GoTo /D (bt-wire-can-link) >> >> endobj 4579 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 162.162 96.872 176.109] /A << /S /GoTo /D (gpointer) >> >> endobj 4580 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 162.162 263.639 176.109] /A << /S /GoTo /D (BtWire--analyzers) >> >> endobj 4581 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 150.107 96.872 164.055] /A << /S /GoTo /D (gpointer) >> >> endobj 4582 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 150.107 297.95 164.055] /A << /S /GoTo /D (BtWire--construction-error) >> >> endobj 4583 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 138.052 107.94 152] /A << /S /GoTo /D (BtMachine) >> >> endobj 4584 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 138.052 237.647 152] /A << /S /GoTo /D (BtWire--dst) >> >> endobj 4585 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 125.997 110.71 139.945] /A << /S /GoTo /D (GstElement) >> >> endobj 4586 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 125.997 243.127 139.945] /A << /S /GoTo /D (BtWire--gain) >> >> endobj 4587 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 113.942 91.343 127.89] /A << /S /GoTo /D (gulong) >> >> endobj 4588 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 113.942 275.824 127.89] /A << /S /GoTo /D (BtWire--num-params) >> >> endobj 4589 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 101.888 110.71 115.835] /A << /S /GoTo /D (GstElement) >> >> endobj 4590 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 101.888 240.407 115.835] /A << /S /GoTo /D (BtWire--pan) >> >> endobj 4591 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 89.833 85.794 103.78] /A << /S /GoTo /D (gchar) >> >> endobj 4592 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 89.833 274.16 103.78] /A << /S /GoTo /D (BtWire--pretty-name) >> >> endobj 4593 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 77.778 96.872 91.726] /A << /S /GoTo /D (gpointer) >> >> endobj 4594 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 77.778 265.861 91.726] /A << /S /GoTo /D (BtWire--properties) >> >> endobj 4602 0 obj << /D [4600 0 R /XYZ -16.307 878.039 null] >> endobj 4495 0 obj << /D [4600 0 R /XYZ 56.693 621.881 null] >> endobj 4603 0 obj << /D [4600 0 R /XYZ 56.693 615.904 null] >> endobj 4604 0 obj << /D [4600 0 R /XYZ 56.693 618.793 null] >> endobj 4605 0 obj << /D [4600 0 R /XYZ 56.693 607.834 null] >> endobj 4606 0 obj << /D [4600 0 R /XYZ 56.693 596.875 null] >> endobj 4607 0 obj << /D [4600 0 R /XYZ 56.693 585.916 null] >> endobj 96 0 obj << /D [4600 0 R /XYZ 56.693 380.761 null] >> endobj 1113 0 obj << /D [4600 0 R /XYZ 56.693 343.764 null] >> endobj 4608 0 obj << /D [4600 0 R /XYZ 56.693 285.556 null] >> endobj 4609 0 obj << /D [4600 0 R /XYZ 56.693 187.068 null] >> endobj 4599 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4633 0 obj << /Length 1826 /Filter /FlateDecode >> stream xڵY]o6}P`!)Ra@ҵYt,36YJ%i߾ٖ-;vT%^sxy/;@8 յ} qGd{UDʱ{R 47Z2y͢;!eE! `PH| {dދޗCwig+#&BN9u8z>\λޟ=l)"X4q6Z`P"9[@GtJ1m>X<$K^.nwk85YO]NI4 6u0qw(S0\5)#iQ zG(4yVV,,,U0A^t "uœ$JRq(-X۞-[Jm~Bw_}҄(TjXJ< aX~˜Z&Q H`GV@\i\ ?]=||x=<>K' 2#!LUٵ( Ұb4Dov1Pɡ\lIϰ͵&;@$),HDQѧ؍ue$ȋ+Xլ-9P8t&X{>o00D:ee, >ݍZ\)>%UADahc잞eIDiz>29ޗGa&~G"N?jy$evF@#]]gPHB5эlo8{8hw䠫-0?*:rpd187;-`!5[Mv?A]rVϱ \`9Mo͂8:[k |'-٭-A'I:(omŧ"T(XMU``oYT7DqO,V5忦hTy!2.*ɳ=}<#+U)RyF>{Nxy5_5>[ݕd.#;pYBgc0hZZZl@-yH걈 i*+IC!cocz}4XӋ7Txp?:m#j%%syC#(}z_B,p,cy"R+ebJC=:fkhnNi1+4aI5+MFuuǷy=^^ly2a?KfNP ! endstream endobj 4632 0 obj << /Type /Page /Contents 4633 0 R /Resources 4631 0 R /MediaBox [0 0 595.276 841.89] /Parent 4524 0 R /Annots [ 4595 0 R 4596 0 R 4597 0 R 4598 0 R 4622 0 R 4623 0 R 4624 0 R 4625 0 R 4626 0 R 4627 0 R 4647 0 R 4628 0 R 4629 0 R 4630 0 R ] >> endobj 4595 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 739.387 93.564 753.335] /A << /S /GoTo /D (BtSong) >> >> endobj 4596 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 739.387 244.84 753.335] /A << /S /GoTo /D (BtWire--song) >> >> endobj 4597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 727.332 107.94 741.28] /A << /S /GoTo /D (BtMachine) >> >> endobj 4598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 727.332 237.637 741.28] /A << /S /GoTo /D (BtWire--src) >> >> endobj 4622 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 665.009 376.247 678.957] /A << /S /GoTo /D (BT-WIRE-MAX-NUM-PARAMS:CAPS) >> >> endobj 4623 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 652.954 260.531 666.902] /A << /S /GoTo /D (BtWire-struct) >> >> endobj 4624 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.104 476.648 197.882 487.551] /A << /S /GoTo /D (GstChildProxy) >> >> endobj 4625 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.256 476.648 271.485 487.551] /A << /S /GoTo /D (BtPersistence) >> >> endobj 4626 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [194.064 360.191 244.205 371.095] /A << /S /GoTo /D (BtMachines) >> >> endobj 4627 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [535.497 360.191 567.925 371.095] /A << /S /GoTo /D (GstElements) >> >> endobj 4647 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 348.236 81.49 359.14] /A << /S /GoTo /D (GstElements) >> >> endobj 4628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.187 318.348 284.669 329.252] /A << /S /GoTo /D (BtPattern) >> >> endobj 4629 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 78.435 147.462 89.339] /A << /S /GoTo /D (BtParameterGroup) >> >> endobj 4630 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.749 78.435 187.302 89.339] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4634 0 obj << /D [4632 0 R /XYZ -11.232 878.039 null] >> endobj 4635 0 obj << /D [4632 0 R /XYZ 56.693 689.916 null] >> endobj 4636 0 obj << /D [4632 0 R /XYZ 56.693 615.538 null] >> endobj 4637 0 obj << /D [4632 0 R /XYZ 56.693 609.56 null] >> endobj 4638 0 obj << /D [4632 0 R /XYZ 56.693 613.047 null] >> endobj 4639 0 obj << /D [4632 0 R /XYZ 56.693 602.088 null] >> endobj 4640 0 obj << /D [4632 0 R /XYZ 56.693 591.13 null] >> endobj 4641 0 obj << /D [4632 0 R /XYZ 56.693 580.171 null] >> endobj 4642 0 obj << /D [4632 0 R /XYZ 56.693 569.212 null] >> endobj 4643 0 obj << /D [4632 0 R /XYZ 56.693 558.253 null] >> endobj 4644 0 obj << /D [4632 0 R /XYZ 56.693 493.549 null] >> endobj 4645 0 obj << /D [4632 0 R /XYZ 56.693 435.321 null] >> endobj 4646 0 obj << /D [4632 0 R /XYZ 56.693 377.093 null] >> endobj 4648 0 obj << /D [4632 0 R /XYZ 56.693 265.067 null] >> endobj 4610 0 obj << /D [4632 0 R /XYZ 56.693 239.705 null] >> endobj 4649 0 obj << /D [4632 0 R /XYZ 56.693 233.727 null] >> endobj 4650 0 obj << /D [4632 0 R /XYZ 56.693 236.617 null] >> endobj 4651 0 obj << /D [4632 0 R /XYZ 56.693 225.658 null] >> endobj 4631 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4667 0 obj << /Length 1844 /Filter /FlateDecode >> stream xZ]o6}f- {Z@ ]"Pd:6H$/kw)R%ѱEyxy!TpprU1%"ɘQ ׈*<|Zɿ819ͳjuΪ3FX I3Hk+M"ӕk 1I3hB)Uq[a; C~鳈2xbcteW=|}}v4nF-y 8BR؛Y@x @S&k;CM#t LjBIے~LB&"$ ~6`lG@caTICMVUWn]]=v{g],ne?Wx@ wd(8k2K߂y<'*I~?wUtG|醀$F7O6N,-bI*[ŝeYro*{nIVkPU='Nq tKDXH)tV?X v[Ze ¹ӽэLtYh(2VO:d2iqxc1no|]|H6B1ú+1g{>=RcJgF1R}ҙƐxS;ӕ:+W@ݾ,#*,qZ*M0y|sd_.)?NtiL[=fݘ򓩠u k*L 7GSP0,9P2$M) =[;qϽO4ʗ|)a'=czy>8|P#NnR#8T:Y}{~b@ѧi-i]~}JՅWK„I$N;xcf Zη-km0&j*9wFo Ktu|}e>+!q?L <#{|\G@SHžʋKLf>n,^' $3ixi% pE^&;{Ӻ|XD20U8l=N#,o{LS kY|gilK,0 yaNZlEUËǾ<4-raJ!5uGgoo8/k?_  endstream endobj 4666 0 obj << /Type /Page /Contents 4667 0 R /Resources 4665 0 R /MediaBox [0 0 595.276 841.89] /Parent 4524 0 R /Annots [ 4656 0 R 4675 0 R 4657 0 R 4658 0 R 4659 0 R 4660 0 R 4661 0 R 4662 0 R 4663 0 R 4664 0 R ] >> endobj 4656 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [482.247 621.817 567.925 632.721] /A << /S /GoTo /D (bt-setup-add-wire) >> >> endobj 4675 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 610.484 75.622 620.382] /A << /S /GoTo /D (bt-setup-add-wire) >> >> endobj 4657 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.726 514.301 306.658 524.831] /A << /S /GoTo /D (BtSourceMachine) >> >> endobj 4658 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.408 500.542 314.408 512.876] /A << /S /GoTo /D (BtProcessorMachine) >> >> endobj 4659 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.726 478.435 297.263 488.966] /A << /S /GoTo /D (BtSinkMachine) >> >> endobj 4660 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.408 464.677 314.408 477.01] /A << /S /GoTo /D (BtProcessorMachine) >> >> endobj 4661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 392.144 163.681 400.991] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4662 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.79 295.994 279.056 306.897] /A << /S /GoTo /D (BtMachine) >> >> endobj 4663 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 191.337 83.303 200.184] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4664 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.153 191.337 178.854 200.184] /A << /S /GoTo /D (FALSE:CAPS) >> >> endobj 4668 0 obj << /D [4666 0 R /XYZ -16.307 878.039 null] >> endobj 4611 0 obj << /D [4666 0 R /XYZ 56.693 710.051 null] >> endobj 4669 0 obj << /D [4666 0 R /XYZ 56.693 704.073 null] >> endobj 4670 0 obj << /D [4666 0 R /XYZ 56.693 706.962 null] >> endobj 4671 0 obj << /D [4666 0 R /XYZ 56.693 696.004 null] >> endobj 4672 0 obj << /D [4666 0 R /XYZ 56.693 685.045 null] >> endobj 4673 0 obj << /D [4666 0 R /XYZ 56.693 674.086 null] >> endobj 4674 0 obj << /D [4666 0 R /XYZ 56.693 663.127 null] >> endobj 4612 0 obj << /D [4666 0 R /XYZ 56.693 351.351 null] >> endobj 4676 0 obj << /D [4666 0 R /XYZ 56.693 345.373 null] >> endobj 4677 0 obj << /D [4666 0 R /XYZ 56.693 348.262 null] >> endobj 4678 0 obj << /D [4666 0 R /XYZ 56.693 337.304 null] >> endobj 4613 0 obj << /D [4666 0 R /XYZ 56.693 152.533 null] >> endobj 4679 0 obj << /D [4666 0 R /XYZ 56.693 147.947 null] >> endobj 4680 0 obj << /D [4666 0 R /XYZ 56.693 150.836 null] >> endobj 4681 0 obj << /D [4666 0 R /XYZ 56.693 139.877 null] >> endobj 4682 0 obj << /D [4666 0 R /XYZ 56.693 128.918 null] >> endobj 4665 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F105 312 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4687 0 obj << /Length 1248 /Filter /FlateDecode >> stream xڽs6+4)?ڧpM2ڔΤ7B &5f{ז @ΉC,jW?JAur-*`r-<5E;ttOOi~mw$A7|'{G(2 > U<+4Fh4H'A[zD7P.pֺB֠Us$%q)EZң))r$pQҦ2X8R̥Ff0 \$]14#yIk>N]_0f 8;#kM7f~Gp[ ]62|ְ`b#s"(tR&ZBVf.,,#mMvWV+xUn>MbƓמ̦ɗ/50G2%c!`$> |pA΍Q+o0]c:q x=y2-̀|ʶ"w0s?tY;S[b+/7~\)!iY]3cEeS@p >K01lEIFMh[a8&4""@Pe %c/wn܅RK,w[q+%:DSw?ꆁS$*σY~̖3OBsC谚$Oؚinzc.! a (}40*\`(leU (p&$ÅQj%1>BO6JWQSL=i>Au^)VWHCkFNL s쏎4LGʧkNEc<@ /bX(kPň깔Cn0P~!-MUUiC]H׫Qm=~O\|; H6@5각uNJcYr*@fQ-O6L޹1'qL96y> endobj 4683 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 658.382 83.303 667.229] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4684 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.393 464.161 182.659 473.007] /A << /S /GoTo /D (BtMachine) >> >> endobj 4688 0 obj << /D [4686 0 R /XYZ -11.232 878.039 null] >> endobj 4689 0 obj << /D [4686 0 R /XYZ 56.693 614.998 null] >> endobj 4654 0 obj << /D [4686 0 R /XYZ 56.693 589.636 null] >> endobj 4690 0 obj << /D [4686 0 R /XYZ 56.693 583.659 null] >> endobj 4691 0 obj << /D [4686 0 R /XYZ 56.693 586.548 null] >> endobj 4655 0 obj << /D [4686 0 R /XYZ 56.693 506.502 null] >> endobj 4692 0 obj << /D [4686 0 R /XYZ 56.693 500.524 null] >> endobj 4693 0 obj << /D [4686 0 R /XYZ 56.693 503.413 null] >> endobj 4694 0 obj << /D [4686 0 R /XYZ 56.693 420.777 null] >> endobj 4614 0 obj << /D [4686 0 R /XYZ 56.693 395.415 null] >> endobj 4695 0 obj << /D [4686 0 R /XYZ 56.693 389.438 null] >> endobj 4696 0 obj << /D [4686 0 R /XYZ 56.693 392.327 null] >> endobj 4615 0 obj << /D [4686 0 R /XYZ 56.693 294.348 null] >> endobj 4697 0 obj << /D [4686 0 R /XYZ 56.693 288.37 null] >> endobj 4698 0 obj << /D [4686 0 R /XYZ 56.693 291.26 null] >> endobj 4616 0 obj << /D [4686 0 R /XYZ 56.693 193.28 null] >> endobj 4699 0 obj << /D [4686 0 R /XYZ 56.693 187.303 null] >> endobj 4700 0 obj << /D [4686 0 R /XYZ 56.693 190.192 null] >> endobj 4685 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R /F110 620 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4704 0 obj << /Length 1134 /Filter /FlateDecode >> stream x͙Ks68J iu{&Dh RJQqC{$H8DSDX.(Vltu-*lr-}_>.ɔI2./U.7Q٫C{B3lEKTIj~l׈(WU`*h}H^!5F̸ z?z;"G-SRlEU SJA \ _Eq si|8۸#ⱴ`+^mXʱ&i)-%UQƢܡiҎLB*ԏ+?P~-]VؗeC$6)j++Txw;^硷Z3)BƷe.-/#K)RJo cXS'Lm{5Iस&rR>`eyn^YK X!$jdʩO%Z0CњMGm Z`ˬ+ccV~UX! ,l{i*@N{Ktu0C0`WE;̖U,o!]7`WU[ج$09~pa'%;W=cDanh_% } 6ٯ7KwwvbZR  1ӲQ'&wE8MkրXB Br0hA[Vh:&Q[n Uik>ʏNxAV!@&&$fiQ3l/&C2l붝n-'풢Qğ}YӂGݰxP>͛S! Boe[j(?x<tfj%Pf`Jmqx:@.]pscS9ՙQA!w p=mōAiӽyۼvu]?23TU  (R+ƹtHp&up.so^dw~I$;z1aÁM Q!ܽmś2:|~xԵn-&<)Tq Z((Z:1韗 ɘc pe, endstream endobj 4703 0 obj << /Type /Page /Contents 4704 0 R /Resources 4702 0 R /MediaBox [0 0 595.276 841.89] /Parent 4701 0 R >> endobj 4705 0 obj << /D [4703 0 R /XYZ -16.307 878.039 null] >> endobj 4617 0 obj << /D [4703 0 R /XYZ 56.693 741.921 null] >> endobj 4706 0 obj << /D [4703 0 R /XYZ 56.693 737.065 null] >> endobj 4707 0 obj << /D [4703 0 R /XYZ 56.693 739.954 null] >> endobj 4618 0 obj << /D [4703 0 R /XYZ 56.693 646.944 null] >> endobj 4708 0 obj << /D [4703 0 R /XYZ 56.693 642.088 null] >> endobj 4709 0 obj << /D [4703 0 R /XYZ 56.693 644.977 null] >> endobj 4619 0 obj << /D [4703 0 R /XYZ 56.693 535.156 null] >> endobj 4710 0 obj << /D [4703 0 R /XYZ 56.693 530.3 null] >> endobj 4711 0 obj << /D [4703 0 R /XYZ 56.693 533.189 null] >> endobj 4620 0 obj << /D [4703 0 R /XYZ 56.693 440.179 null] >> endobj 4712 0 obj << /D [4703 0 R /XYZ 56.693 435.323 null] >> endobj 4713 0 obj << /D [4703 0 R /XYZ 56.693 438.212 null] >> endobj 4621 0 obj << /D [4703 0 R /XYZ 56.693 328.391 null] >> endobj 4714 0 obj << /D [4703 0 R /XYZ 56.693 323.534 null] >> endobj 4715 0 obj << /D [4703 0 R /XYZ 56.693 326.424 null] >> endobj 4652 0 obj << /D [4703 0 R /XYZ 56.693 233.414 null] >> endobj 4716 0 obj << /D [4703 0 R /XYZ 56.693 228.557 null] >> endobj 4717 0 obj << /D [4703 0 R /XYZ 56.693 231.447 null] >> endobj 4653 0 obj << /D [4703 0 R /XYZ 56.693 138.437 null] >> endobj 4718 0 obj << /D [4703 0 R /XYZ 56.693 133.58 null] >> endobj 4719 0 obj << /D [4703 0 R /XYZ 56.693 136.47 null] >> endobj 4702 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4753 0 obj << /Length 1535 /Filter /FlateDecode >> stream xڵZےF}+*/*f~y:uyM’K 0)6B8>=I IΜ>=t h\:W"b fH*,GQS4ͷoi3IiM0IMA OW ;X6BC3DܠMͨOUTV.d)|,AfW3`D:8=C5XZE a&gs𜆉"r191EP_Jm.czts-T<-2Rs!cS  0PV<:+|dLSΣ2Y~ 0ZDϛh&u'J96*&8ZgKwK`+r1Oq $C ,FBXD;N''527¾K/F.kPs5?}YL8d6;ڱIkH6vF{ [S:v6/,WiVG8sXEAdŌfaKۊLnd>–e֜7͚j՘*9/=rd{XFr,Lk9TA!R0f,/gi:U4H'"1 BcKq)*etk: K˞n,暷BA˖2GyQA< ń\O5?0+Q( HRh=%95 aAV2Jb Q!:GGBۄ!\CȯÍNtEX+L9^D'<.,4 qN?z)z`9*Wޖe~>{3 odGvGC%@WS"8Aau@-3 +XnILc%ْeJe0DL8ʨfR |c4Osm&pmyn(X5lt..*\t3P55@jxg4bvgHof]/gS:a"^1!Ot_L;"ݯQˍ-NmozK(<3GVψh8x7oÞ xcaR S__jmk/)0w70~v0|xݣvG;6kԖqd3IO E[yЃ'*zHmA5CcL[l}2TӰ[R[U gh0ڬNh 㭙HdMI@pPj]MH$5 ڱݭUGZ+MW RC+k-kN\bCR=d;{2*)TGI+_ad[' }J{@XHL:wu(B>'!ŗÇro=*u6XP|Ha E in@JNd.ho? KF?`qi endstream endobj 4752 0 obj << /Type /Page /Contents 4753 0 R /Resources 4751 0 R /MediaBox [0 0 595.276 841.89] /Parent 4701 0 R /Annots [ 4720 0 R 4721 0 R 4722 0 R 4723 0 R 4724 0 R 4725 0 R 4726 0 R 4727 0 R 4728 0 R 4729 0 R 4730 0 R 4731 0 R 4732 0 R 4733 0 R 4734 0 R 4735 0 R 4736 0 R 4737 0 R 4738 0 R 4739 0 R 4740 0 R 4741 0 R 4742 0 R 4743 0 R 4744 0 R 4745 0 R 4746 0 R 4747 0 R 4748 0 R 4749 0 R 4750 0 R ] >> endobj 4720 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 448.75 105.769 462.698] /A << /S /GoTo /D (gboolean) >> >> endobj 4721 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.925 448.75 294.145 462.698] /A << /S /GoTo /D (BtSongIOInit) >> >> endobj 4722 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 436.695 109.654 450.643] /A << /S /GoTo /D (BtSongIO) >> >> endobj 4723 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 436.695 321.811 450.643] /A << /S /GoTo /D (bt-song-io-from-data) >> >> endobj 4724 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 424.641 109.654 438.588] /A << /S /GoTo /D (BtSongIO) >> >> endobj 4725 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 424.641 317.946 438.588] /A << /S /GoTo /D (bt-song-io-from-file) >> >> endobj 4726 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.775 412.586 115.462 426.533] /A << /S /GoTo /D (GList) >> >> endobj 4727 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 412.586 366.104 426.533] /A << /S /GoTo /D (bt-song-io-get-module-info-list) >> >> endobj 4728 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 400.531 105.769 414.479] /A << /S /GoTo /D (gboolean) >> >> endobj 4729 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 400.531 298.02 414.479] /A << /S /GoTo /D (bt-song-io-load) >> >> endobj 4730 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 388.476 105.769 402.424] /A << /S /GoTo /D (gboolean) >> >> endobj 4731 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 388.476 298.22 402.424] /A << /S /GoTo /D (bt-song-io-save) >> >> endobj 4732 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 376.421 105.769 390.369] /A << /S /GoTo /D (gboolean) >> >> endobj 4733 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.925 376.421 337.313 390.369] /A << /S /GoTo /D (bt-song-io-virtual-load) >> >> endobj 4734 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 364.366 105.769 378.314] /A << /S /GoTo /D (gboolean) >> >> endobj 4735 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.925 364.366 337.512 378.314] /A << /S /GoTo /D (bt-song-io-virtual-save) >> >> endobj 4736 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 302.043 96.872 315.991] /A << /S /GoTo /D (gpointer) >> >> endobj 4737 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 302.043 242.619 315.991] /A << /S /GoTo /D (BtSongIO--data) >> >> endobj 4738 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 289.988 84.15 303.936] /A << /S /GoTo /D (guint) >> >> endobj 4739 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 289.988 258.11 303.936] /A << /S /GoTo /D (BtSongIO--data-len) >> >> endobj 4740 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 277.934 85.794 291.881] /A << /S /GoTo /D (gchar) >> >> endobj 4741 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 277.934 263.649 291.881] /A << /S /GoTo /D (BtSongIO--file-name) >> >> endobj 4742 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 265.879 85.794 279.827] /A << /S /GoTo /D (gchar) >> >> endobj 4743 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.028 265.879 248.715 279.827] /A << /S /GoTo /D (BtSongIO--status) >> >> endobj 4744 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 203.556 329.722 217.503] /A << /S /GoTo /D (BT-SONG-IO-ERROR:CAPS) >> >> endobj 4745 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 191.501 446.891 205.449] /A << /S /GoTo /D (BT-SONG-IO-MODULE-INFO-MAX-FORMATS:CAPS) >> >> endobj 4746 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 179.446 272.008 193.394] /A << /S /GoTo /D (BtSongIO-struct) >> >> endobj 4747 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 167.391 293.597 181.339] /A << /S /GoTo /D (BtSongIOClass) >> >> endobj 4748 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 155.336 293.029 169.284] /A << /S /GoTo /D (BtSongIOError) >> >> endobj 4749 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 143.282 317.238 157.229] /A << /S /GoTo /D (BtSongIOFormatInfo) >> >> endobj 4750 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 131.227 319.599 145.174] /A << /S /GoTo /D (BtSongIOModuleInfo) >> >> endobj 4754 0 obj << /D [4752 0 R /XYZ -11.232 878.039 null] >> endobj 97 0 obj << /D [4752 0 R /XYZ 56.693 761.903 null] >> endobj 98 0 obj << /D [4752 0 R /XYZ 56.693 566.635 null] >> endobj 3470 0 obj << /D [4752 0 R /XYZ 56.693 531.865 null] >> endobj 4755 0 obj << /D [4752 0 R /XYZ 56.693 473.657 null] >> endobj 4756 0 obj << /D [4752 0 R /XYZ 56.693 326.95 null] >> endobj 4757 0 obj << /D [4752 0 R /XYZ 56.693 228.462 null] >> endobj 4758 0 obj << /D [4752 0 R /XYZ 56.693 94.731 null] >> endobj 4759 0 obj << /D [4752 0 R /XYZ 56.693 89.06 null] >> endobj 4760 0 obj << /D [4752 0 R /XYZ 56.693 92.547 null] >> endobj 4751 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4792 0 obj << /Length 2112 /Filter /FlateDecode >> stream xڽZ[۶~P.\IDb4M7SZ,dVl;y%Y%-ù~{K{7WPxtz18~./+U}cQJN.d)%7q6s{ bB"¦BGziz:{'QUʽd='YS=cDh0m0\MpLQ(9A"WJoQV6');4yH1\XmkP6 SF #D|G/=Q[kʥg&w7#UK|(Oeizb@vWBPF~~LH=$)?Co&[DN?ɳ# @l2{Q@=!D\Ʉq˪- C4$V |N땙`Jf$Wybڧl̫U,R¡i]PL'?> ,lWnR ovYt* 6z?l +6>iݐD^9}Zܫ(s >!`׌Clr1QɬY78Ig,sFGaZK Ƀj qjez{1`(yZ%ʲA|* &xP3M%hѐ؇`YU=4ia0LÇEj2Ǫgb3vMhAװx;^3c!]a `l0;\ lM~9+ LpJp|Z0v*A ]4eU\cKcjrM*y߻?T~{G_O>k'[ WقF~QGfw\U= ΆnׇVG ';8Sp " D(u5Y:~V%!/h (bX..鉖ppC"|ї4ۗ1].TPQ=h'}b;/ ;yOgSM!.f6F, VC2p+D~`o 4cd2-,rOm1XD *KÉX&C^yi-i|_ENh(t`aψ6n,:vS@l~3(eYA!T?@c)cר-t𳐯OUm:`qhXZBelu:hL3/ePguM>:W':CӠ`+%Xd--csC8T8ePoݼ3HZsI1%%,!D )xR~;lۻik9 AÄ2s ~ %y"unw0mɂ5Qpbsngw/БhfYu;>ۮw,NLNHźG RJP$!Z+-$[ˮ#8Y&;Źq `Ӂqqǩ:@@#pXp$R 8 zdgd_ztpkYU}]:*R6 egkqmj9_ endstream endobj 4791 0 obj << /Type /Page /Contents 4792 0 R /Resources 4790 0 R /MediaBox [0 0 595.276 841.89] /Parent 4701 0 R /Annots [ 4780 0 R 4781 0 R 4782 0 R 4783 0 R 4784 0 R 4785 0 R 4786 0 R 4787 0 R 4788 0 R 4789 0 R ] >> endobj 4780 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [123.958 601.148 155.848 612.052] /A << /S /GoTo /D (BtSong) >> >> endobj 4781 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.294 601.148 352.694 612.052] /A << /S /GoTo /D (BtSongIO) >> >> endobj 4782 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.316 589.193 335.308 600.097] /A << /S /GoTo /D (BtSongIOModuleInfo) >> >> endobj 4783 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [307.818 577.238 336.68 588.141] /A << /S /GoTo /D (GType) >> >> endobj 4784 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [453.66 577.238 482.213 588.141] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4785 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.499 559.305 276.547 570.209] /A << /S /GoTo /D (bt-song-io-load) >> >> endobj 4786 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [304.99 559.305 380.237 570.209] /A << /S /GoTo /D (bt-song-io-save) >> >> endobj 4787 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.029 541.372 293.592 552.276] /A << /S /GoTo /D (BtSongIONative) >> >> endobj 4788 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 311.87 83.303 322.774] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4789 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [240.198 51.47 268.751 63.535] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4793 0 obj << /D [4791 0 R /XYZ -16.307 878.039 null] >> endobj 4794 0 obj << /D [4791 0 R /XYZ 56.693 762.899 null] >> endobj 4795 0 obj << /D [4791 0 R /XYZ 56.693 751.94 null] >> endobj 4796 0 obj << /D [4791 0 R /XYZ 56.693 740.981 null] >> endobj 4797 0 obj << /D [4791 0 R /XYZ 56.693 676.277 null] >> endobj 4798 0 obj << /D [4791 0 R /XYZ 56.693 618.049 null] >> endobj 4799 0 obj << /D [4791 0 R /XYZ 56.693 446.68 null] >> endobj 4761 0 obj << /D [4791 0 R /XYZ 56.693 421.318 null] >> endobj 4800 0 obj << /D [4791 0 R /XYZ 56.693 415.341 null] >> endobj 4801 0 obj << /D [4791 0 R /XYZ 56.693 418.23 null] >> endobj 4802 0 obj << /D [4791 0 R /XYZ 56.693 407.271 null] >> endobj 4762 0 obj << /D [4791 0 R /XYZ 56.693 273.133 null] >> endobj 4803 0 obj << /D [4791 0 R /XYZ 56.693 267.156 null] >> endobj 4804 0 obj << /D [4791 0 R /XYZ 56.693 270.045 null] >> endobj 4805 0 obj << /D [4791 0 R /XYZ 56.693 259.086 null] >> endobj 4806 0 obj << /D [4791 0 R /XYZ 56.693 248.127 null] >> endobj 4807 0 obj << /D [4791 0 R /XYZ 56.693 237.168 null] >> endobj 4808 0 obj << /D [4791 0 R /XYZ 56.693 226.209 null] >> endobj 4790 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4820 0 obj << /Length 1527 /Filter /FlateDecode >> stream xYr6+:7ΞēLG!3RTdo%iV.P<"h\\O^ pB+$VG:L/v߿Yu6gL/eYޮlf}&0^ydVVhаiHL_5X4yy=kBaAQX%Zn&7oo"0衜A̸10cBg8N6e ]As0c^ ?ebgLNKlp4+᎐jnrF%~n+{e.;I)uQNԛ㠺 Nے4t1!J10g{1knd ot.=wk۝A )lÃ~Zbr(~A!#aK}T.Ş%S2 \`Ѻ$m+S$ Z64јR~\8R Vz>ꮑޔ7aɄWBovlի&`vlSU=F e_d]dֳ9a/62Vʛ"\;ZJ ]kX84^}YsٯmԘ(4]hHXZLuf-l נ ڡXBB_n YJcaԏ 8T^YO倴z&7K(UJKGquW*5+9$"'RrTml7 `X!zjS[o;F&vPوHëcOZ:0*1li?.a`E|?ilä^ N[s6G*w U 'rx(w$}ծj|\v;6^=CE^rs9H7pfpCə=n߰ܶv  u0Z>J,~HJ%R{BJ5Za_7]gۊVVw=|n;e>\`u#v?^0dW(0X:ym¡Gj @ӑ'1}JTUOx & endstream endobj 4819 0 obj << /Type /Page /Contents 4820 0 R /Resources 4818 0 R /MediaBox [0 0 595.276 841.89] /Parent 4701 0 R /Annots [ 4810 0 R 4811 0 R 4812 0 R 4813 0 R 4814 0 R 4815 0 R ] >> endobj 4810 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 728.623 163.681 737.47] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4811 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [240.198 506.117 268.751 518.181] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4812 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.128 457.495 163.681 466.341] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4813 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.054 343.411 266.046 354.315] /A << /S /GoTo /D (BtSongIOModuleInfo) >> >> endobj 4814 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.361 291.377 95.049 300.224] /A << /S /GoTo /D (GList) >> >> endobj 4815 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 95.307 286.474 107.825] /A << /S /GoTo /D (BtSongIO) >> >> endobj 4821 0 obj << /D [4819 0 R /XYZ -11.232 878.039 null] >> endobj 4763 0 obj << /D [4819 0 R /XYZ 56.693 669.897 null] >> endobj 4822 0 obj << /D [4819 0 R /XYZ 56.693 663.919 null] >> endobj 4823 0 obj << /D [4819 0 R /XYZ 56.693 666.808 null] >> endobj 4824 0 obj << /D [4819 0 R /XYZ 56.693 655.85 null] >> endobj 4825 0 obj << /D [4819 0 R /XYZ 56.693 644.891 null] >> endobj 4764 0 obj << /D [4819 0 R /XYZ 56.693 398.768 null] >> endobj 4826 0 obj << /D [4819 0 R /XYZ 56.693 392.791 null] >> endobj 4827 0 obj << /D [4819 0 R /XYZ 56.693 395.68 null] >> endobj 4828 0 obj << /D [4819 0 R /XYZ 56.693 384.721 null] >> endobj 4765 0 obj << /D [4819 0 R /XYZ 56.693 232.651 null] >> endobj 4829 0 obj << /D [4819 0 R /XYZ 56.693 226.673 null] >> endobj 4830 0 obj << /D [4819 0 R /XYZ 56.693 229.563 null] >> endobj 4831 0 obj << /D [4819 0 R /XYZ 56.693 218.604 null] >> endobj 4832 0 obj << /D [4819 0 R /XYZ 56.693 207.645 null] >> endobj 4833 0 obj << /D [4819 0 R /XYZ 56.693 196.686 null] >> endobj 4818 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F105 312 0 R /F98 124 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4843 0 obj << /Length 1477 /Filter /FlateDecode >> stream xZnF}WTԛ_зIРWGyJ([,$rxH 9 C^YlSh@Rae9}|R_+&ey}tz~)Yo׆ ;X6BC * h3~/ht*S*(h09-"XX>W+3 6"{ &iRdnpf 51- 1l]TɱG-*!}e~W'Vo'e.d[>)*XqE)Rmg|Xdλ;d;}P + ;@a)b۩fQ T+…F X)닚)`F\a+>[kQncR>*0b?o~ Z3S|Pr=) ;c Zk ͠ahbmy2) ԏD> rV`Xh""sn]}IfT (Obg5vH+075ǥnPxߝ&|=cB)ljMR"p!˻,[pTL =-v Z'_MDlĤAԳyU+"S޽Z̽4XR9ܺ5d6*N2addE[V4lH_>V)H!i ʰiٔ[8YpP:;O2]A356’SZWd `5DŽX5Ȳ>ݼ)]uCf9"@byx[çWE?y]1z(M"@8H4Mka",Xt]Z3kg99KN/kYh&Yݬd~WWg`LlSS̺yuWyMv)37A׶{^u9=`OgGqO"]%?Ȗk(LwJq9wHFsx`79k.g[y08و[UoΜ7mTns;[%E7yZW} P<_ηڰ%LYlֳrpf@N:N@S"]-IBDDB8b@zXODfQyZ {:+h+zrRݾXrA*`D򘯣)eR~_GY>K6kC; Y xq endstream endobj 4842 0 obj << /Type /Page /Contents 4843 0 R /Resources 4841 0 R /MediaBox [0 0 595.276 841.89] /Parent 4701 0 R /Annots [ 4816 0 R 4817 0 R 4834 0 R 4835 0 R 4836 0 R 4837 0 R 4838 0 R 4839 0 R 4840 0 R ] >> endobj 4816 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 750.381 275.963 762.899] /A << /S /GoTo /D (BtSong) >> >> endobj 4817 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [240.198 701.131 268.751 713.195] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4834 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 652.509 83.303 661.355] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4835 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 474.371 286.474 486.889] /A << /S /GoTo /D (BtSongIO) >> >> endobj 4836 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.073 450.461 275.963 462.979] /A << /S /GoTo /D (BtSong) >> >> endobj 4837 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [240.198 401.21 268.751 413.275] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4838 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 352.588 83.303 361.435] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4839 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [240.198 125.001 268.751 137.066] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4840 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 80.492 83.303 89.339] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4844 0 obj << /D [4842 0 R /XYZ -16.307 878.039 null] >> endobj 4766 0 obj << /D [4842 0 R /XYZ 56.693 611.715 null] >> endobj 4845 0 obj << /D [4842 0 R /XYZ 56.693 605.737 null] >> endobj 4846 0 obj << /D [4842 0 R /XYZ 56.693 608.627 null] >> endobj 4847 0 obj << /D [4842 0 R /XYZ 56.693 597.668 null] >> endobj 4848 0 obj << /D [4842 0 R /XYZ 56.693 586.709 null] >> endobj 4849 0 obj << /D [4842 0 R /XYZ 56.693 575.75 null] >> endobj 4767 0 obj << /D [4842 0 R /XYZ 56.693 311.795 null] >> endobj 4850 0 obj << /D [4842 0 R /XYZ 56.693 305.817 null] >> endobj 4851 0 obj << /D [4842 0 R /XYZ 56.693 308.706 null] >> endobj 4852 0 obj << /D [4842 0 R /XYZ 56.693 297.747 null] >> endobj 4853 0 obj << /D [4842 0 R /XYZ 56.693 286.789 null] >> endobj 4854 0 obj << /D [4842 0 R /XYZ 56.693 275.83 null] >> endobj 4841 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4865 0 obj << /Length 1803 /Filter /FlateDecode >> stream xڽZn6}W] )DiM,6҅r֖RI[PݜQĊL Pέtpt*pK $uOI¹oOchr<D>&ztW|2~63Rzc31K-@F-+RJIM?45NH?;:] Q7 pD=gL|n"30i6 䘙h,0Σ0IUqAv813*r64 ˪e?~"!⧌1~:=\,ՆsxVp8 LMko$V؇HQ C6s@-*- RJ2N8*gC%0oݽFoMU綴ynͻWg !T|'I5e^("lj+[ّ һ| Zd0pYVTIS1C?ax Hi= ʥ3v=DJh.ŒUu-:"̹uu/ nvV*2\AZ̠ ֫3xpAJ9)Բ;lm@`J]Ly-;UxX+~&9/d}Z7FuTn\_ !U7z[`<ɕ|^.B".}}xB<ͭ];>][+\A35Fqk&H6ȳ|މ8 f7, >_O#yjO9_Fm= m&{LV]t [A@o\p"roM.InrH[gdSrr_f=*T]5Jzkenj-TlcXNk_xS}f:g?0~y 0(Ni뙑 pm|];;yI%iA1 $¨> endobj 4855 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [240.198 555.127 268.751 567.192] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4856 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 508.65 83.303 517.497] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 4857 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [383.534 398.419 446.955 409.323] /A << /S /GoTo /D (BtSongIOError) >> >> endobj 4858 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [522.962 398.419 553.168 409.323] /A << /S /GoTo /D (GError) >> >> endobj 4859 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.417 305.705 231.048 316.609] /A << /S /GoTo /D (BtSongIOFormatInfo) >> >> endobj 4866 0 obj << /D [4864 0 R /XYZ -11.232 878.039 null] >> endobj 4768 0 obj << /D [4864 0 R /XYZ 56.693 741.921 null] >> endobj 4867 0 obj << /D [4864 0 R /XYZ 56.693 735.943 null] >> endobj 4868 0 obj << /D [4864 0 R /XYZ 56.693 738.833 null] >> endobj 4869 0 obj << /D [4864 0 R /XYZ 56.693 727.874 null] >> endobj 4870 0 obj << /D [4864 0 R /XYZ 56.693 716.915 null] >> endobj 4871 0 obj << /D [4864 0 R /XYZ 56.693 705.956 null] >> endobj 4872 0 obj << /D [4864 0 R /XYZ 56.693 466.034 null] >> endobj 4773 0 obj << /D [4864 0 R /XYZ 56.693 441.208 null] >> endobj 4873 0 obj << /D [4864 0 R /XYZ 56.693 435.767 null] >> endobj 4874 0 obj << /D [4864 0 R /XYZ 56.693 438.656 null] >> endobj 4774 0 obj << /D [4864 0 R /XYZ 56.693 348.495 null] >> endobj 4875 0 obj << /D [4864 0 R /XYZ 56.693 343.053 null] >> endobj 4876 0 obj << /D [4864 0 R /XYZ 56.693 345.943 null] >> endobj 4775 0 obj << /D [4864 0 R /XYZ 56.693 267.736 null] >> endobj 4877 0 obj << /D [4864 0 R /XYZ 56.693 262.295 null] >> endobj 4878 0 obj << /D [4864 0 R /XYZ 56.693 265.184 null] >> endobj 4776 0 obj << /D [4864 0 R /XYZ 56.693 186.978 null] >> endobj 4879 0 obj << /D [4864 0 R /XYZ 56.693 181.536 null] >> endobj 4880 0 obj << /D [4864 0 R /XYZ 56.693 184.426 null] >> endobj 4881 0 obj << /D [4864 0 R /XYZ 56.693 173.467 null] >> endobj 4882 0 obj << /D [4864 0 R /XYZ 56.693 162.508 null] >> endobj 4883 0 obj << /D [4864 0 R /XYZ 56.693 151.549 null] >> endobj 4884 0 obj << /D [4864 0 R /XYZ 56.693 140.59 null] >> endobj 4885 0 obj << /D [4864 0 R /XYZ 56.693 129.631 null] >> endobj 4886 0 obj << /D [4864 0 R /XYZ 56.693 118.672 null] >> endobj 4863 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4891 0 obj << /Length 1033 /Filter /FlateDecode >> stream xڵMw8 ->-tUЙ@K"c$M:鯟RvH}^ANoڹ( 6t=Ñ2pUMϒ$qzYC$\Iͫ k@A㹬P kॅ"U&(\U>ӟvPE L7-໏`a4V I f܃kt!iz^SRlDmKPWLe5aGiV[F<䦃 nƳyaKDWJt5t+[xY 3xP {w4Ƅ86EX{^)\ILDq= 쓲c6D )3.\Y') ۈ¦Bh#StNc'&*2?O$`QA"Qn!_6ͱ󴂷z;|l m1^ؾYɫޏ$8=̍>[ a~ff|5.W8ˈ߰cJZOdZp,\o8&Ss ƞ=53:ak؟ȥm ḟ$yReG~BL`UPVycf$ 칼f $ϵ,}NpSޮ,l]74"8G!#:f@> endobj 4860 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 707.203 142.53 721.151] /A << /S /GoTo /D (GObjectClass) >> >> endobj 4861 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 647.427 161.081 661.375] /A << /S /GoTo /D (bt-song-io-virtual-load) >> >> endobj 4862 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 563.741 161.28 577.689] /A << /S /GoTo /D (bt-song-io-virtual-save) >> >> endobj 4888 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [303.077 475.052 367.594 485.956] /A << /S /GoTo /D (GIOErrorEnum) >> >> endobj 4892 0 obj << /D [4890 0 R /XYZ -16.307 878.039 null] >> endobj 4777 0 obj << /D [4890 0 R /XYZ 56.693 492.552 null] >> endobj 4893 0 obj << /D [4890 0 R /XYZ 62.67 358.361 null] >> endobj 4894 0 obj << /D [4890 0 R /XYZ 62.67 238.809 null] >> endobj 4895 0 obj << /D [4890 0 R /XYZ 62.67 149.145 null] >> endobj 4778 0 obj << /D [4890 0 R /XYZ 56.693 81.588 null] >> endobj 4889 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4910 0 obj << /Length 1344 /Filter /FlateDecode >> stream xZ]oF}W#Y>m%j +UJ#DHNV6Ǝ ^'O{|sϙ;NBɌPr9tNNsMS4h'qx5 &{#\Oz\Y5Xzo-=|iRbVVV "3_0{_5Kσ_(a/BswO}!Q??LSr,PIbdVLgpp֑GHu%>,E'Y Xw?! r$B62v7_Ez*\aflf&Ry{d8 `HZL6 UH({s@@E!@R.82Ɓ 1-lh JYc!@X3-Z`Tm!=[@8. odjgI9f7)!ޛ`9<&j@cY7 Ԭh@'?(04w-ZsFdb?ۭuAOΟ? Zq=iܟ'0sl' IoyTwUR~!=űлX͗>26֬Ʊe9;mD) 6ɈNv`LPM4$# *Jn.N<(&Ge'l^4eA%vӎ-I{CaL$[@Õ .qo`c|+Y*: Xb-&'^,ӁGצzS5Fm=8%FOۘFZ"*f؊*K`%6TT%F*!IϾ2.X=I X^($h(OJcz<n8^QezB9EJ)9E%2ݪB%*Fj) m(߬hl#RI%T8O"%ߌ?"NM-L.yy@?(e;m7qpb96"II]LlGWyrJ`x{}u>^^U?cؿ4̓צw5;w7iP;a.Msh&.Bbgouޑha `ie> endobj 4897 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.714 659.123 189.115 670.027] /A << /S /GoTo /D (BtSongIO) >> >> endobj 4898 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 573.714 90.536 587.662] /A << /S /GoTo /D (GType) >> >> endobj 4899 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.029 549.804 402.891 562.138] /A << /S /GoTo /D (GType) >> >> endobj 4900 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 531.871 109.315 545.819] /A << /S /GoTo /D (gchar) >> >> endobj 4901 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 507.961 109.315 521.909] /A << /S /GoTo /D (gchar) >> >> endobj 4902 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 472.095 109.315 486.043] /A << /S /GoTo /D (gchar) >> >> endobj 4903 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.714 341.563 189.115 352.467] /A << /S /GoTo /D (BtSongIO) >> >> endobj 4904 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 238.221 117.913 252.169] /A << /S /GoTo /D (BtSongIOInit) >> >> endobj 4905 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.029 196.378 402.582 208.443] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4911 0 obj << /D [4909 0 R /XYZ -11.232 878.039 null] >> endobj 4912 0 obj << /D [4909 0 R /XYZ 56.693 761.903 null] >> endobj 4913 0 obj << /D [4909 0 R /XYZ 56.693 755.228 null] >> endobj 4914 0 obj << /D [4909 0 R /XYZ 56.693 744.269 null] >> endobj 4915 0 obj << /D [4909 0 R /XYZ 56.693 733.31 null] >> endobj 4916 0 obj << /D [4909 0 R /XYZ 56.693 722.351 null] >> endobj 4917 0 obj << /D [4909 0 R /XYZ 56.693 711.392 null] >> endobj 4918 0 obj << /D [4909 0 R /XYZ 56.693 700.433 null] >> endobj 4779 0 obj << /D [4909 0 R /XYZ 56.693 418.838 null] >> endobj 4919 0 obj << /D [4909 0 R /XYZ 56.693 412.861 null] >> endobj 4920 0 obj << /D [4909 0 R /XYZ 56.693 415.75 null] >> endobj 4921 0 obj << /D [4909 0 R /XYZ 56.693 404.791 null] >> endobj 4922 0 obj << /D [4909 0 R /XYZ 56.693 393.832 null] >> endobj 4923 0 obj << /D [4909 0 R /XYZ 56.693 382.873 null] >> endobj 4908 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F98 124 0 R /F81 10 0 R /F108 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4929 0 obj << /Length 1069 /Filter /FlateDecode >> stream xڽX]s6}W:c˒ڧMdnN;0`Ʀl}o+&@.$KWsdCt9u:`EH8I h4AݳշoyfyLYf{ 0 $+FEn}ɰ%lZxTݾk֨~CaA%0=;M`" ]#A f<~:;Lyʦun$)E]L/42"s@r֋R2]]rܣkQ7! 0+gb|9_?]_ `x{G)~y @P 7,sJR $ǂ.ޛOWW[Yyz*;sYpbp5Q*3uiT7 SyH«ifі_j#ʟf6,9iE1#옓.UQđBo2_3U2tA'vt=s3*/<=nd?3'&75.\xQQv<\ǒ &#;.n ưVe!6dc[ 9\W@AľaBTUkORXH%,0k|[4 £, ;] ʦ+k6ޞ@w<ٳ?]JxTtLKckֽgik8s[ b3]878k~fyXOYNG0֋äp5k}I%X5x2nyoؖ6'S׼j@vfٽ>Hmo}z/f!ޕ0ꁁYŹ[DītECzKw< endstream endobj 4928 0 obj << /Type /Page /Contents 4929 0 R /Resources 4927 0 R /MediaBox [0 0 595.276 841.89] /Parent 4887 0 R /Annots [ 4906 0 R 4907 0 R ] >> endobj 4906 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [61.674 672.672 149.305 685.19] /A << /S /GoTo /D (BtSongIOFormatInfo) >> >> endobj 4907 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.029 752.438 402.582 762.899] /A << /S /GoTo /D (NULL:CAPS) >> >> endobj 4930 0 obj << /D [4928 0 R /XYZ -16.307 878.039 null] >> endobj 4931 0 obj << /D [4928 0 R /XYZ 56.693 543.664 null] >> endobj 4769 0 obj << /D [4928 0 R /XYZ 56.693 518.303 null] >> endobj 4932 0 obj << /D [4928 0 R /XYZ 56.693 512.325 null] >> endobj 4933 0 obj << /D [4928 0 R /XYZ 56.693 515.214 null] >> endobj 4770 0 obj << /D [4928 0 R /XYZ 56.693 417.235 null] >> endobj 4934 0 obj << /D [4928 0 R /XYZ 56.693 411.258 null] >> endobj 4935 0 obj << /D [4928 0 R /XYZ 56.693 414.147 null] >> endobj 4771 0 obj << /D [4928 0 R /XYZ 56.693 298.235 null] >> endobj 4936 0 obj << /D [4928 0 R /XYZ 56.693 292.258 null] >> endobj 4937 0 obj << /D [4928 0 R /XYZ 56.693 295.147 null] >> endobj 4772 0 obj << /D [4928 0 R /XYZ 56.693 179.235 null] >> endobj 4938 0 obj << /D [4928 0 R /XYZ 56.693 173.257 null] >> endobj 4939 0 obj << /D [4928 0 R /XYZ 56.693 176.147 null] >> endobj 4927 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F108 345 0 R /F81 10 0 R /F110 620 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4943 0 obj << /Length 1381 /Filter /FlateDecode >> stream xڵY[o6~ P`!)aɖ.Eb1 K@X,eIT,*OKHK+C"|28 )h2G\`$ "Gc_Yh~| a&y'Nޟ]zy+ J=W¦"., ԓz+Q`Q|%h#]o՗K)0obG( +Jy€] bV QB7cJ>4_D9\KgU2#Ƈ#ʇVA_f~<$uf%ea~23,^F#Fed˦ h`U-`OX'#AOanX1;w܏KxyzJ1Vʠؤ1L")<ΩhR!3v s$%`ZB_B :}1L@G`V f uԮcSi!v^T}P /e abWX A0Kgz8J3'<=WMRA~;K!ݝ6~O Ie#lY"ɱL@ND'}Ä0ycE>i}WL,- ;WIˏsUހڝa( Qh:-eCSYt_DilhvѭUUWه_aq86h&eP6ұ Ne8gQ_Vͬ Vˋtnn"k{ԇPq[Fyݷ1 {X Ҥdm6J1WXo+8~mp·e+kr}[,@oey\ ;C4h5tղmC2Es:yt`_-jf&^dBH6ve]J8}0> &ZӺ9wu9?{\[Zͪ'9O.rOAT$.χ {)s:楓쟎@=6%NGP'A@ڲ#df{?C*!Rt {2W؝EŒjc}KɄr UZ:\NL;V7A_?- endstream endobj 4942 0 obj << /Type /Page /Contents 4943 0 R /Resources 4941 0 R /MediaBox [0 0 595.276 841.89] /Parent 4887 0 R /Annots [ 4924 0 R 4925 0 R 4926 0 R ] >> endobj 4924 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 650.992 298.17 664.94] /A << /S /GoTo /D (BtSongIONative-struct) >> >> endobj 4925 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 638.937 319.758 652.885] /A << /S /GoTo /D (BtSongIONativeClass) >> >> endobj 4926 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 626.882 360.715 640.83] /A << /S /GoTo /D (bt-song-io-native-module-info) >> >> endobj 4944 0 obj << /D [4942 0 R /XYZ -11.232 878.039 null] >> endobj 99 0 obj << /D [4942 0 R /XYZ 56.693 761.903 null] >> endobj 4809 0 obj << /D [4942 0 R /XYZ 56.693 734.107 null] >> endobj 4945 0 obj << /D [4942 0 R /XYZ 56.693 675.899 null] >> endobj 4946 0 obj << /D [4942 0 R /XYZ 56.693 589.466 null] >> endobj 4947 0 obj << /D [4942 0 R /XYZ 56.693 583.488 null] >> endobj 4948 0 obj << /D [4942 0 R /XYZ 56.693 586.975 null] >> endobj 4949 0 obj << /D [4942 0 R /XYZ 56.693 576.016 null] >> endobj 4950 0 obj << /D [4942 0 R /XYZ 56.693 565.057 null] >> endobj 4951 0 obj << /D [4942 0 R /XYZ 56.693 554.099 null] >> endobj 4952 0 obj << /D [4942 0 R /XYZ 56.693 543.14 null] >> endobj 4953 0 obj << /D [4942 0 R /XYZ 56.693 478.436 null] >> endobj 4954 0 obj << /D [4942 0 R /XYZ 56.693 420.208 null] >> endobj 4955 0 obj << /D [4942 0 R /XYZ 56.693 350.025 null] >> endobj 4956 0 obj << /D [4942 0 R /XYZ 56.693 323.667 null] >> endobj 4957 0 obj << /D [4942 0 R /XYZ 56.693 298.305 null] >> endobj 4958 0 obj << /D [4942 0 R /XYZ 56.693 292.327 null] >> endobj 4959 0 obj << /D [4942 0 R /XYZ 56.693 295.217 null] >> endobj 4960 0 obj << /D [4942 0 R /XYZ 56.693 215.17 null] >> endobj 4961 0 obj << /D [4942 0 R /XYZ 56.693 209.193 null] >> endobj 4962 0 obj << /D [4942 0 R /XYZ 56.693 212.082 null] >> endobj 4963 0 obj << /D [4942 0 R /XYZ 56.693 201.123 null] >> endobj 4964 0 obj << /D [4942 0 R /XYZ 56.693 190.164 null] >> endobj 4941 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 4976 0 obj << /Length 1623 /Filter /FlateDecode >> stream xYnF}W,xHiD(@Qł"]J|}gKY$% -!\̙ۡA].K#I4]"!9R>\E8|Z 2(^gydx-r' "5R\#A f\:AFA$(p%ҢN7._Gg,~: Zp~IvzF֘66ߔ 58LmΥiĄ|xZJg{f&L %8k(žmGSM1#[5t'J8Sle9&fq02,\Zaı"cQ/Čza_(r'n!5=TJS~}Nؕ%gP8]ɰU\`)]Ewe"uڑ!V_ˬ{LS6zď!i]_i/ƞ *Ʈ.|vm춫$ Q~^&I>YGe*"s(FH~PRysg`[苿{b J1g+W+fLٕDmv҅]dr{3Nunm&k9ŭ4,ch:FtB(*<˒(h@#Lf h[Qtc*YPR{wf,n'g<[6y܎ 6"!Mcp ڧCa+޶7]b !s{)mA 0O ]zTf)ځ~F7J7xN$H ;L~lbO7a ډWXQv"'z0qڅQRP>,{i$aO]Uzx' F/q)ꡉYlfXtC WdC`K!p ;*Tkj1+gc{/,xcSTy|kƷstȩp6=y;$ZGiY%*hVY8Bq7́_R{nEͱ͎/qw#ם3֨JmkAv|i)iI}eEMvϷ:LK6 ޱ8 r6Rl•{Yę{XZgAT ޖcV_,Ϭ|:')S|D*oK;\3Vq{?Ÿ{Gf'[:wG8hl`Fc*ɤmCl~m8xT9`[.?t-*hgQl}ٳPf'Mm=3!`\MVހBzX} ZBXI]1;!Wi`U@WK,'Shb4CL\[~q6 endstream endobj 4975 0 obj << /Type /Page /Contents 4976 0 R /Resources 4974 0 R /MediaBox [0 0 595.276 841.89] /Parent 4887 0 R /Annots [ 4940 0 R 4966 0 R 4967 0 R 4968 0 R 4969 0 R 4970 0 R 4971 0 R 4972 0 R ] >> endobj 4940 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 736.996 149.185 750.944] /A << /S /GoTo /D (BtSongIOClass) >> >> endobj 4966 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 511.194 105.769 525.141] /A << /S /GoTo /D (gboolean) >> >> endobj 4967 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 511.194 386.618 525.141] /A << /S /GoTo /D (bt-song-io-native-bzt-copy-from-uri) >> >> endobj 4968 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [67.253 499.139 105.769 513.087] /A << /S /GoTo /D (gboolean) >> >> endobj 4969 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 499.139 372.232 513.087] /A << /S /GoTo /D (bt-song-io-native-bzt-copy-to-fd) >> >> endobj 4970 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 436.816 316.989 450.763] /A << /S /GoTo /D (BtSongIONativeBZT-struct) >> >> endobj 4971 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 424.761 338.578 438.709] /A << /S /GoTo /D (BtSongIONativeBZTClass) >> >> endobj 4972 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [110.109 212.144 178.672 223.048] /A << /S /GoTo /D (BtSongIONative) >> >> endobj 4977 0 obj << /D [4975 0 R /XYZ -16.307 878.039 null] >> endobj 4965 0 obj << /D [4975 0 R /XYZ 56.693 689.717 null] >> endobj 4978 0 obj << /D [4975 0 R /XYZ 56.693 683.739 null] >> endobj 4979 0 obj << /D [4975 0 R /XYZ 56.693 686.628 null] >> endobj 100 0 obj << /D [4975 0 R /XYZ 56.693 631.305 null] >> endobj 4980 0 obj << /D [4975 0 R /XYZ 56.693 594.308 null] >> endobj 4981 0 obj << /D [4975 0 R /XYZ 56.693 536.1 null] >> endobj 4982 0 obj << /D [4975 0 R /XYZ 56.693 461.722 null] >> endobj 4983 0 obj << /D [4975 0 R /XYZ 56.693 387.344 null] >> endobj 4984 0 obj << /D [4975 0 R /XYZ 56.693 381.367 null] >> endobj 4985 0 obj << /D [4975 0 R /XYZ 56.693 384.854 null] >> endobj 4986 0 obj << /D [4975 0 R /XYZ 56.693 373.895 null] >> endobj 4987 0 obj << /D [4975 0 R /XYZ 56.693 362.936 null] >> endobj 4988 0 obj << /D [4975 0 R /XYZ 56.693 351.977 null] >> endobj 4989 0 obj << /D [4975 0 R /XYZ 56.693 287.273 null] >> endobj 4990 0 obj << /D [4975 0 R /XYZ 56.693 229.045 null] >> endobj 4991 0 obj << /D [4975 0 R /XYZ 56.693 158.862 null] >> endobj 4992 0 obj << /D [4975 0 R /XYZ 56.693 133.5 null] >> endobj 4993 0 obj << /D [4975 0 R /XYZ 56.693 127.523 null] >> endobj 4994 0 obj << /D [4975 0 R /XYZ 56.693 130.412 null] >> endobj 4995 0 obj << /D [4975 0 R /XYZ 56.693 119.453 null] >> endobj 4996 0 obj << /D [4975 0 R /XYZ 56.693 108.494 null] >> endobj 4997 0 obj << /D [4975 0 R /XYZ 56.693 97.535 null] >> endobj 4974 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F108 345 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5007 0 obj << /Length 1566 /Filter /FlateDecode >> stream xZIoFW(x9H= ZlT}ʤ(Y#ʡ9-]2AFR瑐H)WE,^Pzx.D+x*'QS&#f]7:\|2 j w2ViR8={d=4%X;U& 'VunUk/)8'yH&!&02+%൵(]SdA1#F!Ø||z#]*<+9Ww~;nz|K]mm ٠ %5Cp͐eكl6HS_nlS\G@Ӷ=¸ jiDN5[)1b?:MƆlYm_ud@i񗟫wc6%A8"H~oc0?dШ2|e=sކB%Jﴁb l~^Fp`ʗao}-1l-ZKknJ*.mLuY*uyH'T ?٦˧tua~= F z]4XlIizp _$6jQoa|$ odGʹ]Wql6~O?vda o7 5C+ D F]K)J{ endstream endobj 5006 0 obj << /Type /Page /Contents 5007 0 R /Resources 5005 0 R /MediaBox [0 0 595.276 841.89] /Parent 5021 0 R /Annots [ 4973 0 R 5001 0 R 5002 0 R 5003 0 R ] >> endobj 4973 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [133.444 730.854 165.334 741.758] /A << /S /GoTo /D (BtSong) >> >> endobj 5001 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 584.669 83.303 593.246] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 5002 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [133.444 448.667 165.334 459.571] /A << /S /GoTo /D (BtSong) >> >> endobj 5003 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [55.697 283.854 83.303 292.432] /A << /S /GoTo /D (TRUE:CAPS) >> >> endobj 5008 0 obj << /D [5006 0 R /XYZ -11.232 878.039 null] >> endobj 4998 0 obj << /D [5006 0 R /XYZ 56.693 543.875 null] >> endobj 5009 0 obj << /D [5006 0 R /XYZ 56.693 537.898 null] >> endobj 5010 0 obj << /D [5006 0 R /XYZ 56.693 540.787 null] >> endobj 5011 0 obj << /D [5006 0 R /XYZ 56.693 529.828 null] >> endobj 5012 0 obj << /D [5006 0 R /XYZ 56.693 518.869 null] >> endobj 5013 0 obj << /D [5006 0 R /XYZ 56.693 507.91 null] >> endobj 5014 0 obj << /D [5006 0 R /XYZ 56.693 242.324 null] >> endobj 4999 0 obj << /D [5006 0 R /XYZ 56.693 218.258 null] >> endobj 5015 0 obj << /D [5006 0 R /XYZ 56.693 213.576 null] >> endobj 5016 0 obj << /D [5006 0 R /XYZ 56.693 216.465 null] >> endobj 5000 0 obj << /D [5006 0 R /XYZ 56.693 140.864 null] >> endobj 5017 0 obj << /D [5006 0 R /XYZ 56.693 136.182 null] >> endobj 5018 0 obj << /D [5006 0 R /XYZ 56.693 139.071 null] >> endobj 5019 0 obj << /D [5006 0 R /XYZ 56.693 128.112 null] >> endobj 5020 0 obj << /D [5006 0 R /XYZ 56.693 117.153 null] >> endobj 5005 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F108 345 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5028 0 obj << /Length 1311 /Filter /FlateDecode >> stream xڵY]o6} P`BC$EtC%kѬXk >(heO4.E֗k_"J.ιP!t5:J#dXjh6G7Kϓ3&z*\ A f\8AGH|ZQkbQ6b|`:=.u^H{dFqy޿[&Ə&|tb-%%(0Uiy*0 moIБy^<^! ./㮝\ L@q<ڄ()|UԁԧH*S5"3n{ثqRQBZ=F^ބJ\$Xӧ" e/]kZ=Ψ0u?ͼ_( 2ᄒ}1a0a͡!Ƞ*Á.("Ce,hWْl=4]Vgj,5G[&%6)Jtº̏+g5izaF?yf-dwt6&+ +NOG=@m 5D| !AQLz2 ۖ20Bhx24%+%֚a XYxsd3tS֝{yvRc!lѦ~i)o;osxt7{ץCͣ,;fܹX73bD de0K0ayẄ́Oyr1~ei#پ844mw< ڵ-a= ~0vc$i|NR?l VJ؂aoz-d=ؙ0z 2aɲt6]ܗx5mqwD{Qe sP 6D{*Bէ*i0D0PI߾ )&'\J4l$l7R>{} mw#@_Y@;&w]}2cʝۺ8ԣƿ4i _ endstream endobj 5027 0 obj << /Type /Page /Contents 5028 0 R /Resources 5026 0 R /MediaBox [0 0 595.276 841.89] /Parent 5021 0 R /Annots [ 5004 0 R 5022 0 R 5023 0 R 5024 0 R ] >> endobj 5004 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 707.203 175.347 721.151] /A << /S /GoTo /D (BtSongIONativeClass) >> >> endobj 5022 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 565.608 320.307 579.555] /A << /S /GoTo /D (BtSongIONativeXML-struct) >> >> endobj 5023 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 553.553 341.895 567.5] /A << /S /GoTo /D (BtSongIONativeXMLClass) >> >> endobj 5024 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [108.827 353.877 177.389 364.781] /A << /S /GoTo /D (BtSongIONative) >> >> endobj 5029 0 obj << /D [5027 0 R /XYZ -16.307 878.039 null] >> endobj 101 0 obj << /D [5027 0 R /XYZ 56.693 684.289 null] >> endobj 5030 0 obj << /D [5027 0 R /XYZ 56.693 648.722 null] >> endobj 5031 0 obj << /D [5027 0 R /XYZ 56.693 590.514 null] >> endobj 5032 0 obj << /D [5027 0 R /XYZ 56.693 520.073 null] >> endobj 5033 0 obj << /D [5027 0 R /XYZ 56.693 515.408 null] >> endobj 5034 0 obj << /D [5027 0 R /XYZ 56.693 518.895 null] >> endobj 5035 0 obj << /D [5027 0 R /XYZ 56.693 507.936 null] >> endobj 5036 0 obj << /D [5027 0 R /XYZ 56.693 496.977 null] >> endobj 5037 0 obj << /D [5027 0 R /XYZ 56.693 486.018 null] >> endobj 5038 0 obj << /D [5027 0 R /XYZ 56.693 424.504 null] >> endobj 5039 0 obj << /D [5027 0 R /XYZ 56.693 369.466 null] >> endobj 5040 0 obj << /D [5027 0 R /XYZ 56.693 314.427 null] >> endobj 5041 0 obj << /D [5027 0 R /XYZ 56.693 289.382 null] >> endobj 5042 0 obj << /D [5027 0 R /XYZ 56.693 265.332 null] >> endobj 5043 0 obj << /D [5027 0 R /XYZ 56.693 260.667 null] >> endobj 5044 0 obj << /D [5027 0 R /XYZ 56.693 263.556 null] >> endobj 5045 0 obj << /D [5027 0 R /XYZ 56.693 188.012 null] >> endobj 5046 0 obj << /D [5027 0 R /XYZ 56.693 183.347 null] >> endobj 5047 0 obj << /D [5027 0 R /XYZ 56.693 186.236 null] >> endobj 5048 0 obj << /D [5027 0 R /XYZ 56.693 175.277 null] >> endobj 5049 0 obj << /D [5027 0 R /XYZ 56.693 164.318 null] >> endobj 5026 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F108 345 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5054 0 obj << /Length 1113 /Filter /FlateDecode >> stream xڵWMs6W`&3 8v4DӋEQ;ɒTwA)ґ ,v[,CLŵ}yhAÞϑU-vz|a6gL۬ǧhQAŵ&HYB1MkTiXtaY4}9wBaA ,W{D5g3A?A'Mȓy BJP,a%Ҳwwv>LЭ s޽gP3&ͨFo,~kJZ(*DUeyf0ঽB= i WXq9(p%1a)ɱ500R:x(шbFOx#MSD)? ,{UW&iG ԦvwvƔ&+lٶj]V;w`t݌ܷvK)=n[<2K{L%mƃd#!IR*0D/\eUjHc l.`a<":i>ySM @$s0GEP%ӭ}6!OYH"㓄CG<AitRom|t&T5LKpdеal~* 3K ύ㳛gŴ~9l/RgFjTE&yS:hzu@}!#oB.uvH4Łz `P!p.`Gm{C( ӻ446ٯ9Tr =44kgu$jU({]EeXygw|g6.?<<]D;JN`ׂ> lc[]`5}.0\P6ʪ`} PVvh ^:5cTv/yU'8,Ne5i:h[Ds'bfzZ\А: 7 \;ƆOvW' cAɗ LQ,*\"u\@+iq/3h疠+CD> endobj 5025 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.196 736.996 175.347 750.944] /A << /S /GoTo /D (BtSongIONativeClass) >> >> endobj 5050 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.608 595.4 292.481 609.348] /A << /S /GoTo /D (BtSongIOBuzz-struct) >> >> endobj 5051 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [76.24 393.742 118.64 404.646] /A << /S /GoTo /D (BtSongIO) >> >> endobj 5055 0 obj << /D [5053 0 R /XYZ -11.232 878.039 null] >> endobj 102 0 obj << /D [5053 0 R /XYZ 56.693 714.082 null] >> endobj 5056 0 obj << /D [5053 0 R /XYZ 56.693 678.515 null] >> endobj 5057 0 obj << /D [5053 0 R /XYZ 56.693 620.307 null] >> endobj 5058 0 obj << /D [5053 0 R /XYZ 56.693 557.984 null] >> endobj 5059 0 obj << /D [5053 0 R /XYZ 56.693 552.006 null] >> endobj 5060 0 obj << /D [5053 0 R /XYZ 56.693 555.493 null] >> endobj 5061 0 obj << /D [5053 0 R /XYZ 56.693 544.534 null] >> endobj 5062 0 obj << /D [5053 0 R /XYZ 56.693 533.576 null] >> endobj 5063 0 obj << /D [5053 0 R /XYZ 56.693 468.872 null] >> endobj 5064 0 obj << /D [5053 0 R /XYZ 56.693 410.644 null] >> endobj 5065 0 obj << /D [5053 0 R /XYZ 56.693 340.46 null] >> endobj 5066 0 obj << /D [5053 0 R /XYZ 56.693 314.103 null] >> endobj 5067 0 obj << /D [5053 0 R /XYZ 56.693 288.741 null] >> endobj 5068 0 obj << /D [5053 0 R /XYZ 56.693 282.763 null] >> endobj 5069 0 obj << /D [5053 0 R /XYZ 56.693 285.653 null] >> endobj 5052 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F108 345 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5072 0 obj << /Length 259 /Filter /FlateDecode >> stream xڝn0 Ew}G{0Mɒ(uPoA#+?vԉ${C7 xy)5{譲P`,ZYBY6/W8Q|HV}3/MM_ǪTxWnҵ#pffNsX:9JA.J "q_!9%H3>I2#gAEh2!(-|Oꇙ(`jd7D2fd 1/ʻX|np7z`w endstream endobj 5071 0 obj << /Type /Page /Contents 5072 0 R /Resources 5070 0 R /MediaBox [0 0 595.276 841.89] /Parent 5021 0 R >> endobj 5073 0 obj << /D [5071 0 R /XYZ -16.307 878.039 null] >> endobj 103 0 obj << /D [5071 0 R /XYZ 56.693 559.065 null] >> endobj 5070 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5076 0 obj << /Length 1621 /Filter /FlateDecode >> stream xڽKoF 7~ HqnS4Ȃ蘭D:8jģzP ,ޏ3sCAdz9yT‚ULWT,/uKMEh&Ѵ?9mʿy]]U]wofS.]>Ԑ8YYF6G=4yr98[߭U,wX=/kOo I 0eq1eB5 w0:oEӂ1İa-RH ռ;fh~LvgX9]㠉pf8(]>T``-/{20e![2{[C_@b +1sے`8g;[hn^xf&_mC}dmfU?p$?. ܕvODr4{}].mOMH% he$f$"=>>q}-o5I5 juxHHqqأ!Wd?YVIA @fD(m˴n"悳6C(Plgڟ뺩R\#`F|1`>{MiWuۍ}-GrÚs#k$2d6d>l2n)"KvͫФ٠HhXqhR254BO5#pgD+zSwɍD N5%p$ӶvZ̢n>a4K ĂhR>t8/?ҡ>f#`Q8p;D|gqtft)1EO77z^u:sCd6>lH E^ lB}$8C@q}H|!GBCP l"@8]!`OoH0Xq0eבB0H}&GB~+jYƶ.@i5Ni`9{SǺlǚxCX|Ke@| G23 ]cp2P\.{8xZ}gM_uWeIT,[yC}dyf4^f A +JPHXqT 쓻%W6 >lqv~mo 7{ =p,(?ηX endstream endobj 5075 0 obj << /Type /Page /Contents 5076 0 R /Resources 5074 0 R /MediaBox [0 0 595.276 841.89] /Parent 5021 0 R >> endobj 5077 0 obj << /D [5075 0 R /XYZ -11.232 878.039 null] >> endobj 104 0 obj << /D [5075 0 R /XYZ 56.693 761.903 null] >> endobj 5078 0 obj << /D [5075 0 R /XYZ 56.693 566.635 null] >> endobj 5079 0 obj << /D [5075 0 R /XYZ 56.693 560.657 null] >> endobj 5080 0 obj << /D [5075 0 R /XYZ 56.693 566.934 null] >> endobj 5081 0 obj << /D [5075 0 R /XYZ 56.693 555.975 null] >> endobj 5082 0 obj << /D [5075 0 R /XYZ 56.693 545.016 null] >> endobj 5083 0 obj << /D [5075 0 R /XYZ 56.693 534.057 null] >> endobj 5084 0 obj << /D [5075 0 R /XYZ 56.693 523.098 null] >> endobj 5085 0 obj << /D [5075 0 R /XYZ 56.693 512.139 null] >> endobj 5086 0 obj << /D [5075 0 R /XYZ 56.693 501.18 null] >> endobj 5087 0 obj << /D [5075 0 R /XYZ 56.693 490.221 null] >> endobj 5088 0 obj << /D [5075 0 R /XYZ 56.693 479.263 null] >> endobj 5089 0 obj << /D [5075 0 R /XYZ 56.693 468.304 null] >> endobj 5090 0 obj << /D [5075 0 R /XYZ 56.693 457.345 null] >> endobj 5091 0 obj << /D [5075 0 R /XYZ 56.693 446.386 null] >> endobj 5092 0 obj << /D [5075 0 R /XYZ 56.693 435.427 null] >> endobj 5093 0 obj << /D [5075 0 R /XYZ 56.693 424.468 null] >> endobj 5094 0 obj << /D [5075 0 R /XYZ 56.693 413.509 null] >> endobj 5095 0 obj << /D [5075 0 R /XYZ 56.693 402.55 null] >> endobj 5096 0 obj << /D [5075 0 R /XYZ 56.693 391.591 null] >> endobj 5097 0 obj << /D [5075 0 R /XYZ 56.693 380.632 null] >> endobj 5098 0 obj << /D [5075 0 R /XYZ 56.693 369.673 null] >> endobj 5099 0 obj << /D [5075 0 R /XYZ 56.693 358.715 null] >> endobj 5100 0 obj << /D [5075 0 R /XYZ 56.693 347.756 null] >> endobj 5101 0 obj << /D [5075 0 R /XYZ 56.693 336.797 null] >> endobj 5102 0 obj << /D [5075 0 R /XYZ 56.693 325.838 null] >> endobj 5103 0 obj << /D [5075 0 R /XYZ 56.693 314.879 null] >> endobj 5104 0 obj << /D [5075 0 R /XYZ 56.693 303.92 null] >> endobj 5105 0 obj << /D [5075 0 R /XYZ 56.693 292.961 null] >> endobj 5106 0 obj << /D [5075 0 R /XYZ 56.693 282.002 null] >> endobj 5107 0 obj << /D [5075 0 R /XYZ 56.693 271.043 null] >> endobj 5108 0 obj << /D [5075 0 R /XYZ 56.693 260.084 null] >> endobj 5109 0 obj << /D [5075 0 R /XYZ 56.693 249.126 null] >> endobj 5110 0 obj << /D [5075 0 R /XYZ 56.693 238.167 null] >> endobj 5111 0 obj << /D [5075 0 R /XYZ 56.693 227.208 null] >> endobj 5112 0 obj << /D [5075 0 R /XYZ 56.693 216.249 null] >> endobj 5113 0 obj << /D [5075 0 R /XYZ 56.693 205.29 null] >> endobj 5114 0 obj << /D [5075 0 R /XYZ 56.693 194.331 null] >> endobj 5115 0 obj << /D [5075 0 R /XYZ 56.693 183.372 null] >> endobj 5116 0 obj << /D [5075 0 R /XYZ 56.693 172.413 null] >> endobj 5117 0 obj << /D [5075 0 R /XYZ 56.693 161.454 null] >> endobj 5118 0 obj << /D [5075 0 R /XYZ 56.693 150.495 null] >> endobj 5119 0 obj << /D [5075 0 R /XYZ 56.693 139.536 null] >> endobj 5120 0 obj << /D [5075 0 R /XYZ 56.693 128.578 null] >> endobj 5121 0 obj << /D [5075 0 R /XYZ 56.693 117.619 null] >> endobj 5074 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F98 124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5124 0 obj << /Length 653 /Filter /FlateDecode >> stream xڽUMs Wpg* 4MqOiD¶&T8H 'dEڷ,,gtLN0OI 0#v0z4mM!IhjpLLoSaӨ g81-f(̓_^'*%X79@0)= (W=G1&yK-llNV6qTRB`(PI )Mཔ0S)0gBilF-cx|8=;Yo(Η 6}({ґ(!N`L/?..\i*OqY 8fZWr6L{nFZ7G-Ěm&"ٚt U%Wb@ԯ^k _ȖeBw쐺r\lj~3.ySz/% #BI*`?B#5oPm/U_ka[a0_tOmGԋI"qT/_EQ97 uX|uj?ܙXGvݲnW1VJ8 6O`^?v]U;2gҼԭ'+/x7+AX%ح໡&\l^4 endstream endobj 5123 0 obj << /Type /Page /Contents 5124 0 R /Resources 5122 0 R /MediaBox [0 0 595.276 841.89] /Parent 5021 0 R >> endobj 5125 0 obj << /D [5123 0 R /XYZ -16.307 878.039 null] >> endobj 105 0 obj << /D [5123 0 R /XYZ 56.693 761.903 null] >> endobj 5126 0 obj << /D [5123 0 R /XYZ 56.693 568.444 null] >> endobj 5127 0 obj << /D [5123 0 R /XYZ 56.693 515.484 null] >> endobj 5128 0 obj << /D [5123 0 R /XYZ 56.693 480.976 null] >> endobj 5129 0 obj << /D [5123 0 R /XYZ 56.693 393.525 null] >> endobj 5130 0 obj << /D [5123 0 R /XYZ 56.693 306.073 null] >> endobj 5131 0 obj << /D [5123 0 R /XYZ 56.693 219.907 null] >> endobj 5132 0 obj << /D [5123 0 R /XYZ 56.693 133.741 null] >> endobj 5133 0 obj << /D [5123 0 R /XYZ 56.693 99.233 null] >> endobj 5122 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5136 0 obj << /Length 377 /Filter /FlateDecode >> stream xڽMO0 &i$ 4 !ijMJ]:~=YMHC)cK0 q i I,F KsrIw:}|ʰ;haU+<\JϺ!՛8 6#p yu@(4d0[:)̼H ضK`#F<9t\d~ ~>Ь endstream endobj 5135 0 obj << /Type /Page /Contents 5136 0 R /Resources 5134 0 R /MediaBox [0 0 595.276 841.89] /Parent 5142 0 R >> endobj 5137 0 obj << /D [5135 0 R /XYZ -11.232 878.039 null] >> endobj 5138 0 obj << /D [5135 0 R /XYZ 56.693 712.298 null] >> endobj 5139 0 obj << /D [5135 0 R /XYZ 56.693 676.433 null] >> endobj 5140 0 obj << /D [5135 0 R /XYZ 56.693 640.567 null] >> endobj 5141 0 obj << /D [5135 0 R /XYZ 56.693 604.702 null] >> endobj 5134 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5229 0 obj << /Length 1294 /Filter /FlateDecode >> stream xڵMs8 A8n&ݪxRɠM`$H$Hb jZ-99>zf Bwmi# BGFM D /sR/xfGؾ[HjE3;L6;d l Rr;۶ZBk 70mRvI&YDU̘E mrXpcBF|xZZ ϊ.&3.(6X/ z>B GGޠ&nU[Y}I ܾ}G.gk\B^?x>r_N[%#{(Xigx%}2aYA%<}/kr{PhUUcL :\-d|WkPP˩b H ̦ɋ~LxJBlElE[eUX%u2=a~j(a{wpgwS/9I endstream endobj 5228 0 obj << /Type /Page /Contents 5229 0 R /Resources 5227 0 R /MediaBox [0 0 595.276 841.89] /Parent 5142 0 R /Annots [ 5143 0 R 5144 0 R 5145 0 R 5146 0 R 5147 0 R 5148 0 R 5149 0 R 5150 0 R 5151 0 R 5152 0 R 5153 0 R 5154 0 R 5155 0 R 5156 0 R 5157 0 R 5158 0 R 5159 0 R 5160 0 R 5161 0 R 5162 0 R 5163 0 R 5164 0 R 5165 0 R 5166 0 R 5167 0 R 5168 0 R 5169 0 R 5170 0 R 5171 0 R 5172 0 R 5173 0 R 5174 0 R 5175 0 R 5176 0 R 5177 0 R 5178 0 R 5179 0 R 5180 0 R 5181 0 R 5182 0 R 5183 0 R 5184 0 R 5185 0 R 5186 0 R 5187 0 R 5188 0 R 5189 0 R 5190 0 R 5191 0 R 5192 0 R 5193 0 R 5194 0 R 5195 0 R 5196 0 R 5197 0 R 5198 0 R 5199 0 R 5200 0 R 5201 0 R 5202 0 R 5203 0 R 5204 0 R 5205 0 R 5206 0 R 5207 0 R 5208 0 R 5209 0 R 5210 0 R 5211 0 R 5212 0 R 5213 0 R 5214 0 R 5215 0 R 5216 0 R 5217 0 R 5218 0 R 5219 0 R 5220 0 R 5221 0 R 5222 0 R 5223 0 R 5224 0 R 5225 0 R ] >> endobj 5143 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.992 571.671 161.947 581.858] /A << /S /GoTo /D (page.21) >> >> endobj 5144 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.766 559.716 176.722 569.903] /A << /S /GoTo /D (page.11) >> >> endobj 5145 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.171 547.761 186.126 557.947] /A << /S /GoTo /D (page.12) >> >> endobj 5146 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [138.715 535.088 150.67 545.992] /A << /S /GoTo /D (page.31) >> >> endobj 5147 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.534 523.133 217.489 534.037] /A << /S /GoTo /D (page.31) >> >> endobj 5148 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.125 511.178 217.08 522.082] /A << /S /GoTo /D (page.32) >> >> endobj 5149 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.461 499.223 215.417 510.127] /A << /S /GoTo /D (page.32) >> >> endobj 5150 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.802 487.268 188.757 498.172] /A << /S /GoTo /D (page.32) >> >> endobj 5151 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.036 475.312 176.991 486.216] /A << /S /GoTo /D (page.33) >> >> endobj 5152 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [154.217 463.357 166.172 474.261] /A << /S /GoTo /D (page.33) >> >> endobj 5153 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.609 451.402 149.564 462.306] /A << /S /GoTo /D (page.34) >> >> endobj 5154 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [175.696 439.447 187.651 450.351] /A << /S /GoTo /D (page.34) >> >> endobj 5155 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [163.93 427.492 175.885 438.396] /A << /S /GoTo /D (page.34) >> >> endobj 5156 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.084 415.537 220.039 426.441] /A << /S /GoTo /D (page.43) >> >> endobj 5157 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.895 403.581 155.85 414.485] /A << /S /GoTo /D (page.41) >> >> endobj 5158 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.284 391.626 167.257 402.53] /A << /S /GoTo /D (page.6) >> >> endobj 5159 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [96.105 380.388 103.078 390.575] /A << /S /GoTo /D (page.8) >> >> endobj 5160 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.013 367.716 158.969 378.62] /A << /S /GoTo /D (page.10) >> >> endobj 5161 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.138 355.761 155.093 366.665] /A << /S /GoTo /D (page.10) >> >> endobj 5162 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.505 343.806 169.479 354.71] /A << /S /GoTo /D (page.9) >> >> endobj 5163 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [180.666 331.85 192.622 342.754] /A << /S /GoTo /D (page.12) >> >> endobj 5164 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [175.775 319.895 187.73 330.799] /A << /S /GoTo /D (page.13) >> >> endobj 5165 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [153.648 307.94 165.603 318.844] /A << /S /GoTo /D (page.13) >> >> endobj 5166 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.789 295.985 194.744 306.889] /A << /S /GoTo /D (page.13) >> >> endobj 5167 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.519 284.03 258.474 294.934] /A << /S /GoTo /D (page.14) >> >> endobj 5168 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.469 272.075 242.424 282.979] /A << /S /GoTo /D (page.14) >> >> endobj 5169 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.059 260.119 248.014 271.023] /A << /S /GoTo /D (page.15) >> >> endobj 5170 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [95.547 238.366 107.502 247.113] /A << /S /GoTo /D (page.14) >> >> endobj 5171 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [95.547 214.356 107.502 223.203] /A << /S /GoTo /D (page.15) >> >> endobj 5172 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.608 200.344 149.564 211.248] /A << /S /GoTo /D (page.15) >> >> endobj 5173 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.7 189.106 93.674 199.292] /A << /S /GoTo /D (page.7) >> >> endobj 5174 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.612 176.433 175.586 187.337] /A << /S /GoTo /D (page.7) >> >> endobj 5175 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.914 165.195 121.888 175.382] /A << /S /GoTo /D (page.7) >> >> endobj 5176 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.525 152.523 169.499 163.427] /A << /S /GoTo /D (page.8) >> >> endobj 5177 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [131.831 141.285 138.805 151.472] /A << /S /GoTo /D (page.6) >> >> endobj 5178 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.204 129.33 135.178 139.517] /A << /S /GoTo /D (page.6) >> >> endobj 5179 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.339 117.375 181.295 127.561] /A << /S /GoTo /D (page.47) >> >> endobj 5180 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [180.956 104.702 192.911 115.606] /A << /S /GoTo /D (page.47) >> >> endobj 5181 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [159.178 92.747 171.133 103.651] /A << /S /GoTo /D (page.48) >> >> endobj 5182 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [207.875 80.792 219.83 91.696] /A << /S /GoTo /D (page.48) >> >> endobj 5183 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [503.122 582.909 515.077 593.813] /A << /S /GoTo /D (page.48) >> >> endobj 5184 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [458.251 570.954 470.206 581.858] /A << /S /GoTo /D (page.49) >> >> endobj 5185 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [481.702 558.999 493.658 569.903] /A << /S /GoTo /D (page.49) >> >> endobj 5186 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [477.817 547.043 489.772 557.947] /A << /S /GoTo /D (page.49) >> >> endobj 5187 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [463.232 535.088 475.187 545.992] /A << /S /GoTo /D (page.50) >> >> endobj 5188 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [486.684 523.133 498.639 534.037] /A << /S /GoTo /D (page.50) >> >> endobj 5189 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [482.798 511.178 494.754 522.082] /A << /S /GoTo /D (page.50) >> >> endobj 5190 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [484.861 499.223 496.816 510.127] /A << /S /GoTo /D (page.51) >> >> endobj 5191 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [471.431 487.268 483.386 498.172] /A << /S /GoTo /D (page.51) >> >> endobj 5192 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [471.023 475.312 482.978 486.216] /A << /S /GoTo /D (page.51) >> >> endobj 5193 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [479.87 463.357 491.825 474.261] /A << /S /GoTo /D (page.52) >> >> endobj 5194 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [488.178 451.402 500.133 462.306] /A << /S /GoTo /D (page.52) >> >> endobj 5195 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [481.334 439.447 493.289 450.351] /A << /S /GoTo /D (page.52) >> >> endobj 5196 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [489.842 427.492 501.797 438.396] /A << /S /GoTo /D (page.53) >> >> endobj 5197 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [444.562 416.254 456.517 426.441] /A << /S /GoTo /D (page.53) >> >> endobj 5198 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [453.06 404.299 465.015 414.485] /A << /S /GoTo /D (page.54) >> >> endobj 5199 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [464.677 391.626 476.632 402.53] /A << /S /GoTo /D (page.54) >> >> endobj 5200 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [434.5 379.671 446.455 390.575] /A << /S /GoTo /D (page.54) >> >> endobj 5201 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [441.155 367.716 453.11 378.62] /A << /S /GoTo /D (page.55) >> >> endobj 5202 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [475.436 355.761 487.391 366.665] /A << /S /GoTo /D (page.55) >> >> endobj 5203 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [446.923 343.806 458.879 354.71] /A << /S /GoTo /D (page.55) >> >> endobj 5204 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [452.193 331.85 464.148 342.754] /A << /S /GoTo /D (page.55) >> >> endobj 5205 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [462.066 319.895 474.021 330.799] /A << /S /GoTo /D (page.56) >> >> endobj 5206 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [490.39 307.94 502.345 318.844] /A << /S /GoTo /D (page.56) >> >> endobj 5207 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [494.265 295.985 506.22 306.889] /A << /S /GoTo /D (page.56) >> >> endobj 5208 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.367 284.03 415.322 294.934] /A << /S /GoTo /D (page.19) >> >> endobj 5209 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.367 272.792 415.322 282.979] /A << /S /GoTo /D (page.19) >> >> endobj 5210 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.925 260.837 415.88 271.023] /A << /S /GoTo /D (page.19) >> >> endobj 5211 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [508.382 248.164 520.337 259.068] /A << /S /GoTo /D (page.63) >> >> endobj 5212 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [492.043 236.209 503.999 247.113] /A << /S /GoTo /D (page.64) >> >> endobj 5213 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [488.019 224.254 499.974 235.158] /A << /S /GoTo /D (page.64) >> >> endobj 5214 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [487.61 212.299 499.566 223.203] /A << /S /GoTo /D (page.65) >> >> endobj 5215 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [502.305 200.344 514.26 211.248] /A << /S /GoTo /D (page.65) >> >> endobj 5216 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [490.928 188.388 502.883 199.292] /A << /S /GoTo /D (page.65) >> >> endobj 5217 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [483.735 176.433 495.69 187.337] /A << /S /GoTo /D (page.67) >> >> endobj 5218 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [483.187 164.478 495.142 175.382] /A << /S /GoTo /D (page.67) >> >> endobj 5219 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [519.56 152.523 531.516 163.427] /A << /S /GoTo /D (page.67) >> >> endobj 5220 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [513.573 140.568 525.528 151.472] /A << /S /GoTo /D (page.68) >> >> endobj 5221 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [496.776 128.613 508.731 139.517] /A << /S /GoTo /D (page.68) >> >> endobj 5222 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [486.664 116.657 498.619 127.561] /A << /S /GoTo /D (page.69) >> >> endobj 5223 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [434.699 104.702 446.655 115.606] /A << /S /GoTo /D (page.69) >> >> endobj 5224 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [491.237 92.747 503.192 103.651] /A << /S /GoTo /D (page.69) >> >> endobj 5225 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [467.994 80.792 479.949 91.696] /A << /S /GoTo /D (page.70) >> >> endobj 5230 0 obj << /D [5228 0 R /XYZ -16.307 878.039 null] >> endobj 106 0 obj << /D [5228 0 R /XYZ 56.693 596.025 null] >> endobj 5227 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F81 10 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5347 0 obj << /Length 1433 /Filter /FlateDecode >> stream xڽn8+MMق%!B I_RrP&v 3$0a~r=K IM'$_in^SzzkIDq8=o~\ .v%|eY& ]<[F#lifӷ Rjr7A=Y1_]AQMAi1< uY1 "1yp5< y콬5n$Tm}KpJZ6\ݥai 2"q짢(uS[:65^sZj~jZpJ$z-DXVF,,K4vp%f4Pp?a` 415bM8u)@,K1.I.puT3é`&۽!A4@|1|ă ZQ}*Q}C@JRbX2p3-="߄AA8[ +3~34[BFS5,H>)hVܺq`Dli^ʾi++5_heUT/WS_pPvKguYc3Q"Q႔.` |<*Z;08pPO_OJ +RܰgS;]ѻ3NҦzK0rڴ?,o@zrJvɚr2C `qpA/ ͹ߍt`?(}nYO8c ?5蘁c9ɀmd.>.lN/.]HS U7RTn(fiO_t(ɠ>([NcA+S-Losߝ? lԇ^K jPW&uk(>i (U*w@d SZ4#ƔLm̦_3<l',nZ>,JѮ9ODZ@^[y(r3zιph!O_ Q{ endstream endobj 5346 0 obj << /Type /Page /Contents 5347 0 R /Resources 5345 0 R /MediaBox [0 0 595.276 841.89] /Parent 5142 0 R /Annots [ 5226 0 R 5231 0 R 5232 0 R 5233 0 R 5234 0 R 5235 0 R 5236 0 R 5237 0 R 5238 0 R 5239 0 R 5240 0 R 5241 0 R 5242 0 R 5243 0 R 5244 0 R 5245 0 R 5246 0 R 5247 0 R 5248 0 R 5249 0 R 5250 0 R 5251 0 R 5252 0 R 5253 0 R 5254 0 R 5255 0 R 5256 0 R 5257 0 R 5258 0 R 5259 0 R 5260 0 R 5261 0 R 5262 0 R 5263 0 R 5264 0 R 5265 0 R 5266 0 R 5267 0 R 5268 0 R 5269 0 R 5270 0 R 5271 0 R 5272 0 R 5273 0 R 5274 0 R 5275 0 R 5276 0 R 5277 0 R 5278 0 R 5279 0 R 5280 0 R 5281 0 R 5282 0 R 5283 0 R 5284 0 R 5285 0 R 5286 0 R 5287 0 R 5288 0 R 5289 0 R 5290 0 R 5291 0 R 5292 0 R 5293 0 R 5294 0 R 5295 0 R 5296 0 R 5297 0 R 5298 0 R 5299 0 R 5300 0 R 5301 0 R 5302 0 R 5303 0 R 5304 0 R 5305 0 R 5306 0 R 5307 0 R 5308 0 R 5309 0 R 5310 0 R 5311 0 R 5312 0 R 5313 0 R 5314 0 R 5315 0 R 5316 0 R 5317 0 R 5318 0 R 5319 0 R 5320 0 R 5321 0 R 5322 0 R 5323 0 R 5324 0 R 5325 0 R 5326 0 R 5327 0 R 5328 0 R 5329 0 R 5330 0 R 5331 0 R 5332 0 R 5333 0 R 5334 0 R 5335 0 R 5336 0 R 5337 0 R 5338 0 R 5339 0 R 5340 0 R 5341 0 R 5342 0 R 5343 0 R ] >> endobj 5226 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [219.939 748.787 231.894 759.691] /A << /S /GoTo /D (page.70) >> >> endobj 5231 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [223.814 736.832 235.77 747.736] /A << /S /GoTo /D (page.70) >> >> endobj 5232 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.703 724.877 225.658 735.781] /A << /S /GoTo /D (page.70) >> >> endobj 5233 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.938 712.922 178.894 723.825] /A << /S /GoTo /D (page.73) >> >> endobj 5234 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.159 700.966 176.114 711.87] /A << /S /GoTo /D (page.74) >> >> endobj 5235 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.947 689.011 197.902 699.915] /A << /S /GoTo /D (page.89) >> >> endobj 5236 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [124.678 677.056 136.633 687.96] /A << /S /GoTo /D (page.74) >> >> endobj 5237 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.424 665.101 161.379 676.005] /A << /S /GoTo /D (page.74) >> >> endobj 5238 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.092 653.146 170.047 664.05] /A << /S /GoTo /D (page.75) >> >> endobj 5239 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.281 641.191 186.236 652.094] /A << /S /GoTo /D (page.75) >> >> endobj 5240 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.86 629.235 207.815 640.139] /A << /S /GoTo /D (page.75) >> >> endobj 5241 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.343 617.28 188.298 628.184] /A << /S /GoTo /D (page.76) >> >> endobj 5242 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [234.435 605.325 246.39 616.229] /A << /S /GoTo /D (page.76) >> >> endobj 5243 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.754 593.37 182.709 604.274] /A << /S /GoTo /D (page.77) >> >> endobj 5244 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.333 581.415 204.288 592.319] /A << /S /GoTo /D (page.77) >> >> endobj 5245 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.817 569.459 184.772 580.363] /A << /S /GoTo /D (page.78) >> >> endobj 5246 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.078 557.504 179.033 568.408] /A << /S /GoTo /D (page.78) >> >> endobj 5247 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [188.657 545.549 200.612 556.453] /A << /S /GoTo /D (page.78) >> >> endobj 5248 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.14 533.594 181.095 544.498] /A << /S /GoTo /D (page.79) >> >> endobj 5249 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.77 521.639 159.726 532.543] /A << /S /GoTo /D (page.79) >> >> endobj 5250 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [121.758 509.684 133.714 520.588] /A << /S /GoTo /D (page.80) >> >> endobj 5251 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.853 497.728 198.809 508.632] /A << /S /GoTo /D (page.80) >> >> endobj 5252 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.962 485.773 225.917 496.677] /A << /S /GoTo /D (page.80) >> >> endobj 5253 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.996 473.818 189.952 484.722] /A << /S /GoTo /D (page.82) >> >> endobj 5254 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.175 461.863 185.13 472.767] /A << /S /GoTo /D (page.83) >> >> endobj 5255 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.648 449.908 181.603 460.812] /A << /S /GoTo /D (page.83) >> >> endobj 5256 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.972 437.953 177.927 448.857] /A << /S /GoTo /D (page.84) >> >> endobj 5257 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [175.944 425.997 187.9 436.901] /A << /S /GoTo /D (page.84) >> >> endobj 5258 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.82 414.042 151.775 424.946] /A << /S /GoTo /D (page.85) >> >> endobj 5259 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.418 402.087 184.373 412.991] /A << /S /GoTo /D (page.85) >> >> endobj 5260 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.741 390.132 180.697 401.036] /A << /S /GoTo /D (page.85) >> >> endobj 5261 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.725 378.177 251.68 389.081] /A << /S /GoTo /D (page.81) >> >> endobj 5262 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.8 366.222 239.755 377.126] /A << /S /GoTo /D (page.81) >> >> endobj 5263 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.224 354.266 241.18 365.17] /A << /S /GoTo /D (page.81) >> >> endobj 5264 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.299 342.311 229.254 353.215] /A << /S /GoTo /D (page.82) >> >> endobj 5265 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [223.366 330.356 235.321 341.26] /A << /S /GoTo /D (page.36) >> >> endobj 5266 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.81 318.401 151.765 329.305] /A << /S /GoTo /D (page.37) >> >> endobj 5267 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.42 306.446 194.375 317.35] /A << /S /GoTo /D (page.37) >> >> endobj 5268 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.01 294.491 151.965 305.395] /A << /S /GoTo /D (page.37) >> >> endobj 5269 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.619 282.535 194.574 293.439] /A << /S /GoTo /D (page.38) >> >> endobj 5270 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.175 270.58 169.13 281.484] /A << /S /GoTo /D (page.38) >> >> endobj 5271 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.003 258.625 182.958 269.529] /A << /S /GoTo /D (page.91) >> >> endobj 5272 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [154.187 246.67 166.142 257.574] /A << /S /GoTo /D (page.94) >> >> endobj 5273 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [181.613 234.715 193.568 245.619] /A << /S /GoTo /D (page.94) >> >> endobj 5274 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.794 222.76 174.749 233.664] /A << /S /GoTo /D (page.94) >> >> endobj 5275 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [151.427 210.804 163.382 221.708] /A << /S /GoTo /D (page.95) >> >> endobj 5276 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.661 198.849 191.616 209.753] /A << /S /GoTo /D (page.95) >> >> endobj 5277 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.813 186.894 177.768 197.798] /A << /S /GoTo /D (page.96) >> >> endobj 5278 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [159.726 174.939 171.681 185.843] /A << /S /GoTo /D (page.96) >> >> endobj 5279 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [194.595 162.984 206.55 173.888] /A << /S /GoTo /D (page.96) >> >> endobj 5280 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.653 151.029 217.608 161.933] /A << /S /GoTo /D (page.97) >> >> endobj 5281 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.959 139.073 191.915 149.977] /A << /S /GoTo /D (page.97) >> >> endobj 5282 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [161.14 127.118 173.095 138.022] /A << /S /GoTo /D (page.98) >> >> endobj 5283 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.439 115.163 189.394 126.067] /A << /S /GoTo /D (page.98) >> >> endobj 5284 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.689 103.208 186.644 114.112] /A << /S /GoTo /D (page.98) >> >> endobj 5285 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.9 91.253 191.855 102.157] /A << /S /GoTo /D (page.99) >> >> endobj 5286 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.439 79.298 197.394 90.202] /A << /S /GoTo /D (page.99) >> >> endobj 5287 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.158 748.787 415.113 759.691] /A << /S /GoTo /D (page.99) >> >> endobj 5288 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [469.608 736.832 486.545 747.736] /A << /S /GoTo /D (page.100) >> >> endobj 5289 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [495.611 724.877 512.547 735.781] /A << /S /GoTo /D (page.100) >> >> endobj 5290 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [422.873 712.922 439.81 723.825] /A << /S /GoTo /D (page.100) >> >> endobj 5291 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [431.172 700.966 448.109 711.87] /A << /S /GoTo /D (page.101) >> >> endobj 5292 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [458.29 689.011 475.227 699.915] /A << /S /GoTo /D (page.101) >> >> endobj 5293 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [491.515 677.056 503.47 687.96] /A << /S /GoTo /D (page.23) >> >> endobj 5294 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [483.754 665.101 495.71 676.005] /A << /S /GoTo /D (page.24) >> >> endobj 5295 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [402.869 653.146 414.824 664.05] /A << /S /GoTo /D (page.25) >> >> endobj 5296 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [478.215 641.191 490.171 652.094] /A << /S /GoTo /D (page.24) >> >> endobj 5297 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.095 629.235 442.032 640.139] /A << /S /GoTo /D (page.106) >> >> endobj 5298 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [409.046 617.28 425.982 628.184] /A << /S /GoTo /D (page.107) >> >> endobj 5299 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [450.56 605.325 467.496 616.229] /A << /S /GoTo /D (page.107) >> >> endobj 5300 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [459.964 593.37 476.901 604.274] /A << /S /GoTo /D (page.107) >> >> endobj 5301 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [463.84 581.415 480.776 592.319] /A << /S /GoTo /D (page.108) >> >> endobj 5302 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [467.715 569.459 484.652 580.363] /A << /S /GoTo /D (page.108) >> >> endobj 5303 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [477.12 557.504 494.056 568.408] /A << /S /GoTo /D (page.109) >> >> endobj 5304 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [464.388 545.549 481.324 556.453] /A << /S /GoTo /D (page.109) >> >> endobj 5305 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [477.11 533.594 494.046 544.498] /A << /S /GoTo /D (page.109) >> >> endobj 5306 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [480.995 521.639 497.932 532.543] /A << /S /GoTo /D (page.110) >> >> endobj 5307 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [480.985 509.684 497.922 520.588] /A << /S /GoTo /D (page.110) >> >> endobj 5308 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.676 497.728 404.613 508.632] /A << /S /GoTo /D (page.111) >> >> endobj 5309 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [487.082 485.773 504.018 496.677] /A << /S /GoTo /D (page.111) >> >> endobj 5310 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [440.288 473.818 457.225 484.722] /A << /S /GoTo /D (page.111) >> >> endobj 5311 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [424.239 461.863 441.175 472.767] /A << /S /GoTo /D (page.112) >> >> endobj 5312 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [498.151 449.908 515.087 460.812] /A << /S /GoTo /D (page.115) >> >> endobj 5313 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.987 438.67 438.924 448.857] /A << /S /GoTo /D (page.119) >> >> endobj 5314 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.074 425.997 421.011 436.901] /A << /S /GoTo /D (page.121) >> >> endobj 5315 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [502.026 414.042 518.963 424.946] /A << /S /GoTo /D (page.127) >> >> endobj 5316 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [511.082 402.087 528.019 412.991] /A << /S /GoTo /D (page.127) >> >> endobj 5317 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [406.496 390.132 423.432 401.036] /A << /S /GoTo /D (page.127) >> >> endobj 5318 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.667 378.177 473.603 389.081] /A << /S /GoTo /D (page.128) >> >> endobj 5319 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [441.165 366.222 458.101 377.126] /A << /S /GoTo /D (page.127) >> >> endobj 5320 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [459.436 354.266 476.373 365.17] /A << /S /GoTo /D (page.128) >> >> endobj 5321 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [441.165 342.311 458.101 353.215] /A << /S /GoTo /D (page.128) >> >> endobj 5322 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [431.352 331.073 448.289 341.26] /A << /S /GoTo /D (page.170) >> >> endobj 5323 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [423.442 318.401 440.378 329.305] /A << /S /GoTo /D (page.167) >> >> endobj 5324 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.576 306.446 436.513 317.35] /A << /S /GoTo /D (page.168) >> >> endobj 5325 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [467.735 294.491 484.671 305.395] /A << /S /GoTo /D (page.168) >> >> endobj 5326 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [399.651 282.535 416.588 293.439] /A << /S /GoTo /D (page.168) >> >> endobj 5327 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [548.522 271.298 565.459 281.484] /A << /S /GoTo /D (page.170) >> >> endobj 5328 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [488.248 258.625 505.185 269.529] /A << /S /GoTo /D (page.175) >> >> endobj 5329 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [473.862 246.67 490.799 257.574] /A << /S /GoTo /D (page.176) >> >> endobj 5330 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [462.346 234.715 479.282 245.619] /A << /S /GoTo /D (page.175) >> >> endobj 5331 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [399.85 222.76 416.787 233.664] /A << /S /GoTo /D (page.169) >> >> endobj 5332 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [430.644 210.804 447.581 221.708] /A << /S /GoTo /D (page.169) >> >> endobj 5333 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [430.844 198.849 447.78 209.753] /A << /S /GoTo /D (page.170) >> >> endobj 5334 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [385.465 186.894 402.401 197.798] /A << /S /GoTo /D (page.121) >> >> endobj 5335 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [392.448 174.939 409.385 185.843] /A << /S /GoTo /D (page.122) >> >> endobj 5336 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.271 162.984 403.208 173.888] /A << /S /GoTo /D (page.122) >> >> endobj 5337 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.371 151.029 403.307 161.933] /A << /S /GoTo /D (page.122) >> >> endobj 5338 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [474.36 139.073 491.297 149.977] /A << /S /GoTo /D (page.123) >> >> endobj 5339 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [431.382 127.836 448.318 138.022] /A << /S /GoTo /D (page.132) >> >> endobj 5340 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.566 115.88 431.521 126.067] /A << /S /GoTo /D (page.16) >> >> endobj 5341 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [414.585 103.925 426.54 114.112] /A << /S /GoTo /D (page.16) >> >> endobj 5342 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [418.759 91.253 430.714 102.157] /A << /S /GoTo /D (page.18) >> >> endobj 5343 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [410.161 79.298 422.117 90.202] /A << /S /GoTo /D (page.17) >> >> endobj 5348 0 obj << /D [5346 0 R /XYZ -11.232 878.039 null] >> endobj 5345 0 obj << /Font << /F79 6 0 R /F80 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5465 0 obj << /Length 1364 /Filter /FlateDecode >> stream xڽ[s8)x43ߒiiݙlAv J"Oq&Z>_~st\d1::S+YF(Zq*g- z|<>r m wN %\A q==ptV"Tb؟$A,D7D/ d|$?#O|˵gSOWoU>X$Hn =wO#YW/#W^MҠe3i"GP]>tvBhkӲ'lx nm/CDV:iFXDnjV@#pM50< \JVWPfn[H+^WvLkUUP;Ks @~ ^ߕhr(njd6]ZvhE$%2)&VfGoj EAo'7_d lݖ ś7/4CXS?/4! ( h;ݓE -9?@/KY>/OqM{9&Kq ;3FtӒ&FQd}n +X-!ͪ5&t;-XzPB4LU[% /?٧مǗWJpeADpC0'Ü~\ר/j]}lY}3f6EIbjw= @P .8SϟWGˏIN(J'Arv1)sћPAM Ju.)J{9M9T[. <#,'U%*oF@~Sb80U#2/L}S9%4TzEK=+`` ͈^A#F;SQT:0Rغfuk#bJR_jT|h*ΤSUshqr)w DN~YlA;k[d'2քqdnʧ0x2@?Ƒij<ߖ 654mH WLojg`rem&E=,!Ѵ8z+"z~ͨs_,uW#\nEu3&jV.dTz!U! kH5mz9jT؄ TOr?䶉d'V?a:;6F͐DBhB:T? o~S;~eWZO] I]  endstream endobj 5464 0 obj << /Type /Page /Contents 5465 0 R /Resources 5463 0 R /MediaBox [0 0 595.276 841.89] /Parent 5142 0 R /Annots [ 5344 0 R 5349 0 R 5350 0 R 5351 0 R 5352 0 R 5353 0 R 5354 0 R 5355 0 R 5356 0 R 5357 0 R 5358 0 R 5359 0 R 5360 0 R 5361 0 R 5362 0 R 5363 0 R 5364 0 R 5365 0 R 5366 0 R 5367 0 R 5368 0 R 5369 0 R 5370 0 R 5371 0 R 5372 0 R 5373 0 R 5374 0 R 5375 0 R 5376 0 R 5377 0 R 5378 0 R 5379 0 R 5380 0 R 5381 0 R 5382 0 R 5383 0 R 5384 0 R 5385 0 R 5386 0 R 5387 0 R 5388 0 R 5389 0 R 5390 0 R 5391 0 R 5392 0 R 5393 0 R 5394 0 R 5395 0 R 5396 0 R 5397 0 R 5398 0 R 5399 0 R 5400 0 R 5401 0 R 5402 0 R 5403 0 R 5404 0 R 5405 0 R 5406 0 R 5407 0 R 5408 0 R 5409 0 R 5410 0 R 5411 0 R 5412 0 R 5413 0 R 5414 0 R 5415 0 R 5416 0 R 5417 0 R 5418 0 R 5419 0 R 5420 0 R 5421 0 R 5422 0 R 5423 0 R 5424 0 R 5425 0 R 5426 0 R 5427 0 R 5428 0 R 5429 0 R 5430 0 R 5431 0 R 5432 0 R 5433 0 R 5434 0 R 5435 0 R 5436 0 R 5437 0 R 5438 0 R 5439 0 R 5440 0 R 5441 0 R 5442 0 R 5443 0 R 5444 0 R 5445 0 R 5446 0 R 5447 0 R 5448 0 R 5449 0 R 5450 0 R 5451 0 R 5452 0 R 5453 0 R 5454 0 R 5455 0 R 5456 0 R 5457 0 R 5458 0 R 5459 0 R 5460 0 R 5461 0 R ] >> endobj 5344 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [141.624 749.504 153.579 759.691] /A << /S /GoTo /D (page.17) >> >> endobj 5349 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [142.59 736.832 154.545 747.736] /A << /S /GoTo /D (page.17) >> >> endobj 5350 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.493 724.877 148.448 735.781] /A << /S /GoTo /D (page.18) >> >> endobj 5351 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.667 712.922 152.622 723.825] /A << /S /GoTo /D (page.18) >> >> endobj 5352 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [184.951 700.966 201.888 711.87] /A << /S /GoTo /D (page.135) >> >> endobj 5353 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [188.826 689.011 205.763 699.915] /A << /S /GoTo /D (page.135) >> >> endobj 5354 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.171 677.056 199.108 687.96] /A << /S /GoTo /D (page.136) >> >> endobj 5355 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.047 665.101 202.983 676.005] /A << /S /GoTo /D (page.136) >> >> endobj 5356 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.566 653.146 163.502 664.05] /A << /S /GoTo /D (page.135) >> >> endobj 5357 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.132 641.191 207.068 652.094] /A << /S /GoTo /D (page.136) >> >> endobj 5358 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.312 629.235 188.249 640.139] /A << /S /GoTo /D (page.137) >> >> endobj 5359 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.414 617.28 222.35 628.184] /A << /S /GoTo /D (page.137) >> >> endobj 5360 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.104 605.325 193.041 616.229] /A << /S /GoTo /D (page.138) >> >> endobj 5361 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.98 593.37 196.916 604.274] /A << /S /GoTo /D (page.138) >> >> endobj 5362 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.281 581.415 183.218 592.319] /A << /S /GoTo /D (page.138) >> >> endobj 5363 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.86 569.459 204.797 580.363] /A << /S /GoTo /D (page.139) >> >> endobj 5364 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [188.478 557.504 205.414 568.408] /A << /S /GoTo /D (page.139) >> >> endobj 5365 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.659 545.549 186.595 556.453] /A << /S /GoTo /D (page.140) >> >> endobj 5366 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.646 533.594 160.583 544.498] /A << /S /GoTo /D (page.140) >> >> endobj 5367 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.866 521.639 221.803 532.543] /A << /S /GoTo /D (page.140) >> >> endobj 5368 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.742 509.684 225.678 520.588] /A << /S /GoTo /D (page.141) >> >> endobj 5369 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [231.974 497.728 248.911 508.632] /A << /S /GoTo /D (page.141) >> >> endobj 5370 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.85 485.773 252.786 496.677] /A << /S /GoTo /D (page.141) >> >> endobj 5371 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.009 473.818 212.946 484.722] /A << /S /GoTo /D (page.146) >> >> endobj 5372 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [199.884 461.863 216.821 472.767] /A << /S /GoTo /D (page.147) >> >> endobj 5373 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.175 449.908 182.112 460.812] /A << /S /GoTo /D (page.147) >> >> endobj 5374 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.945 437.953 184.881 448.857] /A << /S /GoTo /D (page.147) >> >> endobj 5375 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [161.708 425.997 178.645 436.901] /A << /S /GoTo /D (page.148) >> >> endobj 5376 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [257.737 414.042 274.674 424.946] /A << /S /GoTo /D (page.142) >> >> endobj 5377 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.613 402.087 278.549 412.991] /A << /S /GoTo /D (page.142) >> >> endobj 5378 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.812 390.132 262.749 401.036] /A << /S /GoTo /D (page.143) >> >> endobj 5379 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [249.688 378.177 266.624 389.081] /A << /S /GoTo /D (page.143) >> >> endobj 5380 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [247.237 366.222 264.174 377.126] /A << /S /GoTo /D (page.143) >> >> endobj 5381 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [251.112 354.266 268.049 365.17] /A << /S /GoTo /D (page.144) >> >> endobj 5382 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.312 342.311 252.248 353.215] /A << /S /GoTo /D (page.144) >> >> endobj 5383 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.187 330.356 256.124 341.26] /A << /S /GoTo /D (page.146) >> >> endobj 5384 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.873 319.118 174.81 329.305] /A << /S /GoTo /D (page.151) >> >> endobj 5385 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.001 306.446 193.938 317.35] /A << /S /GoTo /D (page.151) >> >> endobj 5386 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.665 295.208 131.602 305.395] /A << /S /GoTo /D (page.151) >> >> endobj 5387 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [247.876 283.253 264.812 293.439] /A << /S /GoTo /D (page.155) >> >> endobj 5388 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [133.634 271.298 150.571 281.484] /A << /S /GoTo /D (page.155) >> >> endobj 5389 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.272 259.342 175.208 269.529] /A << /S /GoTo /D (page.158) >> >> endobj 5390 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.972 246.67 214.909 257.574] /A << /S /GoTo /D (page.158) >> >> endobj 5391 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [134.032 235.432 150.969 245.619] /A << /S /GoTo /D (page.159) >> >> endobj 5392 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.258 222.76 237.195 233.664] /A << /S /GoTo /D (page.159) >> >> endobj 5393 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.465 211.522 190.401 221.708] /A << /S /GoTo /D (page.159) >> >> endobj 5394 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [130.406 199.567 147.342 209.753] /A << /S /GoTo /D (page.163) >> >> endobj 5395 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.371 186.894 183.307 197.798] /A << /S /GoTo /D (page.162) >> >> endobj 5396 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.325 175.656 222.261 185.843] /A << /S /GoTo /D (page.164) >> >> endobj 5397 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [111.796 163.701 128.732 173.888] /A << /S /GoTo /D (page.163) >> >> endobj 5398 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [134.819 151.746 151.756 161.933] /A << /S /GoTo /D (page.163) >> >> endobj 5399 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [117.135 139.073 129.091 149.977] /A << /S /GoTo /D (page.20) >> >> endobj 5400 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.637 127.118 144.592 138.022] /A << /S /GoTo /D (page.20) >> >> endobj 5401 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.35 115.163 162.305 126.067] /A << /S /GoTo /D (page.20) >> >> endobj 5402 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.444 103.925 137.399 114.112] /A << /S /GoTo /D (page.21) >> >> endobj 5403 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [180.129 91.97 192.084 102.157] /A << /S /GoTo /D (page.22) >> >> endobj 5404 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.276 80.015 182.231 90.202] /A << /S /GoTo /D (page.22) >> >> endobj 5405 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [471.899 749.504 483.854 759.691] /A << /S /GoTo /D (page.22) >> >> endobj 5406 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [467.725 737.549 479.68 747.736] /A << /S /GoTo /D (page.22) >> >> endobj 5407 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.945 724.877 399.9 735.781] /A << /S /GoTo /D (page.35) >> >> endobj 5408 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [423.89 712.922 435.845 723.825] /A << /S /GoTo /D (page.35) >> >> endobj 5409 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.097 701.684 402.052 711.87] /A << /S /GoTo /D (page.41) >> >> endobj 5410 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.159 689.728 444.114 699.915] /A << /S /GoTo /D (page.42) >> >> endobj 5411 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [426.619 677.773 438.574 687.96] /A << /S /GoTo /D (page.42) >> >> endobj 5412 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [414.445 665.818 426.4 676.005] /A << /S /GoTo /D (page.42) >> >> endobj 5413 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [411.686 653.146 423.641 664.05] /A << /S /GoTo /D (page.42) >> >> endobj 5414 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [448.208 641.908 460.163 652.094] /A << /S /GoTo /D (page.44) >> >> endobj 5415 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [503.191 629.953 515.146 640.139] /A << /S /GoTo /D (page.44) >> >> endobj 5416 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [484.731 617.997 496.686 628.184] /A << /S /GoTo /D (page.44) >> >> endobj 5417 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [487.49 605.325 499.446 616.229] /A << /S /GoTo /D (page.44) >> >> endobj 5418 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [489.164 593.37 501.119 604.274] /A << /S /GoTo /D (page.45) >> >> endobj 5419 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [377.504 582.132 389.459 592.319] /A << /S /GoTo /D (page.56) >> >> endobj 5420 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [437.817 569.459 449.772 580.363] /A << /S /GoTo /D (page.62) >> >> endobj 5421 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [448.587 557.504 460.542 568.408] /A << /S /GoTo /D (page.62) >> >> endobj 5422 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [434.849 546.266 446.804 556.453] /A << /S /GoTo /D (page.58) >> >> endobj 5423 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [451.805 534.311 463.76 544.498] /A << /S /GoTo /D (page.59) >> >> endobj 5424 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [437.269 521.639 449.224 532.543] /A << /S /GoTo /D (page.59) >> >> endobj 5425 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [388.024 510.401 399.98 520.588] /A << /S /GoTo /D (page.59) >> >> endobj 5426 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.18 497.728 433.135 508.632] /A << /S /GoTo /D (page.59) >> >> endobj 5427 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [442.968 485.773 454.923 496.677] /A << /S /GoTo /D (page.59) >> >> endobj 5428 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [439.082 473.818 451.038 484.722] /A << /S /GoTo /D (page.59) >> >> endobj 5429 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [414.027 462.58 425.982 472.767] /A << /S /GoTo /D (page.60) >> >> endobj 5430 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [426.161 449.908 438.116 460.812] /A << /S /GoTo /D (page.60) >> >> endobj 5431 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [447.949 437.953 459.904 448.857] /A << /S /GoTo /D (page.60) >> >> endobj 5432 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [444.064 425.997 456.019 436.901] /A << /S /GoTo /D (page.60) >> >> endobj 5433 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [411.815 414.042 423.77 424.946] /A << /S /GoTo /D (page.60) >> >> endobj 5434 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [430.634 402.087 442.589 412.991] /A << /S /GoTo /D (page.60) >> >> endobj 5435 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.278 390.132 444.233 401.036] /A << /S /GoTo /D (page.60) >> >> endobj 5436 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [428.412 378.177 440.368 389.081] /A << /S /GoTo /D (page.61) >> >> endobj 5437 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [420.114 366.222 432.069 377.126] /A << /S /GoTo /D (page.61) >> >> endobj 5438 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [399.093 354.266 411.048 365.17] /A << /S /GoTo /D (page.61) >> >> endobj 5439 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.535 343.029 410.49 353.215] /A << /S /GoTo /D (page.61) >> >> endobj 5440 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [433.742 330.356 445.698 341.26] /A << /S /GoTo /D (page.61) >> >> endobj 5441 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [405.529 319.118 417.484 329.305] /A << /S /GoTo /D (page.61) >> >> endobj 5442 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [399.093 307.163 411.048 317.35] /A << /S /GoTo /D (page.57) >> >> endobj 5443 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.429 295.208 409.384 305.395] /A << /S /GoTo /D (page.58) >> >> endobj 5444 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.338 282.535 420.293 293.439] /A << /S /GoTo /D (page.71) >> >> endobj 5445 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [444.861 270.58 456.816 281.484] /A << /S /GoTo /D (page.71) >> >> endobj 5446 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [460.91 258.625 472.866 269.529] /A << /S /GoTo /D (page.71) >> >> endobj 5447 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [439.88 246.67 451.835 257.574] /A << /S /GoTo /D (page.71) >> >> endobj 5448 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [439.88 234.715 451.835 245.619] /A << /S /GoTo /D (page.71) >> >> endobj 5449 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [429.927 222.76 441.882 233.664] /A << /S /GoTo /D (page.72) >> >> endobj 5450 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [370.72 211.522 382.675 221.708] /A << /S /GoTo /D (page.86) >> >> endobj 5451 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [436.014 198.849 447.969 209.753] /A << /S /GoTo /D (page.87) >> >> endobj 5452 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [437.668 186.894 449.623 197.798] /A << /S /GoTo /D (page.87) >> >> endobj 5453 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [440.437 174.939 452.392 185.843] /A << /S /GoTo /D (page.88) >> >> endobj 5454 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [422.077 162.984 434.032 173.888] /A << /S /GoTo /D (page.86) >> >> endobj 5455 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.395 151.029 410.351 161.933] /A << /S /GoTo /D (page.86) >> >> endobj 5456 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.744 139.791 410.699 149.977] /A << /S /GoTo /D (page.86) >> >> endobj 5457 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.097 127.836 402.052 138.022] /A << /S /GoTo /D (page.41) >> >> endobj 5458 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [428.831 115.88 440.786 126.067] /A << /S /GoTo /D (page.89) >> >> endobj 5459 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [483.814 103.925 495.769 114.112] /A << /S /GoTo /D (page.90) >> >> endobj 5460 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [465.354 91.97 477.309 102.157] /A << /S /GoTo /D (page.90) >> >> endobj 5461 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [497.792 79.298 509.747 90.202] /A << /S /GoTo /D (page.90) >> >> endobj 5466 0 obj << /D [5464 0 R /XYZ -16.307 878.039 null] >> endobj 5463 0 obj << /Font << /F79 6 0 R /F80 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5583 0 obj << /Length 1248 /Filter /FlateDecode >> stream xڵMs8 jEm1T*݄f la%$!~%N2aj;ņne|||59r/iz4,,Vw?=g(LB\Û[!׳/g [hllEA{bHp jmo^,E4JRqv7/ yuM%> endobj 5462 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.561 748.787 207.516 759.691] /A << /S /GoTo /D (page.90) >> >> endobj 5467 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.234 736.832 209.19 747.736] /A << /S /GoTo /D (page.90) >> >> endobj 5468 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.914 725.594 126.869 735.781] /A << /S /GoTo /D (page.39) >> >> endobj 5469 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.211 713.639 162.166 723.825] /A << /S /GoTo /D (page.39) >> >> endobj 5470 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.686 701.684 155.641 711.87] /A << /S /GoTo /D (page.92) >> >> endobj 5471 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [194.295 689.728 206.251 699.915] /A << /S /GoTo /D (page.92) >> >> endobj 5472 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [108.269 677.056 125.205 687.96] /A << /S /GoTo /D (page.101) >> >> endobj 5473 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.582 665.101 185.519 676.005] /A << /S /GoTo /D (page.103) >> >> endobj 5474 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.352 653.146 196.288 664.05] /A << /S /GoTo /D (page.103) >> >> endobj 5475 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.439 641.191 186.375 652.094] /A << /S /GoTo /D (page.104) >> >> endobj 5476 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.831 629.235 177.768 640.139] /A << /S /GoTo /D (page.104) >> >> endobj 5477 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.601 617.28 188.537 628.184] /A << /S /GoTo /D (page.105) >> >> endobj 5478 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [135.945 605.325 152.881 616.229] /A << /S /GoTo /D (page.102) >> >> endobj 5479 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.752 593.37 145.688 604.274] /A << /S /GoTo /D (page.102) >> >> endobj 5480 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.455 581.415 163.392 592.319] /A << /S /GoTo /D (page.102) >> >> endobj 5481 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.225 569.459 166.161 580.363] /A << /S /GoTo /D (page.102) >> >> endobj 5482 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.879 557.504 167.815 568.408] /A << /S /GoTo /D (page.102) >> >> endobj 5483 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [129.858 545.549 146.794 556.453] /A << /S /GoTo /D (page.103) >> >> endobj 5484 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [123.213 533.594 140.149 544.498] /A << /S /GoTo /D (page.103) >> >> endobj 5485 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [134.829 521.639 151.765 532.543] /A << /S /GoTo /D (page.103) >> >> endobj 5486 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [102.202 509.684 114.157 520.588] /A << /S /GoTo /D (page.25) >> >> endobj 5487 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.715 497.728 155.671 508.632] /A << /S /GoTo /D (page.25) >> >> endobj 5488 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.786 485.773 184.741 496.677] /A << /S /GoTo /D (page.25) >> >> endobj 5489 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.83 473.818 151.785 484.722] /A << /S /GoTo /D (page.25) >> >> endobj 5490 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.302 461.863 207.257 472.767] /A << /S /GoTo /D (page.26) >> >> endobj 5491 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.959 449.908 199.914 460.812] /A << /S /GoTo /D (page.26) >> >> endobj 5492 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.39 437.953 178.345 448.857] /A << /S /GoTo /D (page.26) >> >> endobj 5493 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.34 425.997 162.296 436.901] /A << /S /GoTo /D (page.26) >> >> endobj 5494 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [152.472 414.042 164.428 424.946] /A << /S /GoTo /D (page.26) >> >> endobj 5495 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.156 402.087 190.111 412.991] /A << /S /GoTo /D (page.26) >> >> endobj 5496 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.467 390.132 184.422 401.036] /A << /S /GoTo /D (page.27) >> >> endobj 5497 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [189.782 378.177 201.737 389.081] /A << /S /GoTo /D (page.27) >> >> endobj 5498 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.745 366.222 195.7 377.126] /A << /S /GoTo /D (page.27) >> >> endobj 5499 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.946 354.266 144.901 365.17] /A << /S /GoTo /D (page.27) >> >> endobj 5500 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.92 342.311 188.875 353.215] /A << /S /GoTo /D (page.27) >> >> endobj 5501 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.216 330.356 158.171 341.26] /A << /S /GoTo /D (page.27) >> >> endobj 5502 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.861 318.401 172.816 329.305] /A << /S /GoTo /D (page.28) >> >> endobj 5503 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.125 306.446 169.08 317.35] /A << /S /GoTo /D (page.28) >> >> endobj 5504 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [159.904 294.491 171.86 305.395] /A << /S /GoTo /D (page.28) >> >> endobj 5505 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [151.446 282.535 163.401 293.439] /A << /S /GoTo /D (page.28) >> >> endobj 5506 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.466 270.58 155.421 281.484] /A << /S /GoTo /D (page.28) >> >> endobj 5507 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.5 258.625 162.455 269.529] /A << /S /GoTo /D (page.28) >> >> endobj 5508 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [160.661 246.67 172.617 257.574] /A << /S /GoTo /D (page.29) >> >> endobj 5509 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.709 234.715 186.664 245.619] /A << /S /GoTo /D (page.29) >> >> endobj 5510 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [141.494 222.76 153.449 233.664] /A << /S /GoTo /D (page.29) >> >> endobj 5511 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [153.469 210.804 165.424 221.708] /A << /S /GoTo /D (page.29) >> >> endobj 5512 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [155.132 198.849 167.087 209.753] /A << /S /GoTo /D (page.29) >> >> endobj 5513 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.045 186.894 177 197.798] /A << /S /GoTo /D (page.29) >> >> endobj 5514 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.834 174.939 174.789 185.843] /A << /S /GoTo /D (page.30) >> >> endobj 5515 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.958 162.984 170.913 173.888] /A << /S /GoTo /D (page.30) >> >> endobj 5516 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.958 151.029 170.913 161.933] /A << /S /GoTo /D (page.30) >> >> endobj 5517 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [92.787 139.073 109.724 149.977] /A << /S /GoTo /D (page.112) >> >> endobj 5518 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [159.187 127.118 176.124 138.022] /A << /S /GoTo /D (page.113) >> >> endobj 5519 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.957 115.163 186.894 126.067] /A << /S /GoTo /D (page.113) >> >> endobj 5520 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.138 103.208 160.074 114.112] /A << /S /GoTo /D (page.114) >> >> endobj 5521 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [153.907 91.253 170.844 102.157] /A << /S /GoTo /D (page.114) >> >> endobj 5522 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [133.185 79.298 150.122 90.202] /A << /S /GoTo /D (page.112) >> >> endobj 5523 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [440.058 748.787 456.995 759.691] /A << /S /GoTo /D (page.112) >> >> endobj 5524 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.949 736.832 424.886 747.736] /A << /S /GoTo /D (page.112) >> >> endobj 5525 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.929 724.877 403.865 735.781] /A << /S /GoTo /D (page.113) >> >> endobj 5526 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [389.688 712.922 406.625 723.825] /A << /S /GoTo /D (page.113) >> >> endobj 5527 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [375.312 701.684 392.249 711.87] /A << /S /GoTo /D (page.116) >> >> endobj 5528 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [415.7 689.011 432.637 699.915] /A << /S /GoTo /D (page.117) >> >> endobj 5529 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [418.988 677.056 435.925 687.96] /A << /S /GoTo /D (page.117) >> >> endobj 5530 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [437.449 665.818 454.385 676.005] /A << /S /GoTo /D (page.117) >> >> endobj 5531 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.219 653.863 417.155 664.05] /A << /S /GoTo /D (page.118) >> >> endobj 5532 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [444.472 641.908 461.409 652.094] /A << /S /GoTo /D (page.118) >> >> endobj 5533 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [433.404 629.953 450.34 640.139] /A << /S /GoTo /D (page.118) >> >> endobj 5534 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.555 617.997 415.491 628.184] /A << /S /GoTo /D (page.116) >> >> endobj 5535 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.717 606.042 449.653 616.229] /A << /S /GoTo /D (page.117) >> >> endobj 5536 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [395.775 594.087 412.712 604.274] /A << /S /GoTo /D (page.119) >> >> endobj 5537 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [446.385 582.132 463.322 592.319] /A << /S /GoTo /D (page.119) >> >> endobj 5538 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [363.128 569.459 380.065 580.363] /A << /S /GoTo /D (page.123) >> >> endobj 5539 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [380.284 557.504 397.22 568.408] /A << /S /GoTo /D (page.124) >> >> endobj 5540 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [378.63 545.549 395.566 556.453] /A << /S /GoTo /D (page.124) >> >> endobj 5541 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.804 533.594 407.74 544.498] /A << /S /GoTo /D (page.124) >> >> endobj 5542 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [405.748 521.639 422.684 532.543] /A << /S /GoTo /D (page.124) >> >> endobj 5543 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [392.059 509.684 408.996 520.588] /A << /S /GoTo /D (page.124) >> >> endobj 5544 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.209 497.728 417.145 508.632] /A << /S /GoTo /D (page.124) >> >> endobj 5545 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [401.305 485.773 418.241 496.677] /A << /S /GoTo /D (page.125) >> >> endobj 5546 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [402.411 473.818 419.347 484.722] /A << /S /GoTo /D (page.125) >> >> endobj 5547 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.929 461.863 403.865 472.767] /A << /S /GoTo /D (page.125) >> >> endobj 5548 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.084 449.908 421.021 460.812] /A << /S /GoTo /D (page.125) >> >> endobj 5549 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [395.785 437.953 412.722 448.857] /A << /S /GoTo /D (page.125) >> >> endobj 5550 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [405.838 425.997 422.774 436.901] /A << /S /GoTo /D (page.125) >> >> endobj 5551 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [384.717 414.042 401.653 424.946] /A << /S /GoTo /D (page.123) >> >> endobj 5552 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.726 402.087 396.662 412.991] /A << /S /GoTo /D (page.129) >> >> endobj 5553 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.551 390.132 424.488 401.036] /A << /S /GoTo /D (page.129) >> >> endobj 5554 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [399.093 378.177 416.03 389.081] /A << /S /GoTo /D (page.129) >> >> endobj 5555 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.209 366.222 417.145 377.126] /A << /S /GoTo /D (page.129) >> >> endobj 5556 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.653 354.266 442.59 365.17] /A << /S /GoTo /D (page.130) >> >> endobj 5557 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.22 342.311 438.156 353.215] /A << /S /GoTo /D (page.130) >> >> endobj 5558 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [420.124 330.356 437.06 341.26] /A << /S /GoTo /D (page.130) >> >> endobj 5559 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.622 318.401 421.559 329.305] /A << /S /GoTo /D (page.130) >> >> endobj 5560 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.545 306.446 415.482 317.35] /A << /S /GoTo /D (page.130) >> >> endobj 5561 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.074 294.491 421.011 305.395] /A << /S /GoTo /D (page.130) >> >> endobj 5562 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [401.315 282.535 418.251 293.439] /A << /S /GoTo /D (page.131) >> >> endobj 5563 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [406.854 270.58 423.79 281.484] /A << /S /GoTo /D (page.131) >> >> endobj 5564 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [433.962 258.625 450.898 269.529] /A << /S /GoTo /D (page.131) >> >> endobj 5565 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [395.228 246.67 412.164 257.574] /A << /S /GoTo /D (page.131) >> >> endobj 5566 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [373.639 234.715 390.575 245.619] /A << /S /GoTo /D (page.170) >> >> endobj 5567 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [393.006 222.76 409.942 233.664] /A << /S /GoTo /D (page.173) >> >> endobj 5568 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.498 210.804 425.434 221.708] /A << /S /GoTo /D (page.173) >> >> endobj 5569 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [414.037 198.849 430.973 209.753] /A << /S /GoTo /D (page.173) >> >> endobj 5570 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [399.103 186.894 416.039 197.798] /A << /S /GoTo /D (page.173) >> >> endobj 5571 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [394.112 174.939 411.048 185.843] /A << /S /GoTo /D (page.178) >> >> endobj 5572 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [395.227 162.984 412.164 173.888] /A << /S /GoTo /D (page.170) >> >> endobj 5573 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [394.261 151.029 411.198 161.933] /A << /S /GoTo /D (page.171) >> >> endobj 5574 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [418.869 139.073 435.805 149.977] /A << /S /GoTo /D (page.171) >> >> endobj 5575 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.477 127.118 404.413 138.022] /A << /S /GoTo /D (page.167) >> >> endobj 5576 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.23 115.163 438.166 126.067] /A << /S /GoTo /D (page.172) >> >> endobj 5577 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [399.8 103.208 416.737 114.112] /A << /S /GoTo /D (page.174) >> >> endobj 5578 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [417.883 91.253 434.819 102.157] /A << /S /GoTo /D (page.176) >> >> endobj 5579 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [440.208 79.298 457.145 90.202] /A << /S /GoTo /D (page.176) >> >> endobj 5584 0 obj << /D [5582 0 R /XYZ -11.232 878.039 null] >> endobj 5581 0 obj << /Font << /F79 6 0 R /F80 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5642 0 obj << /Length 843 /Filter /FlateDecode >> stream xڽ[o0~iPL0`ccjNx 0i.Ap|gr}a0N32#:ƥu9=E.$64X?hKQ(;|4u8 ([>"Hť 2Gm97dWUމsFX ">F-9Xh6''l(#(a7jxS2uA6O ޥ}i,BNhF]W'{[B5sV/TV+rM"Oak 2%e?Mg4]2,#\R?La͋Miʬ5oʾ%y^5RpSlCfX޺"42\XcAv-) ZD­Rݣ9{FRI .ᛰ88ua'yQUUW?z:1Bw͂3 1UȔJ:6M]aXn*H:Z ^\ \p"ĽsthLm +n D{ %zLYx>NN89;%>OWMO]"D s]"HO8h><6VxN#GvO}V2 = 89kNbdE`r_iNn]zUxF"~7tm~Ϳ& endstream endobj 5641 0 obj << /Type /Page /Contents 5642 0 R /Resources 5640 0 R /MediaBox [0 0 595.276 841.89] /Parent 5142 0 R /Annots [ 5580 0 R 5585 0 R 5586 0 R 5587 0 R 5588 0 R 5589 0 R 5590 0 R 5591 0 R 5592 0 R 5593 0 R 5594 0 R 5595 0 R 5596 0 R 5597 0 R 5598 0 R 5599 0 R 5600 0 R 5601 0 R 5602 0 R 5603 0 R 5604 0 R 5605 0 R 5606 0 R 5607 0 R 5608 0 R 5609 0 R 5610 0 R 5611 0 R 5612 0 R 5613 0 R 5614 0 R 5615 0 R 5616 0 R 5617 0 R 5618 0 R 5619 0 R 5620 0 R 5621 0 R 5622 0 R 5623 0 R 5624 0 R 5625 0 R 5626 0 R 5627 0 R 5628 0 R 5629 0 R 5630 0 R 5631 0 R 5632 0 R 5633 0 R 5634 0 R 5635 0 R 5636 0 R 5637 0 R 5638 0 R 5639 0 R ] >> endobj 5580 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [148.836 748.787 165.773 759.691] /A << /S /GoTo /D (page.174) >> >> endobj 5585 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.385 736.832 166.321 747.736] /A << /S /GoTo /D (page.177) >> >> endobj 5586 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.973 724.877 187.91 735.781] /A << /S /GoTo /D (page.177) >> >> endobj 5587 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.617 713.639 149.554 723.825] /A << /S /GoTo /D (page.133) >> >> endobj 5588 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.227 701.684 200.164 711.87] /A << /S /GoTo /D (page.133) >> >> endobj 5589 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [118.232 689.011 135.168 699.915] /A << /S /GoTo /D (page.148) >> >> endobj 5590 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.526 677.056 200.463 687.96] /A << /S /GoTo /D (page.149) >> >> endobj 5591 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.18 665.101 202.116 676.005] /A << /S /GoTo /D (page.149) >> >> endobj 5592 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [145.907 653.146 162.844 664.05] /A << /S /GoTo /D (page.148) >> >> endobj 5593 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.192 641.191 204.129 652.094] /A << /S /GoTo /D (page.149) >> >> endobj 5594 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [92.18 629.953 109.116 640.139] /A << /S /GoTo /D (page.152) >> >> endobj 5595 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [129.808 617.997 146.745 628.184] /A << /S /GoTo /D (page.152) >> >> endobj 5596 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [116.937 606.042 133.873 616.229] /A << /S /GoTo /D (page.153) >> >> endobj 5597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [138.117 593.37 155.053 604.274] /A << /S /GoTo /D (page.153) >> >> endobj 5598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [116.528 582.132 133.465 592.319] /A << /S /GoTo /D (page.153) >> >> endobj 5599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.768 569.459 130.705 580.363] /A << /S /GoTo /D (page.153) >> >> endobj 5600 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [106.018 558.222 122.954 568.408] /A << /S /GoTo /D (page.153) >> >> endobj 5601 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [124.638 546.266 141.574 556.453] /A << /S /GoTo /D (page.154) >> >> endobj 5602 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [138.366 534.311 155.303 544.498] /A << /S /GoTo /D (page.154) >> >> endobj 5603 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [111.148 522.356 128.085 532.543] /A << /S /GoTo /D (page.156) >> >> endobj 5604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [130.515 510.401 147.452 520.588] /A << /S /GoTo /D (page.156) >> >> endobj 5605 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [138.824 497.728 155.761 508.632] /A << /S /GoTo /D (page.156) >> >> endobj 5606 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.335 485.773 166.271 496.677] /A << /S /GoTo /D (page.156) >> >> endobj 5607 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [152.104 473.818 169.041 484.722] /A << /S /GoTo /D (page.156) >> >> endobj 5608 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.852 462.58 145.788 472.767] /A << /S /GoTo /D (page.156) >> >> endobj 5609 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.44 450.625 167.377 460.812] /A << /S /GoTo /D (page.157) >> >> endobj 5610 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.737 437.953 149.674 448.857] /A << /S /GoTo /D (page.157) >> >> endobj 5611 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [134.491 426.715 151.427 436.901] /A << /S /GoTo /D (page.157) >> >> endobj 5612 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.453 414.042 153.39 424.946] /A << /S /GoTo /D (page.152) >> >> endobj 5613 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [111.547 402.804 128.483 412.991] /A << /S /GoTo /D (page.160) >> >> endobj 5614 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.767 390.849 181.703 401.036] /A << /S /GoTo /D (page.160) >> >> endobj 5615 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [175.536 378.894 192.473 389.081] /A << /S /GoTo /D (page.161) >> >> endobj 5616 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.085 366.222 190.022 377.126] /A << /S /GoTo /D (page.160) >> >> endobj 5617 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [133.136 354.266 150.072 365.17] /A << /S /GoTo /D (page.160) >> >> endobj 5618 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [138.764 343.029 155.701 353.215] /A << /S /GoTo /D (page.160) >> >> endobj 5619 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.609 331.073 106.546 341.26] /A << /S /GoTo /D (page.164) >> >> endobj 5620 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [129.997 318.401 146.934 329.305] /A << /S /GoTo /D (page.164) >> >> endobj 5621 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [163.91 307.163 180.846 317.35] /A << /S /GoTo /D (page.164) >> >> endobj 5622 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [104.005 295.208 120.941 305.395] /A << /S /GoTo /D (page.164) >> >> endobj 5623 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [109.484 282.535 126.421 293.439] /A << /S /GoTo /D (page.165) >> >> endobj 5624 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [142.181 270.58 159.118 281.484] /A << /S /GoTo /D (page.165) >> >> endobj 5625 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [106.765 258.625 123.701 269.529] /A << /S /GoTo /D (page.165) >> >> endobj 5626 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.517 246.67 157.454 257.574] /A << /S /GoTo /D (page.165) >> >> endobj 5627 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.219 234.715 149.155 245.619] /A << /S /GoTo /D (page.165) >> >> endobj 5628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [111.198 222.76 128.134 233.664] /A << /S /GoTo /D (page.165) >> >> endobj 5629 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [103.995 211.522 120.931 221.708] /A << /S /GoTo /D (page.165) >> >> endobj 5630 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.647 177.649 203.621 187.835] /A << /S /GoTo /D (page.9) >> >> endobj 5631 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.193 165.694 178.167 175.88] /A << /S /GoTo /D (page.9) >> >> endobj 5632 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.657 153.738 208.612 163.925] /A << /S /GoTo /D (page.19) >> >> endobj 5633 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [127.078 141.066 139.033 151.97] /A << /S /GoTo /D (page.10) >> >> endobj 5634 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.041 129.111 148.996 140.015] /A << /S /GoTo /D (page.11) >> >> endobj 5635 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [153.081 117.156 165.036 128.06] /A << /S /GoTo /D (page.11) >> >> endobj 5636 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [163.043 105.2 174.998 116.104] /A << /S /GoTo /D (page.11) >> >> endobj 5637 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.94 748.787 414.914 759.691] /A << /S /GoTo /D (page.8) >> >> endobj 5638 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [424.846 736.832 431.82 747.736] /A << /S /GoTo /D (page.8) >> >> endobj 5639 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.946 702.959 383.92 713.863] /A << /S /GoTo /D (page.9) >> >> endobj 5643 0 obj << /D [5641 0 R /XYZ -16.307 878.039 null] >> endobj 5640 0 obj << /Font << /F79 6 0 R /F80 7 0 R /F91 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 5644 0 obj << /S /GoTo /D (part.1) >> endobj 5646 0 obj (I Overview) endobj 5647 0 obj << /S /GoTo /D (chapter.1) >> endobj 5649 0 obj (Conventions) endobj 5650 0 obj << /S /GoTo /D (part.2) >> endobj 5652 0 obj (II API Reference) endobj 5653 0 obj << /S /GoTo /D (chapter.2) >> endobj 5655 0 obj (Core Class Reference) endobj 5656 0 obj << /S /GoTo /D (section.2.1) >> endobj 5658 0 obj (libbtcore) endobj 5659 0 obj << /S /GoTo /D (section.2.2) >> endobj 5661 0 obj (BtApplication) endobj 5662 0 obj << /S /GoTo /D (section.2.3) >> endobj 5664 0 obj (BtAudioSession) endobj 5665 0 obj << /S /GoTo /D (section.2.4) >> endobj 5667 0 obj (BtSettings) endobj 5668 0 obj << /S /GoTo /D (section.2.5) >> endobj 5670 0 obj (BtChildProxy) endobj 5671 0 obj << /S /GoTo /D (section.2.6) >> endobj 5673 0 obj (BtPersistence) endobj 5674 0 obj << /S /GoTo /D (chapter.3) >> endobj 5676 0 obj (Song Class Reference) endobj 5677 0 obj << /S /GoTo /D (section.3.1) >> endobj 5679 0 obj (BtCmdPattern) endobj 5680 0 obj << /S /GoTo /D (section.3.2) >> endobj 5682 0 obj (BtCmdPatternControlSource) endobj 5683 0 obj << /S /GoTo /D (section.3.3) >> endobj 5685 0 obj (BtMachine) endobj 5686 0 obj << /S /GoTo /D (section.3.4) >> endobj 5688 0 obj (BtParameterGroup) endobj 5689 0 obj << /S /GoTo /D (section.3.5) >> endobj 5691 0 obj (BtPattern) endobj 5692 0 obj << /S /GoTo /D (section.3.6) >> endobj 5694 0 obj (BtPatternControlSource) endobj 5695 0 obj << /S /GoTo /D (section.3.7) >> endobj 5697 0 obj (BtProcessorMachine) endobj 5698 0 obj << /S /GoTo /D (section.3.8) >> endobj 5700 0 obj (BtSequence) endobj 5701 0 obj << /S /GoTo /D (section.3.9) >> endobj 5703 0 obj (BtSetup) endobj 5704 0 obj << /S /GoTo /D (section.3.10) >> endobj 5706 0 obj (BtSinkBin) endobj 5707 0 obj << /S /GoTo /D (section.3.11) >> endobj 5709 0 obj (BtSinkMachine) endobj 5710 0 obj << /S /GoTo /D (section.3.12) >> endobj 5712 0 obj (BtSong) endobj 5713 0 obj << /S /GoTo /D (section.3.13) >> endobj 5715 0 obj (BtSongInfo) endobj 5716 0 obj << /S /GoTo /D (section.3.14) >> endobj 5718 0 obj (BtSourceMachine) endobj 5719 0 obj << /S /GoTo /D (section.3.15) >> endobj 5721 0 obj (BtValueGroup) endobj 5722 0 obj << /S /GoTo /D (section.3.16) >> endobj 5724 0 obj (BtWave) endobj 5725 0 obj << /S /GoTo /D (section.3.17) >> endobj 5727 0 obj (BtWavelevel) endobj 5728 0 obj << /S /GoTo /D (section.3.18) >> endobj 5730 0 obj (BtWavetable) endobj 5731 0 obj << /S /GoTo /D (section.3.19) >> endobj 5733 0 obj (BtWire) endobj 5734 0 obj << /S /GoTo /D (chapter.4) >> endobj 5736 0 obj (Song IO Reference) endobj 5737 0 obj << /S /GoTo /D (section.4.1) >> endobj 5739 0 obj (BtSongIO) endobj 5740 0 obj << /S /GoTo /D (section.4.2) >> endobj 5742 0 obj (BtSongIONative) endobj 5743 0 obj << /S /GoTo /D (section.4.3) >> endobj 5745 0 obj (BtSongIONativeBZT) endobj 5746 0 obj << /S /GoTo /D (section.4.4) >> endobj 5748 0 obj (BtSongIONativeXML) endobj 5749 0 obj << /S /GoTo /D (section.4.5) >> endobj 5751 0 obj (BtSongIOBuzz) endobj 5752 0 obj << /S /GoTo /D (part.3) >> endobj 5754 0 obj (III Appendix) endobj 5755 0 obj << /S /GoTo /D (chapter.5) >> endobj 5757 0 obj (Object Hierarchy) endobj 5758 0 obj << /S /GoTo /D (chapter.6) >> endobj 5760 0 obj (Annotation Glossary) endobj 5761 0 obj << /S /GoTo /D (chapter.7) >> endobj 5763 0 obj (Index) endobj 4896 0 obj [2 0 R /Fit] endobj 4526 0 obj [2 0 R /Fit] endobj 4398 0 obj [2 0 R /Fit] endobj 4281 0 obj [2 0 R /Fit] endobj 3660 0 obj [2 0 R /Fit] endobj 3548 0 obj [2 0 R /Fit] endobj 3309 0 obj [2 0 R /Fit] endobj 3094 0 obj [2 0 R /Fit] endobj 3093 0 obj [2 0 R /Fit] endobj 2755 0 obj [2 0 R /Fit] endobj 2504 0 obj [2 0 R /Fit] endobj 2343 0 obj [2 0 R /Fit] endobj 2222 0 obj [2 0 R /Fit] endobj 2202 0 obj [2 0 R /Fit] endobj 2179 0 obj [2 0 R /Fit] endobj 1988 0 obj [2 0 R /Fit] endobj 1987 0 obj [2 0 R /Fit] endobj 1876 0 obj [2 0 R /Fit] endobj 1671 0 obj [2 0 R /Fit] endobj 1529 0 obj [2 0 R /Fit] endobj 1511 0 obj [2 0 R /Fit] endobj 1507 0 obj [2 0 R /Fit] endobj 1313 0 obj [2 0 R /Fit] endobj 1292 0 obj [2 0 R /Fit] endobj 1291 0 obj [2 0 R /Fit] endobj 1114 0 obj [2 0 R /Fit] endobj 1097 0 obj [2 0 R /Fit] endobj 1008 0 obj [2 0 R /Fit] endobj 1007 0 obj [2 0 R /Fit] endobj 967 0 obj [2 0 R /Fit] endobj 796 0 obj [2 0 R /Fit] endobj 795 0 obj [2 0 R /Fit] endobj 724 0 obj [2 0 R /Fit] endobj 656 0 obj [2 0 R /Fit] endobj 629 0 obj [2 0 R /Fit] endobj 580 0 obj [2 0 R /Fit] endobj 553 0 obj [2 0 R /Fit] endobj 505 0 obj [2 0 R /Fit] endobj 504 0 obj [2 0 R /Fit] endobj 503 0 obj [2 0 R /Fit] endobj 483 0 obj [2 0 R /Fit] endobj 423 0 obj [2 0 R /Fit] endobj 422 0 obj [2 0 R /Fit] endobj 421 0 obj [2 0 R /Fit] endobj 420 0 obj [2 0 R /Fit] endobj 394 0 obj [2 0 R /Fit] endobj 393 0 obj [2 0 R /Fit] endobj 392 0 obj [2 0 R /Fit] endobj 372 0 obj [2 0 R /Fit] endobj 352 0 obj [2 0 R /Fit] endobj 351 0 obj [2 0 R /Fit] endobj 350 0 obj [2 0 R /Fit] endobj 349 0 obj [2 0 R /Fit] endobj 348 0 obj [2 0 R /Fit] endobj 347 0 obj [2 0 R /Fit] endobj 322 0 obj [2 0 R /Fit] endobj 321 0 obj [2 0 R /Fit] endobj 297 0 obj [2 0 R /Fit] endobj 289 0 obj [2 0 R /Fit] endobj 261 0 obj [2 0 R /Fit] endobj 255 0 obj [2 0 R /Fit] endobj 253 0 obj [2 0 R /Fit] endobj 250 0 obj [2 0 R /Fit] endobj 248 0 obj [2 0 R /Fit] endobj 240 0 obj [2 0 R /Fit] endobj 237 0 obj [2 0 R /Fit] endobj 229 0 obj [2 0 R /Fit] endobj 227 0 obj [2 0 R /Fit] endobj 224 0 obj [2 0 R /Fit] endobj 222 0 obj [2 0 R /Fit] endobj 142 0 obj [2 0 R /Fit] endobj 5764 0 obj [576] endobj 5765 0 obj [277.8] endobj 5766 0 obj [1000] endobj 5768 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 0 600 600 600 600 600 600 600 600 600 600 600 0 0 0 0 0 0 600 600] endobj 5769 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 5770 0 obj [333 250 278 500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500 920 611 611 667 722 611 611 722 722 333 444 667 556 833 667 722 611 722 611 500 556 722 611 833 611 556 556 389 278 389 422 500 333 500 500 444 500 444 278 500 500 278 278 444 278 722 500 500 500 500 389 389 278 500 444 667 444 444 389] endobj 5771 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 0 600 600 600 600 600 600 600 600 600 600 600 0 0 0 0 0 0 600 600] endobj 5772 0 obj [333 250 278 500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500 930 722 667 722 722 667 611 778 778 389 500 778 667 944 722 778 611 778 722 556 667 722 722 1000 722 722 667 333 278 333 581 500 333 500 556 444 556 444 333 500 556 278 333 556 278 833 556 500 556 556 444 389 333 556 500 722 500 500] endobj 5773 0 obj [667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722] endobj 5774 0 obj [611 611 167 333 611 278 333 333 0 333 584 0 611 500 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 238 278 333 474 556 556 889 722 278 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611 975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778 667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556 278 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 500] endobj 5775 0 obj [333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500] endobj 5776 0 obj [556 556 167 333 611 278 333 333 0 333 564 0 611 444 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 180 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 0 0 0 333 500 444 1000 500 500 333 1000 556 333 889 0 0 0 0 0 0 444 444 350 500 1000] endobj 5777 0 obj << /Length1 1428 /Length2 5932 /Length3 0 /Length 6897 /Filter /FlateDecode >> stream xڍwT}?RP i7FtwH66K.%U[JIARiPQ:"vh}[q(#DK$~X 76sMA@o1 /q`KoK\DܯUgHNIJ!  R(I}u{N[O"YSIr#Zӄ ^7uB Zʋ3ohk.K0QbuDAu]C@W|wo4}ǫ@߸Cq=j̧\S乑ռ|?`yik_bMgDhg!=zQ%0EV׭5oOCh}U',D?9>4n`W0~igOPƿʓ2tqeMZYI:7*N n H-5$Z|=I(d C4aj7=&XM5,"Z徰[`*{Ahr2a4Jȕt528Y1Ŏ]XbG;LoPM$ i:&P<}E|II' „w wePxxcO%[ !{˃KJ~—^|h(Iy~!'m˅b@*[O?en;ng_j:|Sa7ϟ;zwv:ҥڬ5] apb>ϦVW#Z j~ߨ:$]jR]v[T| miyoq)u'hf rIViIrbRTxxq9tI׶Wv1p*Ror\BV? PsXG\sl} T ; ]GMIs-j*zѨLd- ﵪlL^D ,-1Sfܤʝ,kӁjd$NH-y2ހ>$ ^9o]@ o42թJ-ctxCj徹x8Z7cmCvkQ#(w+D>amϻˬ܈c>P&GЏ_r_D oz-n-SP j݉)"dh!̝q=xfd Vu_ZsɯrY2`ٓx1B)q3W5},a4fl_`E3`U4tA*-_ɏB IԦFҐÎTHsfb\EKy$w/.>@X!(YG1Nf&wcy:VtdKU}j>Ҽxn"D~DE=<9w{wa2l,U6JLDZbH , '_EӖkW/A(9SYO^ӉpSd#AIz'Òx ]_Bb7Z|sR„d鸎ӊUeK阸g) 2on,cO;¸մԵbq$a9)ƭc%4}%$D{iÎ?nN bL[NIno=ʩO: 9Sd:vy%?GVNgN!c =^lh x$*'Vz*LVrRyjPq 9yv}~@hd'z]{M=) >ޘW$3WķMD޵eCvWkK]RY|V޷mic6SYiA}+ACi9|"LIb {})͟r(=״rEUR@s@_ڔGZ\dDiHܭzpvjV#p$faVee!a2Nw}v47E@[ךW;.DQ<(y6]clV z1% 5NKuf!g(@maXFV"e}O <0/i*U׷wO@t"jngZ1$sWg)Jpsˈ 7n4[k_ )}Rb|se jiH܁ꁷH\(~hݨ.eM. qC6Xʏy``T}9Wa(!Rvy]fޜ}<6=1WъGK2TPV<oCnR> Q㛰_byOOKMǸ7kbh0mf^}ؖ B>}2 s5D?jVF\҄4SM8ujjTw]U̻<_ft+Z*ZI/bbcLKh-UվlrH)LRY]fu= 8^džx_QS*kLTqh)W'oTʖ~8"sM{kfGOcM)ًꯟ}uִۃpJqnؚ_.H\V̳5~唞$F15hOcnER+b&%V\Z] cdX:%]s N7.? * MJ>q=]\JDe ^~ls&}zFWw#knIgٍȏJ!גkԨGnH^xlKΑc^.I\u{y;&?VBY(MӛNR߰={;CN*nC{- ^"w)`آS_0@M?^-FG?__<8S9/ܸu4Vbȇڣ=Y]tm9<lqݘp~.T^`oƷ]lK K鍋aiV)xؽ|qZ{-B R\ 2͋3NT{zkT i$/k̎1Oq\]knt4BtvZ]ū7+{I@^.QmM%lZ,Y7Ȥs F5- P)UNrgLܝw!?}Q_1Ŵrm*w@כ󪏗Jx;t?SmU ]ڙEߍI\o+hYQ2 %{)%ogMz-nW $uܫ{ (ti& Q}9R]q]{9OV)堇I9 9ႜ35'H4yC+#\w*-RFA_'_e[ =N݁}L ry[HQ'{W4vRDM^Ph)@w"R6lxk9Tٯ5ޖVH.s3KRL.J+(ZVxCnp8zݢF<4 rOm?OB":Y=J+x/LGRR%DXiiwnnj 0= A窦\$S,GZ+\-7=rݜ 4;™?44|%FwJғ-; ȋVж5Lm7?+2aկQO.R+{]7_eRK-qY`(%N{XmLJ,8V4\Ce/$E+\ӣ#ީ6%J' 1{R烠@Nް"Q3 ®v lt%{f=ǣ%RBM#r(1fUm+o5+<lL [E/f 40' s߫V"At3-<V^6:kp띎k:mbBh2y̑Wa/#׷oѥk~;˓eƖ1PwhjLz :c-xخ25Us9.FˢLRI$xZ B꜒f95*qÊXFKkc39exW3zeKWOx[?ېfg endstream endobj 5778 0 obj << /Type /FontDescriptor /FontName /LSUPIB+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/arrowhookright) /FontFile 5777 0 R >> endobj 5779 0 obj << /Length1 1406 /Length2 5979 /Length3 0 /Length 6938 /Filter /FlateDecode >> stream xڍxTS6ҤW{I B$t^7A)QtA4i_xZ߷~gywڜl&H'z&V" D89Mah8o;9 C"dqDcljh Px1@DBFDRDA 鿁H/@ wSsqEc} yiiIဲ vDzhW" 0)x\hOaa___!GEW]c q~Q=  q0_$08 A0!gh_`ݿDDOD0`G0!\(  4t~h G!1>0{뎀a DP0/¿`Yᬊ (_SyAs\w C8Cp6CyC`0&\ h@$-!!.@?f @O'ЀàQ !HDpр wvka'~}ugQ37w5ULM PSE J @DDD_'7VCG؟GFm HEsz ?c >goy~+*ޑ7;z={1L⿡Z o63#En ne4`~gCn"Q_L_>1e]d:t5?F8(UgoB$`8PѯƊ˜(/Er#= 3uC ~0,,^Wps oe;.j VQ.~='7GWEO1}URXW9,vdp|N9Ո׆;b2JWlҫnԖe1 XqG'Qzd{jM\a?%t&_IyUC:'Tw GӆiR۪-`5鈓W#1Hfˮܽo(% :o=Ʌ3!EݚJbdŦoMu dCgI.J~$*) 4yxMS2y oRE t]*oZR.U%疋T~SU޿[Musrc5<.g:dk.$3/NqF4e#5-ilu;OZ z_C[N؜n@I=%-D/K:8Ir~zalqTӖ<}+c=Ϊn.SB/O&c$@yR/A$t|Wd-Dz< 1h[AVSm0<Ħ}#̳[7SGX=sj٣_65*8R~4- 'kl˓?HTG#̑| ?)6ff7ȏS\^%3nxj|n+=錒@h>Y;%m}nh]ݘ㻐KU=>?dP3^5b">,2y¦Mfz'{|s>o EPdJivbqRhߨ<&̀7$9q40R"811t'0fҎB݉FI`NΚJ\ŋB([y~S%[0TzAwk: (͙i >c#$cȆ]dG[\ GR6ȗ)kkvl$ث a]&ŲۙvX&qDG9*K%>u'9 QSgUTxc!SJE3Yra׮㞈$UX]9Qߪw C=U'ۊGNbxz+DOX^ <׍)&>Ƴ6/ΗeY=>,IZi joׁt7}ICHyNAel YceƆz;ܕ~k~̙oQ(0%)8f1ahT%C.ċDqz6>OWMλB .3:ʊQNrTjQ]1rO4LVM*Kɜ7XRDXED[4[טV nqo\_1Y$a+_^}J'ہyD g^}MoN$ؿ*(=yч3" fpқg 8iz{o2p. M;>[H mER^$dml~Y׬K@-krWyzne6D~ز0gve ٷUgK |ʼz/ycg@;-KJzB3lo2GRYWSa9糗8Bqb*WRkPg ز.3{,O:1M9C;W÷fӋd`}Zyqp:qqִ3/'eIw|;5XM J]h/e<[x#Sf Â.&bmrT$ol1x* rP:K9<yЎF%#p($ m- !ve!5 }٘<:lRoX i<"VfDӣb~rPZ6M聭"P]{ΞL\LevJF'ծ{&GXW^,OnƏg)M<yjX`dHd:# /}>w67|O; ;YY;!\6~uJwc9pO^B讱vU oK(-,< v)si{<,|XG&ˈ8'ywr$e]B僟Mepgڶ1tzd!-&%Ze- rg*쒘R/JXdk7/ɭ>d=J7ZI#y|in))\i==*7?K|AO-0%=x&O!m⮳V!twiO/X!gPVja/.zj" Xp}z7ݓ )ޏ|{\ކYzzD͍$}ZFTW6ZtQށsO*`~EaX.e$P[cKF1gbf0$uU)Pc nq^VRՅ=jY쀹6Wά[%)]-yq-F/YShnLgi~uɆC <ۣ_ ;&є93?ŽƳ::aQ7,PDޜw3$^;zž%]% a|` DV(٠*][ oDAݟExoX9^8 J m5BB _ N7_c!亁c_tCxӱ[c+*7u>5ȏK []o3KGR)^v y/"z.CTߑH84+9@>yr"i^V]^ ehh؆fF7޵;Ɋw).N#gV],ZToLPNCb}#fؾkō6kɛQXS&֔ɤ8wnr??x竿Y87_1܈Sų,MmN}sCUd1sDϪ|@9BPᙖغR-As#[_A_n S,S'%ǩ~پ˙4ZsgPOWju% yκXgjóg|hRv6J~f̞^؉A<Ѻ3U5|1<%_[hyhno;,vdb>Cky>uL-|.6M[/FA 艹n] H.ϊ?t6V3"B0vC"n_6 ߯dYr*NUp6.JU1o>g:.uyoȞr}0Dæ$ԔHniMmsƕMd~XcN|U\&S:L: VOdg謹rt7ӫ]R/#lxHc?'s>ﶰ‹jD4szT7uC[[NFNMEn@ =C=r}N!*[gsi y=:$/`RiѩVaطz,E\}Jg]zΨ\y7??AiW~O2fN]eqĈF|pU[GP>3F`J:X)4m##~ W<^m1/LT; H\gКL-\Xj )O~y=3oT8?/M([I[ß~ XOyTp:#&_.,fv?m 56a D旽nWV(qw%Mt^\['cqlUEw#6H;D4 WWk -{eI { v*r^tD9KGJ+S-:1xjt eWlbt>5Qkq mTIDtI٥'3I˻Q[ҼJЀV_u8 Y#I9~ ൗ5򢎤WAv endstream endobj 5780 0 obj << /Type /FontDescriptor /FontName /FRBTTO+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/arrowleft) /FontFile 5779 0 R >> endobj 5781 0 obj << /Length1 1606 /Length2 9633 /Length3 0 /Length 10459 /Filter /FlateDecode >> stream xڭteTݒ5-$.!4 4Xwww Cp Bp>̝u5s~s ;+ Z9`gg쿦>{ ggϿOC/`8 `͎\mvkQ!.\3= ƿv附`PKw*D7Ho"M]}WhYWU x~a e_okv5Qy N6Rps ɂ=@V`8`m<:NV  cqqrKL wk|<SVUV`,gڞaHJB<xyl~A.Po*p(`2'ߍO_`dD ndX+ tB?7+y H]jFUNQo7rsIva_75tM:a\saKy{ā+tGMԓOL&aZK/ɴ*!?i=x[130.e;~aM/?W }CߺP{Xc^ЉXI:x4^Qo\q7;C!^D  8͎/D͉,@i7*R\x 7#GGVYE9I,zPpN8cpCW)c{XSm%AUBr3' Q7{~ ˏ8 㩔\#={䠂N`,M.Wלݼ9xPY. ز:-MmUҨu*&^Kz$II t NN܊^jʩy]6 k<;ЗQL@~OomJ›x(%¢˼būrGCi㛠 Ksz!/Ee! Ȕ) [sxC/͟OꢶŌRh/ fB#Qvq>_ k QV1[ ~۝I! ~GP}n9/c-(J NMB%)nQ.l.lvY 좤H"A{Dp "sFzM vQ& M?o*7kx\uΕ'Da'%•X獼5Xc/ {ʓ6>tg%UۧuҦu!6~ܽqA-\U}iNr#`8q'g/H9v(TSX3iGHι$\#;oH"UNme+g_M Lu#}d ^ul]dI7%_C'^ш_}O"q1-  Niq57[9G"~ɧ+Y~rȥ3k\,b.CMGS`oM%<@49 fU.so!?|A}."޿&yyem >9=0 h\sxȭܛygOˍM֏M /Y'} E<3DcKN>;Gj?{81\Yc]3Y7IlY.]o9]@5nWaSTj"AJ7nuZBmQE^¬axH$-͈_x?m6IЗBt<IqeOg 4IL S:B19ms=;#TXr,ΐ ۝޲w ء;59j+1!5Ve|,`lt&zl$$W.D[UetP]r=BKճȶl@V ~S]eAnCw>o8{)I$4??/;nj0Fh)rL;$aa*`|>7}{Yd9F'wv 5'/- |x-\2QwVGvNjݍs< #0pĄ}kgvw'w}h/7l|nPjH- [10i؛s:#:v[=d6kSwq8|5VЩI jUࣵmB;5 X/ވGph)3Uw&16Q(Y߼r!!޹Uq)@ؾ N2(֋TfFQ" >9e92>W hs._axLyD'?r깄p[˝F2N&(pf2[ظk6|;&V% Wl]yC6ܢk/rR^U_b=M>$2(fßbND'H0FnzWX/[ TWT*d]"%[YhL!ZJ :{N&9!?Zs./j>"k-ȸXZ\8DB..w(wIHHG+#?cFñy+UF1N_ NڹkO!MC[`;\ך 3<~4nM̾senIU˲`o(8QI/%Y­y6;h{kfy1VI`[(lީd&yы$|wN@Q[^Sckl$P"+ P;pLވ-ma4qq2$ Ma0@Sv([Xaý i A[ױwx =i V1hVNT}b?l۾)˾L]sơ]3+Z菏lpGmohDq0f$#۳Q~H.U>]^YhʍCɪ"bI<9VJ؝'}\5rEF}t@[DynBr.I@/2iŻ h Wȋ I`>M ]yTۈ2>A>kJca$G=@b$k3*-M=aʷr! 4CS͝#FϫCAhC7[5Jl=X:/ߥf%bHMpIC~vDc$$Ʃ 6Bc8FwP9Gma-p$$2R)P3 UG7~o󩙦[u0IYxs6'@N1>BbSa_v9cPeJ(S<}|!7?ߖ"Xx01[GO_{DAeL,rj%F2P3O/CI5wFѐ }r88=}9"6@+5倢fI[< mBWd3e!C8$}S~gzWc>:`wP  #rf;*aj+y,/J¸ߦ'{Q2S'w3q:9Tl9WtJ84􋻓4Tm㣷K5*H]PG YO"%`K2N{b#` /}v "*QR26xڵ%?JT.ݿ%_u(\c!z!vl!OAA{8igeUbBwww~`0%xh_!{{x||gj$kAF%PGwjO妪#1WQ4jȬ;,$7a+b҉o ʔjy 7ȪcӾ-b5yl9N۟?0j9F +zE p!tđMи(|̧fAPэBd8;lcW ʡ9Ի×frfaV[A&nU!/5, r^LQV<qMIf5ΈcfZ DƦqUu}l*K)/$& |gtZw]x[)Sg2JnvP)2HWR*mox$?k^$ّءDsÒ% !OQjվˊ /{CGU+#jӚb٩L̦qUzf=/UF[9p\R߉Ym+~M8K3 u,ﮬk"p hq*Y"7 иoh:_~u~0]|zar៵Kݏ۾#eJ[-v%%rũBkȽuG|NB=溺T'LdZdi|*V\sdC.* 3AʨJ]|%Pɖ\P whqe^A+ڱ *(707 xjL_f\6Z`M.Ϛ9uue}z#xb$DGǼ_ѻ2At}:9 2vO6 }XwTvbUll>,fL{Lf-2֋8Wm絴b'k6UMk|fFf2'b3J3-Vo]"r a ]ol\۶ءk޻@aණݳpK7߮K{_.Z_pQ)f*} Rad_s]Ï&7suSBgM^R3l-NaS mH 6;~?0[aS5d@x-#3crK%SG@[c~5 ][â\:S*_H:8Kep9saD3|,BסBeG*{v6vJQ5o$?,o?ylWiݗ0{O. Sacr{]X:?KS{B)+NQEi: j?!ǨaP7%KNθT6ϯ7!5f5]7[߄$cKN?nNnmX-ݸ+$8ZW14{lƂ}=p 5{r'8宅~zuIm"hO|BHYXzV0tغhM!?{174 SqPRSBlUsg. ENzl$249{@8Fnkhʥ${}OQ#ZiZh>*B ֫#taՈ4A*b?^%=ֹ7*ݜ{+=%FB'c cdZv;DJ6v 膣"y֜'\oq 7$x% 3˱ YP6uO `M c TºP/ e^x)eP#ގ&wSŠNߞ4' Y~Z2ᦵtӄfg\+7ڀ!4VhS6 ST'}Ң~F-mkrV3$͝ə784#۴:#XlqC,Xj>!M $7Ȼy i%.jT(bq'~BUӃUO緽i 8AC cUH3@$6p1YcpP%k\dG'{T,c,)YkRz[tMk+TkH&’?\ƽzsH?*7MjV%e ?Xٚ䗶f/t"G[ˮ2d*Ƴ?,GQc=%mW:SUʇ u2oA@q߉Z& k#wOB='e1)z24LU[_ z崀((i&+Ȝs5ghbYPxT'\Ewb_Ǿ"ȻoNJi{e}Xڱ&8fDm6ni,[e~bӺJc`eh\PÒWbi®dG٤Sܓ+ܺlܐ΂yB6zŶWC<0OczoX:]c^+qH*z[O.av8~E|͊G&A6͛C/ۢnƒL"߫QO;e N?QvؼmHl+cd"Q+85KUgI,m./?BRwUmbqbh^q瘤QDu2kQr0a#wRM9iY" ή^?ɝiRd ]HjAҿn ]Qሠ$[wdet}hNq̠no57@ΤDRH}nj\Lm [t"{Z.엋uk9ujbWL),wK.qi; X<]U6Dw۱; :<Ud}c5/(k轈ޓWwIQ(%tVa|+Ijd?2>K.)EWXAGA3rȣdoQo%fYjE,T!~YWyvgO o*nGhk70,Ƽ>4pEn'E5*ً{hu ƒXsj宭}2ϓ&4X x,ܸp;0,v=6 m¼xpd_v6k$-e,cDP&h98ĽsѷvNh8hCi~ [ }v#L~ChZ@7dl?@a=DOƆR۲7qYgACZ"fBj})2U ayŦ_= ^CK,UQ[ߗw ͳ%,pvj'P6aoA|FD3.=ICckZ+s/CL0Sb5 endstream endobj 5782 0 obj << /Type /FontDescriptor /FontName /GLNLPA+NimbusMonL-Bold /Flags 4 /FontBBox [-43 -278 681 871] /Ascent 624 /CapHeight 552 /Descent -126 /ItalicAngle 0 /StemV 101 /XHeight 439 /CharSet (/a/b/c/d/e/f/g/h/hyphen/i/j/k/l/m/n/o/p/q/quotedblleft/quotedblright/r/s/t/u/v/w/x/y/z) /FontFile 5781 0 R >> endobj 5783 0 obj << /Length1 1612 /Length2 17850 /Length3 0 /Length 18695 /Filter /FlateDecode >> stream xڬctf].;ظc۶1;ޱٱ;fǶmul{ogcͪW]UW9֢$UVc57J۹02lM\UFNJJq' 4HMllV^^^J FCU,L&U7A A rV6.A t#?[?&Ńij},V'j#zm)UP5t>}v,<%1_ i].Jj%$iRk ɥΐh7px w~5.eA2l<%&F)=|#<%'NK 4C&\ AGGo&ޥH bAv2S3k5p&R? oDonٍ{<ŬuM>=q UqO _>>@}e|}!L.MdΎ}bAq\~(N U&8pעprNiK/ p. W#;󒆕-zjt)MϥBxD{.7DW/'VcvN G5%RYN;^jQ'v똅MN''~9tp`*f}i®GoHz;ϥ)P~%4M h\QIJ:JY߿혪LHXW ;ծ( k]~6b9lf(%!\QEXW+z9 19;ËBJ!|632ス_6P.G#&p (cu81ۨƪ99%bGfd*_X%J߽:AkwDDJMsJ7Jئf]oaiy ž؋`5=a4&?gH.s5n|qIj8#\mbv.95l KdQi]9gU.Ji~.v z,% ؼ` 8=ކfD L~}WΜ ^2)Swv-\}oP 'T+ɡ^ b@Xl(;%BuTh;_2@ Tp_ːg($s"Q=2JtA:KJm/= ٨?>oiF* ^_ӄZW}IJa"ǰi_[yGj\~p-'GLck68RRYV@.bʬqj| )Җ/1fQuUJg[RfA~PP<4 ;Fq ק8t- 9ǧ}+h@:gØ-9oh`p%qQ nYzNoW S}C2E^t>"YЊoo%afWr(=S8adylԵ Cr-plz c$GU/>qAT[O/\;ͩӻHW,2N5g4Y-_5F/jjv{~75Qw)H( cd2>x\l{ Q+>ij}r|3/Sߊyؽq0kRؔ)d \@bO6f8B= ̍TaưIJ #< \^/mDjAHӉLrazk`dYCsvfkSᾄo쉬>,/fvp3gzBkU55OvYrH"ЕPcF\u6.fͧWXȷ^σa9Bue8g9$ 2oA l#mI8&Rr΁!5[^u'jXc>p4(n[ʮ/~Ov p̘LȰY1X>²3[8 - i 0J-7>Cg05KH1cAkt}[ I|&^;}6u )v_7?M'~/*fH]mcµ̥\~7*U:iAH@, p` V}GɄbC( ԕbIrz_ n mݤ )Z\l16%|pQ܉wkGq%(hTC&19 o/F) _nG(ף|.=^ Xo{%X&&'ZRԤQ2@Qw }iKpzMyg2ZCbe{ƙ*3VEaJUzkfTZ ՄvWe'-gT"μ2@ѤNZǶ@FGKIn_7 FqWe.R hZΪ&\a6Q:AmHng -`gI>UK GrxRC]@ *\~Mb؛zu!tl2߯ v﭂bi'<^ eCgJI|G `&$ >8z cw-1dD ǧX/au!c( xbB{pLh4@TxWo"9V/{ Ph)cuK#sji@AW̅Z7=uZ\lkynne Ą^dvH#.Y3 @c3r?ʺ)[yPx32QPHNݘ2T_rC) 3Y|)LRPzo%&kE8OpT]rM-(AXJWDuF,dDڅF[$MBς8Y m>ڢ[ 5- Ǹ C,]R6aiN &g}H嶊ą/uBl#(۹d9x9,zN)NDU#SDJZD5DKʩ!z (eY4<ꅭ_3I:;9tpވȯ[f@u<]Kb:קsh Y#1ȓ,XJɵnJFͮշ֘Mj1SoW<֝SX&l Y*L>~Hi;HP_DMNZ;.tqrΠlX=]8rF{JI__֩=.!}~C)d;]zDclAsm`Zf&׈}*b&p)PlVs9hjx*Q&jC8lrl0F-Ƈ^V+ 8}j`fA8̚K=nn3OMFM^8" ^JlL>8Nqܮ9ѭ -V7ljZҫn)ɜD! zRA1? WV],hlyJ|.pc,SeeU㿬`^?2wtqSsDnLFbo kZoqɵ=HhtQd{Q~͠7 D Wp>O$/ouBYZ04ltzTL>d،r+.J'n&q?DkM8Y&uAA'.Ğsg|^IE#j(k~%;!}L(z|&fK :O^0ɞ=u}MХY/3_:Ꚏ^*D 4[kq:1X<J&%dT1i _o=9%yrl*`,V j=¨{MS#Zr~B1@0D! B#O:u㽭鋙\s\͖(*rU*ϞştheB}3P2/'oZ噘0)Z:bBH2ZAt[N &?t"ï0ίSQUxc3e4sPL2~SSqX,$GmlܳnMD_̞{2QiX&Tkxcat q)3,~`4jS!iCFO~QQ Tn5z-8@\qvޤ_>Hay }e^6Qc2t`fufnmcQU!~eW*~ 0xfb $P`AmF,t,k*vz~zDڹiDĻEeO;Ml)yg#r|y蠈.($ *f/p{>`i]V1 E&-%ubk=*5C\;=kdgد2挅Ӛ oS22+n~_t4w׻eG5=2dbIh'6D2R+"|Dɍe@挑gmˍ\n_+_zUhŚNdx?JckOܣW(օmف?Dr!L,=},Pn@&̝;LG9)1;K;dn¶9p/ZrswgѦ/5M[*j5^ǩ`%3臑)~g+ϞN+ T!qx)Emő+S? \r*fkk+B7?p@&A4}Ա/1*+(vѶİSI/Ȧ n.lT\Q\y}^z!5AX >{]ƢX~Mrf昛7r` P9zr|Qx9'BSL}wxxWFYS&5bЧL:֧k=~>=Mݺ @ Rz0ЏT(Yl'ɗʍ]8eA}bZoћEgW,rI}nrL y U>Oe/B9VuNYTdWG귦WF.}hKX |V#Li/5؟ߘ"ZBoU*FhtWCU|{! ;P@廊]c 2iRkEӔ8^Xa?!NTi1)_bnF`8 r9yvotYRy#[qo4?Νoݑ(ۨú@Qty( gOvm4^1yȍNuPG{̟gM=^ȃz.paWlQ?'C05Y,C Y y*S : qa {/`Č'6ܽVAC{~R֒8\&%^FH({թ'DYD`/f>Sͷg{ F36E uJЬC[jܭ$LA ןn`kD*ac?/4DN:E,8\xCڂ7rM.̩'N`$M25`hy>=p05KӏpBY`g#t(e6FL#KeJi~R_]_ڛiJ1F`s׻+# utˢM%R]kSͭ'̯m⻫YJ$ "N}2<2uw Q? XvhSZ' k6ͤzN1%Ͷ?d~7qV 3YӺ,"",m[h0|D.huK {h]6Eֶ3t_ ZP;џzDlKNk{K{$mIÏe'2ٍ 13 FggSOre t`gm*UPz8Vs]o{#̀>R(܋/B4sHuԪ'dRZdgfC%\ {H eu~ĨIj+,0x۞c@RA]p{ ]KY( ʹ1͚ern&XiL{ͣD"VD1S~]ZXC.}ZW + f{J^H,A:p}(v;F=X- wĵ AnȌ'^G)0|/z>wL\Ԩd,` BI+(d-lE͍o1Ϗ3?¨Ǘ5SZD6:19DG;s{Ϛjm++5 ES1g,]H¥T=1 5H@@m1<+"U1o]&DŽ8΋,5ei0:PV1D2['V/cVCu0ْ*r:X<aj(>rj/2d$\ǤQoze ߁G̬RO&?㶶 ۠l_*pQ5~5x0kM0rlkgvKUUVLK~Ĵь *ug|;%UN$ Ǯ3³2~I1`7u˧2sdtYVXtrJ#}i"`6?3*Т`tMDX$A%Etb !'.Uy=绲LɆ3Z&S,ϧ%cVӖ߁uxt5!E;4 s̨*T,%D~8{"jDSGChC(06_o\?]s!Tĉv>8,1PH;7;`Ad!ZNtvҶAV$2;ȘP!L&ǵ,^HΑYӤB4#l7ML%0lR4(=1.yȁ]qn wrh#U՜qV4C|7sof%P) y Qa.d;hiL M{k,9n \Rpb%MֹpV7U:Z8*C0r̓gb沰exe?>n_Ze}nը.ã*?( UҲKq{D/ÞN>U7`w RL[h֪s>KBBB$hBQk<Y} _\Ed>?k_5Ɉvvډ,=%uWX?e! !&u/*-io@P `mGkv zu=]`w^L:!Π," px#L;uEu|h'F΃w&S; ޾穽60b n.Z!+*gH^Vh5Iz>N CSb:p=ıPt;ֈNW旛zŧ@ARtopٯ}L"5c^d)rvggT) 1(D=ocFهB0Q)ԛ]#'l5e Q}cFǂ/6`!\ &X[&Sxej @!Il:Դqު-P `M^'4g4; BlXOK̎ _WԤ;E`B-50Yp'lv޻oaırx3 }F4<>=D8ZMaoxoص#y`P臵Fxd]Koݞ&"BB3xKz3*CGmmݦc޽ ׽lw 2Q}[!2uK zݪjPL\$IknhtuNi({d:H\Xy՟ŸLZglt6M(NT @l.0-\"jVk 5+rxx~#,b3^ʇ%jɩ'#AƳDJ:Q`TӬW hؐޢo]&|?II2 HgD9%=B[Mn8S+6 D ؤwvp5֥bϤDj0{PD4+v`j64T[XtKf&7SAm]Ni.&nz{믈?}Hߪ[ʥ&z #uy^s\]WBf~t4L+n4)1 8v ޼KMh!-^7,4}nYU=#?o=? ,w=U33UF"CTRQ=ຝaJAyDCNr(Ӟ}k.$0~H^Y!J183qdGqA'FPM͓%ږϭRlFIx;fAY\Q>GpKw{W#BR8;+Ƕl+$XC\v BBJ R,ı =3TeTS+W$5^ H2hO E9ȄX _ FdiY]N0M>NZ#:b) wPYL֝'{qL.ۄZ0ܚ5.xPV:e;^pre h).vj%n6')_6p+i'N3݀'jN?o}s=̰j VV_ y9r |I6{ƾfn\+Gl"(y&Ή`"1bOiiܒ%z}|eQ30T| Pt4Cܵ_ T=|;#-ާ5>FCNSi*uoX$eݜXjѕ)k X+X)e(9A~м* dEƢ5ew&y./彑;M6 ;mQ_l}U+a)s%oUFK6D'=c/ǿV~YYW XMY&ѹ\Q`m%frǓ+nrWJh1 *j'!)A ֯Дu>myUҰHoY t=$%חZZb l5V". @Vc^Q^1#.mjs=>J?>_`JR2⻴bβG=:A#֕*~D#VA B.eu |exe,T  2xyAI֤b539t-9dMO-J/ R%~C~(KmVwf:^s7NpHf[B7Qم'JA)_vBJ o>ն+! 1*BFoŋϨ.{tEG?]ݦ>fcm/jdfGy]׻rsR5 av[[^$Ϟ~UgԐgSSeӋ3 Y-5bZ WKe/ s :l7ev6"&$oJ(bD]V<}uʱ+d%sq,} h]`:,.`xwMk}"S9C/,A.(wG7L6ܶ'ٌjw iJ^Wb0+7]}0񮖚#'VgIN7{I!hI;cc.G%zD@#] oGhM)Z$e{7?@kH6biAC+qXuC\B2$:n_,Hp4ξ9'ᾂvQkΐzd^㰼ZAye㡜M9?;o[ yib49rb h!NJ}K =˽]z1m0y[9>^{$8$N1ԯj!ݒe-x(XO#zC6!S<4` v9VqӘ8?v݆EɜNTeb M'P坾Om_ WU C1ñ2N/!l2=NX.;rz>;{yjD<@3%'=?b0ՃoHQ{kyC$G'21W,"'M/,3laNo>1lzq*.}8w|$7+0a&|Iy+(A,Et}WA.1T+<w%QֶԳ&g:@%9-w(;vaHqNF 5a]l-<3lAɱMh$omi ͟|v8Ef&޾Ջ"+t2^VCk&@腜Cl+omzz"zïAK]W&z D9p!rUtUWKdU&f+rKY2u~/6zzMnAғ3|3];p}3m"iqYhGh)k J mzMZO(BL "7vRYg/X|E)zHӦ_e -jS_ipvoM oh(qG:+=s2`^2lVPQ(±=3A 2Jdpp$w%q@5gxৗ5f|NVUM!HS>/fb7 D#|t$W2|%YT:=OM?٥v?OA=MzCXl }z '?}P7;5d5v s|"7nPVP*ؚ=b DfLT_J:v>0: WZţ OLЗ_]eev~~8;xx3 X`%z+0 ^= GwZц& ՚A ya03i"9%CaArRgz\(`H꺶.ǟjϡcc2:(PU θVTT%h0MtiP Vh1=&/_#sCW,S<i[oX!~D%p1AC,i3cn冨7'}M40nŊti>0I'7YJ|=Jt+ธ D{ϗ2Ysid-bYC LwRz7[=A+#w}br=x_&\9e6ͦԋR+9NYŐ` as/PWlϘ7x;-xYTsT>yCc΄=@ > +n NlmZGaulQ& E/8\QGWȑTbwyOf2&Tt+k( j"5v' zb>-9_1ԫ44Pw Dצ32)>ˎs%:0I 9.n|mKol>[ꭞ[^Y"m= \%ޝ F|1]"kl-c0/ꊖA odo!vNeLe"*1(竢x>2{Q>uﻈ_BP ~S>PBmu/(}'$[hV ]̈oac[e2'yŽ>쯱U7l(Q^09Hs|nN49{6V'Xw$q6бC F5 dy6݂>^\˹˃=`d4JO03G>U-kQ#\ k IoʅJZRum޸Ǔ?dE!7T, ||UVɩ1ieg-"qtAmmj,(AiG802o3ZGkMWPwX"Byw\alܼ]]l%|zEr#J5'uyfMƩ/F^&܁fM6-'\'Ey{L`pq+si`c-n&ē !pOgʀKKzWLI-wE0@7olSr8%Ngh1 °-0M=Tߢ+ jtSް 8ЍA Rzj|^{T?N׹'6NM#iYI6bgѻ7SϥҜL4aŤhW5\Jk@ƯI=0NK\4 x {L;Ib8Xi#۹sf|JAtKcU1@),3@Mt?Y#CX=!N8NLRLe  a훂+Ot\4 .wȿ*xunMF]K>ay|r#A0W0 0x+o28u+.)/ n1!Z/x]F\֙jFL /zÎӰ"Y9zpқSphİr~c9E`xzGoB-Qߴr X Xhx\Y0^+K<;' 4bBzw7A0rh˓\go%F{:ȱ¼Jc& d[ 1ul̑,v;H·aYU%|B|Vs O0wܝXticLZK1_H#wӋAÿal 4QxH>M^Kd.vz:+`PR5qM8RMӝX^U{oeЫ-qJ;!g SHYm϶ %%Х`و“X)shʟۗt;q>Tj8c/2zj);Td{)ۦS}5(|U"N~M{BnqOIGȇ6B!vZ9Ñv 3Qcڦk7 o&vjn?F y`9Ů'2o d dJg+K/"cw2[8 endstream endobj 5784 0 obj << /Type /FontDescriptor /FontName /QEJAGB+NimbusMonL-Regu /Flags 4 /FontBBox [-12 -237 650 811] /Ascent 625 /CapHeight 557 /Descent -147 /ItalicAngle 0 /StemV 41 /XHeight 426 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/W/X/Y/Z/a/ampersand/asciitilde/asterisk/b/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/e/equal/exclam/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/numbersign/o/one/p/parenleft/parenright/percent/period/plus/q/question/quotedbl/quotedblleft/quotedblright/r/s/semicolon/seven/six/slash/t/two/u/underscore/v/w/x/y/z/zero) /FontFile 5783 0 R >> endobj 5785 0 obj << /Length1 1630 /Length2 9640 /Length3 0 /Length 10475 /Filter /FlateDecode >> stream xڭveT\m5ww+NQ8UH,;.%8$xܝ yYͯQs9>YZ]] b \vNn*2&]K,vȀ0*=@jgc 0h1`% `xy9B@` :P @mAk;G@ZM@AU$AuVe; bXC\@Okn/\n 3h@lg3 `j ؁V x[C*􂽐Cܠn@W;g(%uBm-rٽjav@A^?,A+;7gG /dήvfWlW#t'uoW4/`u9ZsrB_r؁Q9,n׀ KV7 dʩ 0Tω?"D{S˹;:Z8,ߗ 喁G WY89zwXj2I͋0<\@VvP-efuV WG;0EۿoG!9 jO7_/v+ Ꟈ?-3ZC;0&c 7\R]TT LZ.7hx=Ȳ=Mؕ :'e)Yfhd4-H?{{2 o(>ib9֣ 3.p!y暱xpkBkN Q@>e= Cs]D#C;!(ՉWF_xɁ&{bI~g\B 9Fq[fAS 8Tf*92% 09rhCptQG7*H df"gXin; DJ8O ^xbBy ܝ(^jt]Jm,v % iVR>L~s-=iZM)T237H(!w22A,9j,]6sG1ӔP/Xe RBT%R6)Wڶif2Xئzʰڞa4ze*fM`w\o>K#60kjҴ+u47m|)ZJЙ5G G-V.XTB)o,Yt;=35 C]=KKS]I.Z.U.]ky;Ȝ\=i7ZjҊ/fȚ5cd۴Ȼw&䍩մSe/͘*NtwaRm ~ETIv3K;m*cpg2L}WmvK}ii ^xk4gobKSyL,%F o*,4#*뢧:#Z8Wi+*WH^S\ R0C2i>>DFk9 ڤݭeT!OQbC- Z9yLWKRYϑR%jHYpl7بO†uɸ4Y^/el>){[SO߈T1c`&4Jvv>h2Nҋb9͘xM]o-uUb96ue7+\"xЦej\i5YH=X f?݌cQ2{2n 8J_wL'K1bvcs]Z X^"-7Xsgr3 )FxzqB*YFORBfq~rL jz&BT\(sUڈ ^2Qci9#>[gOZcH+SO0M}gx5T@;a߾e8=cMs0޵0*4R +/F,lEe#HF%=eJfS ~d?]Mw97bSN79~Yb,K%K\} "x}s7qɢOU~ V8 ;T(3qPbd( BpWrJqjozU28z_9D??hj<&yu@ s 5`Fe%$Ec ʶL5+-u]/6 wY^x/ݼGli- waC ^Z~JM Yuڠ"gQtax*^\\~tDsCXb@Dɷd|ڳ\U_T`!59pmK4pcZ~lQV%~%\ݔXhعq 3?(֗m0A$$9ȏoGmy>LNTC3TS;-M 4v'À0&ƥ;ɰ6~-19dk K7QoP"F*CNlu|0]j#=t8Q2wT~߫y}%./u=큀`xœٖdd_Uan-XC|viQ]--߁Szi>>#̒T'+1p?;줧 5JW{Ƈa1a9:h\{ eo(G@k21.A9=E]*skC0vVprϩǸax)!G -29yQs|/)O$( |杣QiZȸbS>z-D LYGsIEܚD0B5"SqVč1j<ŋh+5qFDr2LwabEM[ HP+m_]Pk燎.n *`0`fiDd=M2{81"u&#P<+.9%a+FceP7Yz&Yp߉F`Ep18_Ft@5a6^BuFxT܎ JGaا D;&2=)?|_&㢫? .i,3\~m||˶zF?:mX86ڐȀĽJ=yGBJ~Fu;'9oV9xC?mS4f/1I$*r\&AO`<](xp9RvXz0Y@nW*#hNVi! NB(p9z9?v߽`!̮0:q<=kNwy~ӃADQ<] LgJ5zV@3*E9pM> 'd.Xy K&Iluo!H}>Jqsh <>-Ho2=m1UL>іo߸:2eT@8T[B A`mA9q&jJNd%hXV*lڜ h\#m^*Q^p(GEvQ" ڻ-ƾ=:*Vy? #$F-H&M&M{9e*LwBXp& 908ה)󘃑qUpl?mk;a:Z9RC;fxYg# &8G:bmF04E"|{UKzs zjٻGXANot~góRj`v.x9E_0Dw.*kdYKaAC_}t `q؏sdbIB ^Ē%"aαBJNZN ?Hj}*zS $\>^ 3]ƢY8ޮgbLc'ӓ2Gz[YmY(q# {So3o7N4iCx|tFUcS,3ZaLAE;=w u?F&a# ,pU5َT0vk3M\B 8 e!)L/qQm˨t!#\d@WQ dn8SJ8Gb1;`5Foc|( k^ƣrYw fwQHߎk2ë226?et|,.:վXW` T' 7oSs6<{n~]b1?4֨3]]ՖBW,Kz= J+ˉDMG@;9>%H}lВDhNCբ&r<` hu8%4JD1+[+eV~q}b FP0~\#S[avY,,=cn9 wA21YnP$Tb%i'Wاu=|?ZNb?~ḭ]4oS?;S_Y@ Z"񔑒|i?C]@!7~?݊+Z6p#!;{lSm \BT<́+PO>9(pyoOPjk[5voFSSArL7w8GS3plڎAe1KR:nQY߬+1M+ؾG'a[ԄԎRQ485Nua_"L2(DQznqUV†1MoV!^;]sx#{Z7` ;^_YLg2vEۅ}V37k&zIo!fTjՑAըM4Z>@U]PhO**t $}Wtxr4xzȤ¢_M_a1M(}g!{vI;ތN'+Ч.5}^ c'R9tcx+K}&W ux#p9H,!>C&G7-g.l:kv^k]amkKZ8>)-_KZ~f CtSx)%ޗe:ף${ð%˪ dzdryQOjGTfc,yo]GեK|а#胞) ▤PBw;D me 7TߤӮq#4>)[g> >A4Rg—lkGNb)a0ͻaΔ])+ڗO2#Hʮ.ͣ!?r᭹\ȘW"':*cN/&2[d61swCRJ8mm$PeD,+%  .i]oUX̤;N;udqeꀟzĸq 4 |- qb:]69HEz.J5m>ci fǹ}p^71Uz *`!im k<3-<*. S\(q}"<1Pf@i[Ix`M+5EK8/mu3ܱwఆU)41~Z/Mj|T5Һ ?%UBl;[͕NڮCGC+r͜q?]GtJ%0S3Z3;(2ƍ RKmc m,c=N?##,9C?*+coUKB)7E)/>ݩԁ}m=3szh'mP vga!xjZHOh7'Α M"Cfi `ٔ_,pX=9Xڿp}v90*(<͹x{ ~2I!g|rFuU'p.خ1ބV ]Vl,D# *3` (yGxm/3S%qF݉ONF-c*2!!+Sc/ZPk؊ @zI{ U6>^G.K#-#K:;aKa aw^ac3i,k}lUVJ8UDjxHPOG+B#5J q}hIj$2˼5s#wu2Jrm6%ܓFC{" 6"0ՁX*UkeZĺ^[r_jSTv:'7G׮©nVQlIyLl_wxsX!6v_ )dz>P0Va2-mCnY@.^9޻MQ%?ѰQc')Yޤ'  iH离p./hZ9#Jt &Cː“J~U;VXkr.'Q9\xW3J,>+2+EWJ8גּ'>ZT<5$+t~}5%Ks'qهR6/9IT_JZ«QӁWuVE&d7 y-fIOW(L:yo(Y{6Yai e*F?;JXw$՛@}R;±զ[yтTWnYm-RBf}τkBIc3fzsܢCh<޼)N &cy"۞vZ<3K{~`s&|avn,hxAZ]/@[}Y)#E9$cTt!s/2D9=)J_([uz-/F*$*ьJXjX؛^NT>ᣄ7OQvMG 'sdxoa^I!> endobj 5787 0 obj << /Length1 1608 /Length2 11652 /Length3 0 /Length 12479 /Filter /FlateDecode >> stream xڭueTݒ5NpwKp%hF{p. }Y_3G:vծSME(ikfbcf(U mDmLF.D**1!dk#n4&q1ˋHss*t 0rOMG hekg C/9` h(mV%'#+1@d qLmV8mmL@`pޯ]vv@k70s0l [9Enj7!;w;#dgUO!܎w7=鯒ü{ G +`r2t{f# @3C+;;_gV߷m/ #ʔ=1=A1nd>g kfIXL, > [_5oZJ}` k +!_5`?H ] VfA Wll05zvum0qqOdliWӹyvmL<fTהemwһ`57wbQu|gb``X9Cy7;\:E]y c[Dlhc>Zem߯<=@+qq֘?"9-\?*hWXSa[j\\76wd#C;؅kEәVOsR M<iTmbCQVӶdteSGX@Wσڄ5{qTa jf?fmQҩGA,s϶0bdWPߴoX nrnC-]C|/з ]BDnNPq5 W W`[tڭa(4 jug$VatW!hY=X-¬#Z䪦ൄK[0EY$ E3E`!bJRhu_} +q4dgy3H+ew#e\ 0Jv;v-Yv%PbȀh;-~XvlǨ4$e+. juTrWFhOhxp0hfZ\]кP"b koX7|SմSu0rwt$b}qY#d! ˮtY,^(ˊq砞4ؖXb&ծk8o]3e(4~t?[üKlkG'kj0y7Lq ͬ X^ٞ 6_A?Y%&n0=k]D}'AOcG#U h#ՃUP%gIHj]C&V}$Y?7чe˜QN  7L_^n٩~tR U< ϶phAKrѶ54I7zx^v_з|?x);\nEJR צ7׌NDV·}SjQPpC~9pς)iJED4ӫ0Y'12,'H8x#jr߹q;If1\E͹ z^ +"4C6od%P3zZR˞ˢ1+щ=s1q{ME&3{5  فA{- L]HG5aՕ&< teZ`PdT ߩ28(ݵmv{0=lldcg}ա I)7#C0&_ x*cUsdBJ6@4^]C{n6Q:I{*B(Ǐ!nOoZx($BFålW!:/17S#ڝ#6?L.ʑ+UAb=wSg>B>,wKF DbՖLa^;t)bxög*5 Smsf) GXINЫ+6:+riRBx@}!~n ,%LޣoSrKZY1x%r!IΥk*7}ǬつI-ꀵZ>dyu6^TAУ8r}L (x7)8#(FK@0\/n7b}lz9{%Lo%cfqS+{j g')^8"l?1rr-*kFY˿Q|4%,qgՅ]=S-:{+^V6H±NܜBei)5,K[F}y B NyN *w9 an+n 9eyG6, zvSidROkB D[P e>3MJWbw]rLqbOA9k{74 A]80y9#I>Y LI"^5Hn,kM}`q<컀^L9˛ñ;r)lsơj`El9M7hO ڪ+X){MugU8Hv!2HO` +5Pƽ <^{/)eۊ%bB0|M~){/'J]r;fF*7k c*ʵJ7H{_"r ֡n;r>Q K\ qOL+)6hB*ސ*D⎸?*^- 0oh qNl[D ىjJ쫩BMJYʎ8ЕAB v[iA%vz<5Ɉ&N<x6a(Qxj&,$?(*4*Ab l h!+l4OQ}sK|;O%V? nê'K `w#d;>5-Lx|W&WnQv‚(J G)KF~3m'2@u!nd~X4Vwru;R-Mpe9x}U+u%hȟjiėM65q?h?uoG.W20vڸH%M]V~X ~ YAL 0,lk=P8tB03(/cCW&İ;Vg} q[Z:A_*b -y%O$5VwwXhLUBufeY?E+"n|:{>*Xg:0+Cm.m[#6^65n"(FeB ғZp|]uHn=Dduq gz*cUkZL)Gl.z\sҜíaƍ[S9\DwiJd3(ۘKnQSn| yWnȀYG$vaW=zL/\\E{Rd񙨶i{uDlmT&s(<׾`~`*49We DD) yf|“׮ 7RWcg൪;cp*fӆmIRBb0AKNb4D(d2o]|whez?"3pUEG0#b^-seI|ލVEraO0/v"'ZG^T]L(;y ;CUB̊9i[=tQfw&콴lokGNMP7O׆ "I.0@A`8 YȻڋۼ9؇!Xi,_hBwXv~sR̳jلms3j<+ >@}AxC#^z_*Q`ИP;mظ u"ZXģ>qiD2T=OY p2W*vsT($*vt(5-~->t9̅Z !Eәf۴xVb% &Uf_+wz.kBuNC JuGN|–9 ē󄎪;U؟FJjK  Ze[28OM(5e ])CIrMz>zSg},&eփ mU:z&m*JE)}S0,s^uXT;8c}]m @kͦ1~rr`9)e-侽N #U"vϧ+_)[%o~}Lܚkp Ah82ܳF|}~OSפaTz.8LfB'V~<)^`fώj@uԥYioV}c(}K_<۸n+twz= idʷ/PRH^YEpp:Ҳi30`EskIa[>MZmh**@lNi+^$\xH Ìt,\Z^$rNQ?28]d#xZOZ6$OțЬlZא&qZZ]FNK=#bk^gZQs;r}\1{J&+OoVwJq;*WZBw ޽$2lurr+CVIlQarV-X{[mȃx`q?!"9bhE!Szn Ei&u$&v9urv+&'ͥ rwv+i9j& <e9=rIXV\˜m''\ !SM@$I0%H([de!o+YxS* Ls-]Q4 YE9_fvEG.ZFMΙ 7#$8 y2'A؝yLO#K/Os7>{ e¤ 2U&k^\dMe׾{ݵ /s j;Ao3=hM#?s.w0TPAj=1@4`5&fe䀟ܮٸmu?$n+2T2 GNgݺ"N#HB:0RePkkroCFe9C>S^S|ӊ s =AoI]ndpԛ|G ]~%t&57ՈE3 ^_t溟Tb eթ^ ֣"2*| 7/>*ILԄ'U̟ _B+?34vAݭ'9t|=BJN/9l8(mn.jkGh911B̯Du˥4/\&'" ʾKDjcbJ޸r1Jqp:BK  >ϒwFe9"a)Qo ))z<.Hiҙ-?S?K-Ԫ6ț#ńk1+Mn-*0Oۺj>΂㉥JéKX*GRC5nP8䞖y ȕ y 9Y鎎}(;텉a2 3 g4H+"˩$2ISx,Kߒǣn)C{6V+!sehD2`dFIH0~U  |iŧMtc2 -Cs%(aoi&}ښ `5NyLa3 o 3)} Σ0_ wVR֩ry(G++sw{\;Հ}F dQP^a :)W%|8pIxތѴ%v/ J?Akj-u><ʬn\Y|3,r+aL\ fneFSڇt5F3]YyܕG-xmq>qVQ?0k6!7vgcjo!M?>8[V*^:PĦ؏kGcc gSOoYeF(0GS4td81 $SФ1s#E+ Ћ }P]`63qny1b}W*3՘uV ;,ySo2A>wqsH,xP\HiِH+dkJ.? .T{ʿ$|ɋAVO|iXB1"EEAa$S"vS7/QTuj=D5 i`R30 = ~?ѱL 戸F)G |L^~ޏ?F?y#x#fTn[m"9$J ԙ zg0g['Y$ z>ύG>>/~NHa$De@t 8ن{1\xk;ىr'HVZҰijwa{ɉmnV kkEn__\L")owSٔ{3a PlSxlVϬJ̒VoBs*+ZP0~ 2{Nޏ l ^aBoJ&!xmR$dc΋Sx})xQCY6;6l;rA"͗ doTUu?#h,=c:#AAg)ҭ2Tk9 |5;&ZO2tV 已b:5|*(aK <⿬0/cuhA!J(0bx%[>'T:y<)AE)F܎Ί=B!ӦM֌iLF(eD>N CK l͂sZ,Em Jn;ڹg>$O(%g-HΩ!q >\*:~ 0HBҶŬG/Udn0,(B؟cs-+{vIyN4@^Yh/*kxl:O?taxc~ rz4%\.-e\{) ۭ\R fi/ Em2KXet)/$&"f$1)>5S`JE"k7 ,#M$&Ӡ a:4y*7`co+rΠņ>mE85+RBӉ &W!:v_-ǣldrяPճXH?@9S'"]j7WkՄFfomLb=@?sGpOޝ2גLUH2/KLIۙSU?M =߭rP}<_Qcq¥dt$1.R#]qιr;d3HWU Mqw 7J\MkIumi9{(EcwIiEkx)lt`GqTm lcO)$;0V7!muw)Qm Ӗ*;?%n9+*!sqN<:tYF3 ,S]Ɉcl *”U>RU lqe2\GAe"$ѬNŰSrGqMbv1TBNlۅ[H6S"NgQ5ǝ?A)>p{GNfP_o=\v@v!`[38x,T1NpySg"IXW9oXi f?vfX-nث$qDsB#c(S#5Gꗜ/Wi-*uy[EWH$ >kDf8Qi: fwZv"q:8̡#9zy@їCH>1Hj3 # κWoPYsR9,S94S9rhpAV=>BTWHOUx0B4SRa3g9,Psל]1Y1͵t_NN]\>JХ3IYgF] G>Ë ^Lng/׹k'Ckr3!kڈ<IFOziз-UjkyIطCk=.yi3AhyV3 n3LW|dq)"۴՟C*ƓR _P]4Y]Y*/y?:޾_/nNR]I,Y+8EWBӌV.A/†0%$J9GYTn}81hyf<*,\hk1, [UP+ߛSu1͔VBDz{6mVXfgf _Z:U>iӌߞK0SZ[IX4p&q~}e9ʓn_’/#OSͅ+2'-jUo2er!jeyP,O{|$WlN{m(!ߢ˘b]ɾBi.^kC75H`c(:8$eU[?*d*J-g ht ,/h|X"S1:]$0LMqLMgu3Xo8Jpwk)nu 5Dz=Wb אF>5k+=jk.~A:mM|ҝBLV.z.Iy| ZCy)$dj Bp, }yp V{C .7U97˜FnbQ,琘T (GL{ʭRA=\bR{HB2ޔ,~ : i< 9=W צs\/0 vm͝gUE"jSDZ9ä4yIV~mM+Y(bl (IP\%7ks,UkKYtB&]/9 .z6\>M㚉; 0 ek*BwT-}KP=5% ' (3MVe1Ă9F3^bcZX*נ>?Dq^(@ear%8OLā(ۊ>{<^Ypc%\c.fF R'e$v!- -6Zc-ɀZvy|b ‚$Bs0Z7 ϗ]rYZ}[yT'h,"NDQTRp#yk+B(5s<ԑ϶Q>~6+B.|Nd/WSp!'ٸ joRIsFdQ 4zBU\\/8i`,T5Ҙ(tCmS9{52]'^f9 {+YwwT[9t4=,* VAhx=~%3?WR+WovXϊ 7f{/k6-.ey];<1R3 ui.:L4Z0Dڼd|O*Xcjw${A"?kl&Iܯψ~Ow".=t#uJnGJAQwd$P8$F Bs@6F/:q]썩誤_OH;OEWxpu|\|VWJO=Pjur]'e2 D s~vy._1[9#$rӐf0@rp#.+^WjJ#Q{ M6= Pń#I\T:D?*H*l!,u^{&ˬS$IX*V zcH4lJ)cl_&YKai@T"n>^[+|ՔֶH=V1$:xO(_&,DgYk=#T؉la\_5 1Ђeu24zٕOo.w{hcvÀͤ'}h@9b)&tmIq.t<||z^Q<"?% b#`qBE*,/PuQ#S| G|B")s:l֙ڄ*Hۈ&f4Z^ ~ߵRDd\|hfV)#5E7C endstream endobj 5788 0 obj << /Type /FontDescriptor /FontName /WTMDWK+NimbusSanL-Bold /Flags 4 /FontBBox [-173 -307 1003 949] /Ascent 722 /CapHeight 722 /Descent -217 /ItalicAngle 0 /StemV 141 /XHeight 532 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/eight/f/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 5787 0 R >> endobj 5789 0 obj << /Length1 1166 /Length2 7923 /Length3 0 /Length 8700 /Filter /FlateDecode >> stream xuveT\ٺ-\)ܥp Ipw;PXa4Bp܃\å>Nך۟5ZM]j:9@9UQ]l <|fZ7{τ u2s{l`e37\<B]@5vC)) sr-5Pz쿫$N^.k7[ fVV/ vX;`{SȂ.M[fe&m qc\ qZq88v:ͤ .`硼8#`+#Yœ8:Ba`y ~Ƭn>.n.!.nOlhuXٻ V;Ё@% `~>?`\ ... +:{bpjiUb>d عQ_:AOS;ZABYǿFr>{_!׳k_Rg 0K%؛W:Gb!hmo 2O_vKe?!X &؁|pZ6 ;GYI-QRj qh=Y?ۿV`O,B8Ķ&J̃}k=~[خ7R09SJmF qdvBm(xqI90OQ&~qGޓ;.ң%uVE&,\;,Dxt*gN<=.e C~QA tfW,[ͩ9^}ΦMM;|'ۗƝsk,Әĉ˘|J di3ymL⎦4+Y90%ٵśṶyչQTH?~kcmdw\!%:?21]Z+i9_6VH<_^JE3yb|f̀ĦVz3GP/Uo]a}Sq-S`Rj7ɂw4oOkw;^z ]JD o5B,YifFWP%D)ZkS2XGX̑ݛو\ *YDcT˯L$]!o_D֋@&z:@T»NΎ2Ul^#z\;h M (|j>d-H;4b7lG3o$KsK" 7J]}&NKx#J[*PG_.֗PtS,n18_vk+6"YgQԢ[vi.ҋdr| kYz pAd"Ѵ._kn*nkbjiȍLۡ &#Q@ R+2JToj,o "0&jų{ŝmvv)Ffgt3y5/:򸚵_<}5HB[ts˄Jv:&-|E̿zފ*0\m$ pgf %$CS N!V$7m?I??Tq"c 75vW_bٕڊx$.QYu9RD. I罝q7K*xQw[kiw҆D& V}&^W?/ԝ uP! ٍ۾/v5NQE}=C_Ђ(}9 c"M ;уaF`ެHGM4I݄&3`y~ 0k,e,md[u&Q7M<@'a$g p Knf'` D{JFfmqi!WWS.yMë_I сtm9 )Å\^fUT0^b +I滈SL}:KoLWѶ:K'Qjj?oP$/PkJ~nٓtVJ ,/޸/v}n\lzڇVv} _mt)[b$HJ|.Sӂ&zJ^r#|Mmŏ?,% t{y“D7 )g*T .3N4 WM|Cioa}miHt30rĆvBt DޘNcE`kX""ڼ# $|_}~ُ@AOúlc}12"ȣFnrc;TR&:MP֬~׭mGVcLjݐ[Oz--<{ruiX@l:@Sബj]%yW꩛]φ-.(DĶau8?1:SOl}tj`{z4`d`Mj\R3_Gbd. &OCk?pRWK_bcSNon<k8)*SK 3XJHy lwLgxѸ G]jA[؜ӧVHOu V܇_ C:_@fGbx1Togl] \/*yKtN?MRCN vZ( ׵k/r ޟ̘:X,LԤշ-P-QF'HdQT6&Y0f撽9Cj60?zUgPo"X ݾsN%gh) i'2$܀Ug;~ |]8>R*|C*eoj[ep[,$uEK1l):($\io$$+]I&.m+Wi|S!;Eʻ8px=6IʏJkaAȠ %4'nPՉa Ou*ZZ`#%G[YACŅNi@es2vǷ~(Տr(lWH)lT:;'}4dZs[ izTFHSno1j (t&m~n]Kr+$mS3h053xƭhV9z+\r~}Å=Pp`p=6pc/[ev|k7+2&geZgC:gpRyFZc(xVoƄ]PEZ)f!UBjTJ x^u`ItoƧigC+rֱ!vgW?c߻l#PE(egP0)>H[`U@r>`.\.GQFട\yqn8ΏuvoHl[N"*-vx"6mع\X$ 뉴.|:7jP%$ũ PNVO4%ŕPF9Q]馰(7_&^:̇~֣SM<z=-ۧ/]:lWkfquBbH6k?;<5X[q fթBOW0foHA$4J^ UOIW޻Go? Whjg+͝cZAse\uatn#fwfv X$g_`+eŽF6;1_=XEg z3 uռj*ZJn'E1niK(MfJ,-¹ h:q?Id^6BF۰dnjSCf3wG1!HQ&Ed)MX>=dM~^]Ѕtj !ުc-B!ܑg奊nu^y<}ZgU[ #F,H<65@rQ}0PKb-*`Ä\5wAchaֲ-_9,ۤ?yAWZ2Ip&C%Xc]mW2Cу(R֭>( ]'m^_31Dr{T3BUZ*{(+\sGf=Y}RԸ$V|9\h!b3~SCdVW|#0PBħ]y?oQ0 @L)#97yp>1sOf)RREʢ~KrEǎ|y7^c%৸G9}=d.O=sf)a4"Y?K(>' ksWx7/ ]Α *,OC5~ڝOU|6.-ܡh>j$m=+ّ4媷#O|KE9;9VHj9=N@W,{K>H:]R ٓY^?Fz{ iY iX+ )Mc\fD n{pfCuAss5b<ͥj-sb/BhD*G:rب>w^k'5 ?lZ' >4e?R;'/io=v6g &w/̃(h^vKuPiYL'~.TN4ٕbq?xOi8](I+"Қ .ND6߳U_hxbŢjJ+bj܄ђ؝dr鴣昪gi-`xE 'g|F{}lF~)p 5ߛ8Ku䫟aƖzhBN*dj>_"V}pG$fN7s4IZeee,6^dMAE/2MC6$4ӝS;4 $To2efj:vo&qh&uðLA uoo$5o6:%5l!i׳%_nΨ{=V:1ƞ2Gto?x5qRWI[xeLFflݒG#?`F%P?eF(@VW/UK/@3c/0gCpFbnlpݏ}벰Y@Fe ԸOq]-Z )ѵ9ҷ yQ¡F!f0;O;.N ^Ikx(WH6#:Fz ۆ~ᢍ}r1:V(J Zz$[sR& a5YC2Bb}ub.4ՐPE r:^A}:i#BB>IFo67-5vD3zMA$iUY~4PLn6$5ƋZNtavgbB͵nOj3cfkEkDm˷iuOWNvS;yCebbV rב ^ʑRT%?PVw꒣inEH0rڄhbH%Ni}zZ!t5߳X}RڧB0٪MuDSVm m|RG4,e() C~R"E{ˡM-.k/&9Nr f[[@n|e6'nKt ;^`{D|[W^ H/`{tgK jpHDVLzK"0cH=& xn _q[vE;۹C+n|#PDJnK$as쪐#Tc9EYYmS-2:T ѻIyoU\՗B.K= I ~=I%1L| J]Q "6uYK#W$/ˋ_.}7 }Ru9//m-"A/s<-b\O\) RY7$H(q*3-Xug2*3B&@||B1R<ZL!Eѩ;Нι~xt#irE!\NSXzbA΂1G g`72/8?{nՈg ;cܕbN+QK"e*`y#ldsDRѮxY)m`)G&@YQ~ӭh]P=N I ANyx#tl"Rܖ%*QPMnJƸ9^&qNއ+!tp(Ǜ Z|L]GSؙd}y 5::@$G(1^a Ѻ-g `h5Ȕ49y_ _>M:rӡ*ׁe;W-#XC rbV,UO˲0;|? endstream endobj 5790 0 obj << /Type /FontDescriptor /FontName /THHSUL+NimbusSanL-Regu /Flags 4 /FontBBox [-174 -285 1001 953] /Ascent 712 /CapHeight 712 /Descent -213 /ItalicAngle 0 /StemV 85 /XHeight 523 /CharSet (/A/B/C/D/E/I/M/N/O/P/R/S/T/U/W/Y/a/b/c/colon/comma/d/e/eight/f/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/r/s/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 5789 0 R >> endobj 5791 0 obj << /Length1 1199 /Length2 3288 /Length3 0 /Length 4042 /Filter /FlateDecode >> stream xmSy99ϑۍqT3As"#[(JvcTK `ZXn99'х@,"L/ D!t43bOG"Ib) "0 S"(@;d"z?gL$/PtvpQRQQeAP(;'dgNl |1>X3 Nƞ F_7n$C8 c[=YNs]iby>CZvo@1( [q|d.!UuJkqQzݷMx6*ti"tENc>D nJݬ[k-Vn3^L)U\P|ݭ<. {ɻ]LQuSp_WwX͈ptʻ&X&UXEI՚+4z }yM$Xf1+3^nkGq8;ťRV!oa`#$8NL1ʔG,Pʹ#hbe]C&WUsגQ&UBUIKzo"6xġTzxp#W`("{QC]P@O?=ɬJOWːhZ0~TuUmM|[oD78y"m6kLCr$)jcW;~+(s,|׃6xJc[d,ӽh"ZlGޢX}k%[?r=J{z‘mpO0xޤKf1ea|–_UW?I0V?Z:-5ݚT&=ث=1Ad֩SoVz{>N6 ^^e.=gu 9L$.8DI|々ϥØbt$eYȕr r&eί#Hl3 w;3Vl2<0ej w[ea ]6%#su̳'L aѯiH33a[>*ţ9(toD*12ȼKWw+Gt?+ɬPhnӜpӒQeLnt1ʧzq.O⣍% *e`gYJ `PpKK \smj i.4r‚ѭm)XZfQfBOW-{]P5~(|: M1e͏&u&9:TL#2I8cٛWh߽UL qjMރiŮ(!s՟w9n뒊cKD-%)kM`0ׅjYLD#G#pelhMՠQr[Ͻs/ۗ<6M_ylyޥ؂tm7ƈxQ,%J+r 61n6gKju[iF/ &Rmf:Qrmkcn8*/yTݜ}&JtW% \08Gcrup>, W|j0챴~N3aSs}aѼe7㢦tR4k s-$TϺ%7 euƥx'VPxzt No%spu8|fs檜;`JhЭk&UЫ5(ih"3777YH) vg& w >ɼZx"~bH4D*A!m֜<eL{ȍ7!Kd`¢ ' :zSݵ)4Iό:)i.׭fz)( O~ۋ>s\y¨CkyzEE1\Ir6R+)mqWRf%𮹸9P[.ۤv|$Wt1Ӧc;֕E^UWUͩ+OM%(X h, _"5W&e\VF,yG9p6!Zk-36ëgZ:ףm)j39ħ?1Ш>k]'5[`'5f?׾i۫)y46$)"EWk~=u UW0R|/7\3 %zO&\ g}8lw<စ˃Ml YBe%tҼȩW޿!F%7B[~^;w ؟ћ}fܣK^;Y|g)hH2[H_hzpS[.͛Lgxbi)7X?LĻ endstream endobj 5792 0 obj << /Type /FontDescriptor /FontName /MBFUFH+NimbusSanL-ReguItal /Flags 4 /FontBBox [-178 -284 1108 953] /Ascent 712 /CapHeight 712 /Descent -213 /ItalicAngle -12 /StemV 88 /XHeight 523 /CharSet (/A/C/D/E/G/I/L/M/N/O/R/S/T/U) /FontFile 5791 0 R >> endobj 5793 0 obj << /Length1 1613 /Length2 1899 /Length3 0 /Length 2731 /Filter /FlateDecode >> stream xڭTy<w\݃f̐$֑k\9wy<53h#GMrlB9Bje)rوlR=m~yy|^=tYL2p g& ;O62*:9@dF^G ;=x8z~3L" bA$"0 (t&@pHt faQ.{@X @ d #2#! @, I tI46Yj BIL:b(HLhT/Gy"T""͂PSPO2ĎadCiP!B0 @@"A#r( fAp &CY,tcߪ'24m_9@ Qx4&*^0#SNf3ĢAj}4"ӸH{4*T~>Q?E"'槂|l8i4b$*> {4H|6vAhpv% HihsV~0d DE\11BW!&Zj ƎN.1:Kxs^/?M'uP989@,oC2E qw 񼛈0!Cw 8A @'4`,3sdhDXA#9Avާ] 'aVӹ9}:?ME8xܶoϋL^%|[G8 m8ؾ7_ǔ\W-9ƴ}\o35seZ܎i,!ݶ. 5/ ױ͜?<5u^<})VB0J͚),3{$$;g/zcG7m5)_ \پ?͵^t.PToZYeyys^m;hJ2F~ ʅG@#q݁O8Sr\̨ӝekCRL~u,?Ff sL:*wX7AkrҌwhZAY^_!oJ?EL0RUzEYw"e{aoq Q>Jy=)>BnÂ|Mɭ ̈Q;l]ʰLNE|o){ݎn̩ag(* . YI^&Zc]1n>D^ݶD%oDt% Xu,Zc~B]wМpƚ 2ӝk6Z/H [P2TCn6̼НpI"3F">XZZ-UR'-6E}b2јMYXASZ}EZL=A'I_ʧ#1uΣIeT5h/MKJ+ظsX5c9[Rjz9[ ҽW!hm>&SE*ójaYˇ?k.Qs…/GoHߨ[tRډ_ZņmLҫv8QwN{~tűbc%irO% oB]6jMlg\?BScvtu6廵ʨlt=:No cW(6}1fV?{=e46rGE,YiE5"Φ6s> endobj 5795 0 obj << /Length1 1626 /Length2 12598 /Length3 0 /Length 13446 /Filter /FlateDecode >> stream xڭweTۖ-NnKN` ! Np=Qc|{\sh(ԵX$,́`7VvA*UAQ@Eh yhh\fn GP H-$ @O_!sgNn6@RSWP˩`=@dPY@ #WkX3:b8]@+ >7Glanw߄\#}`ꎮn. '7{Uuit1s+ pztp}0^73t9` ru7z+lO=OlǿhoŊ^5׮([;wf`{/% M$2O-K{Z^}30(zh3+_u`+ho>7Heage* Z,lVfۮ؃w])_|6 ;_[+w&&//?</;hEHJ:z|X8x,\w/Po U\@9?~< r3[or[ ?< @Z^p MLw6q*.rO)Pa\0!5ȸ7ԅgOיGKНNǴ͸5D7|NG^{[cp\.<p,Rbq0 j Oh w^v3e"%S$y[>z9A ;}T\bllP\gdecݚvPI(JXZýpVo>. Q'OtL;[ "]G,0Jq"<ɓ~<Ϣ{#HAP3 屢!ts"raKhEwq:lA\o!4\,8aMsA;ʂA[D/$ NFލw7 BHie3WYt)`['rGT QFU?VRܔ@c7~:^6`05-,5lWI[ {+]$_-yjfA4+tߎMHg^q6Yg$z2xL3> y.3D4i#y 8;YKi"h֊ &3:ɷpwAnq\[P{csç_wFcn?gUCݬ`.Q|SxEH Eg`S8zOLts{p[<㳗zCLISJ>%1ָY!)vTAq+%eu ^/_bbXCi7zBC*;[Dɞ#rhR'lGmX2nmckDs &\n8Xol׀mΞua53QV 鋈7L;W%{]LץE^ʈg?Ԭ2I˖ڨV>2s6<ܻQm/tnoYFι" 8zˮ;+=N2%:L4 xPp/^-55b%)X_/ЌKiR-#]h]v!?uX45;?Pr||"ၾV뇡dB@}ymEY$AUδˣq6F+'#2]Rfϓ_5O|TSނmݛߨVBm__Srad*:<&PQaBr ʨ-kGJ|gzDBɏ 1C;v٩y~p?wFCeyd,4ʑʒudѫ}}b7wYj,4@-Ï/})JdOC7knҖ9#kk0wHО³̟ůUkzBemA 49_CXsPqmTtgKCۉH;}L5)+F+5.c4G|ɺ !..y ~ۀo=YGR;\ ?k2?eN&erf+E[|oZHG^T)?l2 о; [JqZoyaG9J1W;؆!{[x<6 (*N>mAAE?ש|>W Q=-!ֱ"REbY[n\ПpelL!li&M1#(N i8kK5|Cٹm|3MYẊ^^ r; Qt4RI ,F9qcm]嫋w@h r,K2/0j}aDVZ>wyWއ`a v0F/t\w0K)ZXi#xϓ#Bcl -Y\QF= C&K?}],`jh8_sX{ޗ& p3}$M-2oP\qZ y^o#V Pq(&޶ZaA{0DTa^ΠMrVAұ]zpk+Jvx0{ajQZ:$b3H @X.R2SJ|5fѾy0%J3 vB_5{oOd9w_2$w ;D-*} 0A@D; s&hPx."?R6~E۩&mf =!>YBgjCVhYp:.spb ]WbhNє} }x]J1v9j#YןP2Tiukn urmLjtʄ}]q.*K!ڥΆn;8.PoS|MD>E; LРٷh9YoՁEv/,h/FoBK,+xAuHӫE<m e2iXr>Ϊw(P3_ a=,Cϫ`RCFe#Qy9g'V{ wy#zoaVR4?Uڇ#bj:Dų YC@q"ԔxnѠb犟k\X3֍={ܦ Iou `KpI@eCo8 9i#[r11K I@)o~L|~zUM20fN\i)SuSqQҢw;ڊ7H] 2ӷwYфC4iHSїv_;x?T{ rE?]k2g+ H*M-_;9{Vɐ$c;05z}\g#!֫ٝb) 0nv1VC粘^YXd[ ׭h蘐TRKiXզT4ϑϩMiٗMÔӈllOL-ӑ̍I 3͊Cξf,!ɲ_%2[ KljZzɕ[vA [*ez8$FHXLAmyޚhLP ! }`i槽p 97޽C˿A 'c`m[\ni Ed0!83Ph *YE:?0m7" ~JǠH(o21GWT-nu%ΜȓUXҤ% K1Lż=nM.:jSUM<-2r$ꊏJ— )eucj6LWM[Y98N&,ӵ bq\.\=lG_e'xwq3s JMDCYnye1ܑuvn:<2g׼ćxbR`'^J]lЛ-׹LRe\afL;yJď[$Y(;Z~%jޗ%UVo> މ.m:%Q3a^^)^ 00&Gt+|!Ke,T28D EOQk)"$#w_͌yZwL7!uW{G<0F*x]iTء/Z6 F / <_+#Ow/ LR1[-?jB}K}8kFtBC "6>O @p_0YbVY[a@Ls-1m*B"&A[g8r1,{s`9 af5M"Dhtn>"d:p7PpүjrdGPMb.lm|uGȯYQ$vK]x]!ƢӛsBj;? 5UҸo,Wb&:>"E(]RSZ|VԡpN;ܳME\rcM~#"`M/Za rsT^^q]#OME虷TZ b1%|y/htk%OF۹tO|m-|"s& kfpT5{R;T,r7,fx sft|LMLp>)`ֿy!Q8%<mzl<1hh.ȸY]A */rOi+Y*ACN]:0kmfsƪ: 2e!Y%Q39h=ڗ(5[9,Fj , CBU\/c-Cm̯Sn(-JAUDYơOd3DڡLx8hbPlѢ,Vy5{ϰ.Y H.aTk2ؑ^efJyxWn(_RJ}ly93Ĩ͠&¡ĤB;LyFrwzM~w&.gpTV45M݊!pKD8!50(/B$'Gmnxg% O,!sƦ^ZDX)5lSP[gQGl';{a7,c;t J={uiOP 1;") ߆>0Um2MZZ?O*%DPI{Gu'mqH8՞Gv =+tßtBcߎ*ĜАyZ~1)Jpu'u4w,}%tn;*zoɉbgS!z ˰$]9q),s̈́F9wsBRQ~n7kCylCa>yO׼u+sZ{z>%סD(ٰ{4_EMpӔ4^j9Lz?u`׏F9-r.ŇHj -#N1z3a*v_б~vCKPcwOkU_֑ݩ'Qke0 5<6Bbj]9~".5E<%RD‰k) W x'cWZ3V$j82!6MhqJp)(-ODaKbo IrKeBW0;yQuBJ#R\{o2ZEn 4Kqrjv[WVwΒ?ɓԒd,kGX &`̀r0DAq;ؚBp.M~NTpUeW[ E{Ÿc,֊-Gj^rܿ~tQ :bwԞ4. 9T.LZ8[|)p7u7ddOUR2>e$y)E~S.9$s|:f.ׇ*H 9ش1% g4_}|$,pVgoy혡,\Omq5>"aR`ǴQfEPxB L~*ZԺr IQh1W%)˳]?̆hf){&Rn#X6cH-}LɥO"]S\@W8ǬrMlyBFBͺb2 œf%JSDlM,:PRן=g;d'Hf^ wgm-H`3lHz6ŕΎM|vQLO\*>.H nPW`[M)Q{#T1M',l褣'[\%/45&pD/ɔOSvbsZ ;Ox~-**}F29G&MUՃ "Y*yPH7Xf:6us9OkyXa6ĤTYdn.koF%LA_\ԯ2vj$e4_F b@xyE? O64h&Ɍl]<.bRwsXk$#œ {ޤ ;0O3Q5yMϿ3먣; [|}|!BV_ul' ob[yO挋Jo[Tv'bײeЇMic֝ oVNʊ"w+%0K>Τ_  ' Z&llхlFӢd<2/˚~Y# []/R V\VYk-Lmt]ӈŌ1H& S>xY^sִb}}=dPǶ%k5a !5N~zUTOEk>+j1h/N8Wn TF‘߻_7!Psוx\ƞZ7+ϫ{ZXAjwHQb:yaĚ6xQ,c.LjI|M!uk3NGǘp/V4a8lu ; O詓ӹrۄ5;wI5 n/*k v`_Ön)2#.WAnG˅bQBQO8G뤧%o!SN9Ἶ!+LrW\VWWjV/:t<;m+TꖺЙ՘Iu]6x_6@;r9bl~ߐ1xES1lL%2Ő%{#{owQZM2XkKHO,IHTTE Y>PH3¢IIn__ BW/t5NnohSwe-M.a5𚀻*M2tot%!Ks{UWm:E,Ȝý+G5,$.q,F̟Ic"0hz!L|.,m9ú5`0A)?~Sˎ!׊07F_\鐕2lxfH[Ny[횋6ih(!A)l[}˔V< @ii,Ηqz]~3uՑDцps(Be-4j XQkftC`iBح<ˇ\6`:*:k:,*~,S;(yafW=)VUg6F:Fd[{fKhӞS F6 Kg]-hYNxЄy3T=u6{j0̂cX^BY'm!)v@&k3O"ZGӡ1s!ۉtUm?XC ΆhU4Kȫ bvxd Kxwu,M/O *p w]ߪU~=͌f4ó?∐`[8>v3@TsyF`n0TiM*If…; nU0Uz8}u*sX%2Kk63quF 9ڶF59|Mvߡ1P۲!.F="wLA{࣮ܳr(%:5mhJ }4j,mN^\MܡnuFTZւՃOdnHwMUmTZ<S*2EO=~[~K@j6PutE7c;nQj宆Dyv@(pa r}D |Q 8tliR]슌∥g=S8 ЯQ 2 \2\tFkf Kh=uh3OnI_fvXԍJVe>ͪ$-^/%4%yz*DNȊZEgڐl+)HWmvQk@}m3X_WEe3#>M0 eE(BKQ@QLb }Ȟhܧ<4J'$AǸj*g{ űu۷#.]._xIʝnU BZM 4+WU_iI:RXD$%-OPL7ac`) +@呝u ]:Xw̫k:܅|"d-sK{ `j+ʼzCWL{!323 x}q)9MW/DM:,VL<rq^mJYþLg ~˶8~KӬ+|V=*&t؅NgOO b|r M }H*6 d̲xVcOB#jlqzQztCJ:5`v,TTDŽ\g2ɧ"}*T Oշ{x@*3ZSMQ zY/O۱ڃߡL1;ACudaHk庄62Fϥ{T &}zOK5s֯h\c̳0.OFo-m E%M9T}c9MȐH8a&>.ԯU %]q0{7Zڸ@u"mD\WuIA\r5Ƕ ܃0UXTҋTqj(D4_G\(M2"šcT2^V1|}~?.wk)IΘŜL{,B)Mny3G2n b=@iD7ΟVU 6Nx '|*k;CzхG~w$i'6Jk5]{|1vvJ(;qjZCekdfŧ/}Gɧ[ʑ_16ô=j8R3꥿F2G6`Wkw-Ԧ;`͕IT(5;C୻~bOϯ3_ (? J=fNfN_ ݙE.,{[uJ3a;I|JF4;̾TߞVE2,> endobj 5797 0 obj << /Length1 1630 /Length2 19359 /Length3 0 /Length 20204 /Filter /FlateDecode >> stream xڬctfm&;[Ol۶͊mb۶Tl۶*}޽{{Xck$%TP434uecY8)q*YaHIM -lE M&# lghaf PURO?.Ct0q51u lbp67ZX4%rq[Gk@Ʉ`j055'XN0w#L4{G ' '8,l])_;k `dha UADu:8`g埖e l`ap6qw' o`*?+88[89tOҽǿ?kpv26adon3 [vEo\M5 vovcSz9;)w,@ -_9_{b.r67 Ccm1?EWout6;A[01[i$fnb`ld05;UmM-lMrhMXm25_ӫ)iQo.G7vSFHEe`_@)8;Z#jkdg(;ݶl]71q71Y[3LLwe/mT)*M kjX:<:E&I1ELWEN}@[ ~u(Ơv7[7uLGZJd(! ,|pldx:''0C ͕ݩj)E)Q}م1f1[A`0V*46(`\xFEJsY|m+*s3OSxqbVHbZ$ ;K=6?(ߏH:=h_P@*i üь"x4-CΣ ߔYbyARЅ*,!ӚcjݤH߰B$l$sIu[zDYgK<5%/ʤb|X?,55hGVd dD'qeY\USC#~, !K?ћ1XJh@7;"1M^#Dm@b W|e>6!A|A*6#H]]3rш>\z14u7g\!6R̋ FjSQTps]Ud'LdHգ{ō+5|%eEYmmC\Q 94E/_P#-0r @}Zk/i_EXll-Y=b7,. Emq~ /] Zkћ+A^Ak;iwjH jvz-%\']t6uxܛe\FX 2eMdPAQ$\Q*:n Q. sr(Teb5*#;wf[웛yf30%N3ٯ PpK\Y,H:VjV45v ApQ!n.FSlI+3\2ȣWw{W^kVrgR6u1nɤtw—7.iJ]^(Pxp OQiqз2[ aȰa)12pH\ase[fP3LxܦJpBWAB\ g7\U =hp{p}R.ܛ;S<Nρؕiq a>$_ʖԉR a8,|1a8*Ÿ@l3k8Ja^5Ltݭ~gBb?ƙZ 7P믵4yWcGUC#hm)v/ #^`:yqe*8imL>1ȃ Ov%UFwFI ";{;1|Яx\n0'%,.U4y;YcW)XX .$ϗsUj u%M`3 H7cq )B.+ZcNIR]no( }TTNQ)C72> P!gQ z=K B [zLojSP\hzZקxcXݔ(֝#]HҢZ(%E(jMۨݿ+fZ).{3HO7~s]\ jMpI Iи)iтv8ZMIESu8*Gj` k{`,-lᬇ5_׭*6bvZ dt̋tILEsXW[H:5c~X ۚS(9SGw,GNv4IƋlox8ôhO .䝢՝5۟zX-!zߣ&YohMHEE^蘀`0W2E]Coy!kv=7ǧ,Xkyafg-C9X>X~ UhnM>sUDΠ"a2hu/mfg3k#_]A?7W:g] } MM'0?'de~':Eд g5,rtc"g>@` ᬇ343L&4]tNʸB7;yY=F2g$Gۼ5Yn0CXh#ByL d[ xGk5"vFafyC&1 tj#Վ_*?=9~ûitKkӥ*cEU0%|sԈCH7gqFn]BE V J0Eǂa%S&~Z6j/+kRȊzɁorkS~x`eZKR F +RYH ^ -tfհv^4Au8ـ6ˍn-I h-&!p~vB*5+A,(ۧؗHy6XifYe;J(Ջ;hlG2X3*]iڦ+V{IXPP0}]]MP=uL}KE_3L"xސkf[`p=|X}ZcQe;C{y)%ZW:dr*uv^ˎ y5}ZYKr #1(`KW֦J;V/Bm8a[&ѫ!`ww_;wxF8srϫK2m'o9?h nAԚ u {RFyqrhݶ ܖ$k'AY1|) zArCnwaZQO et_9eӴT1g5S ՚JJ`by~d@K,Ț-[45aPfcnϒ`jnL\ X;Qˡ4|&.H4-RKncwI޸ʲBi0'J@=jC s9. ݒ,X jMa, Ҥmdzv-MT|Q>?rq ypǻq%>Q*~#L!"0MJtQKSA n5 eX,MnY;b_?4Ci|JTw'%Z@@!MRb DMedT;ืN ۢtzD͂-s=DR,=^5JBt 䖖ȋhm vne3@hx(ZtfkbBv 13SGûmkCUɽI?T$L'ZC24-jk|yUc lnsg`h9yj~>.bFWuưyO f@ [, 9BrY pYG wҔ#OΑ/xA1wԎQ-r5!,(yr#LˏA$[ 91JtA#JwkÍSjYқbW;0+ ? UW/DZqS[HK% ,Kݦ(.ML>A\9Z`D+^+Mr8B" - L:M5~FR]~1)O®Ԥq.PŅeTxtp!`ءd>S6K麥BP Sc7ͩs=2rAAǍ7sܣaE /Śj)!Y AL83߀1҄\^+$" # Nzߋf&3?:2{Ȉ>#.@1d$}!Ĉ`۵泘 KnBvQKBIY'vrqZrجIMru+_M`Z*3o;'߃O Qĝ(,(fV(,kTb!vW8[wN/A]C^aO䒪G1I%x|:!xN!fږe#$ZI$gB-$0שŞ 5p }hH\oM_oXZ~P" +Za!2r0Hh.pRPJCOD=?DWE 2#(C$䪾;qyzfnW2̯ z^bO?NM3O{Q fR{f a3qRF]XueH_S8@GJwM. YɢbT9>( !UJ ö5ܣ-gs ł#=XP^,迂lqĮ =% dg't%T>!)^TM'Kxl kZ]Q;'e" ?ŝf,slK-(s;7WN  qP}\ñ%IYJ@Fַ!eV J*>FcHn˟Ԩ8 !w9h^jl|;2;&ۨ{xeJ)Oܹ*?DgXOvmoεf%e8FBƞjPc@J\ƴ-Cf0KPQ8_6 FKް}[!E"~Fo F;xي6qj#\c}IDz{-77NsԘ=J ~VtɩaW}xӴH}"7Q%o5p2n'~֕(_FGU]Ly"IC,5Zͻ;ѷ2yR=P@IqEN^( [ b־.vJ%N}Lݒ 2Chl#N- E]"]/G&&aB1w2x<юK\ C#x:)H\S<Ijbf߮\[v`Qĸk%=/rrQ+`Mȸn4:v'N\sp:I+4|҄r q};QMfr߅*F}N9KfW)] svW&x2 ܦ8`k)g3;ߙ!Ƃ6͆C%LO7ӄ3~ dal,~*h'~$Dڐ4v'<;DBy)mRS{ ?2tdw#ת-6>6S [0 ;C`J9tMPƨ . Ppc•u \Rr" }Dd XbXy\ ,fn&RyӤQ)gWlNb؜.!:oG_mzjvACʥ#oS`Mp*/ MJm7rB^I՛sM*'I : 0糓67Pz n*y"|7eDNƵ& F--RH>A֩}Vwme'BJ!$s? e;5Lӳ{p1THyxtnt _Y*|@k-+]oan2͊ ܙ}oYDl(-2(F:.;óQQb+뗀X|fgV"L FEE8ju6nc^7U.uHE`bmf(.=*Yex9=şjyH!qm$[ %{[Al n} j>Fik^l; r;m%f&kKY'X_"Ƹ&1fЊ6܌S`:7bOhI'Zjۺkhu=Ý h7.Nx:MJo`ddks UU]s=w3dzK:> |`lU"*l8~`p)xp؃'0DMevJaL;6޵Lh@yANi2z1|@.̝ӮoH [jdcf ! vk`'iBC1?C-mS ?V!H8 jo{ɛ/}ysf.< 1,Y}xqh.bwKS(_5}sv$8T1@gtr׼;ԛ,lDҋu܆2kql&PU:JE8Ppr-LFHV(v~7nMUgw.0  !I2$ޣRrzK%"c 3]> \󢇭лTUY&Mea)ƑpyGɧ+.M@Iȑ)<SO:gj% 0Du0'^ L,E"4eK1CLJZ 7.YVoFIM 6^THEM"{YGݡNhx|7ۜqK7 R4Xe[ӯz7腒xmP3y19L2@Č~9kŐ!Dм"%*z\GNl+.k>襜(:~&8l2F 7"տ, b3~NPTA\G"|Z$pJQ//:ӂ^˭[LR1SR'r/k*TacZ6=}bZCWX.ȟ-5f ^ lOpeTj%W邋\X(mj^T 3QSܖg@V,<`&z9&RJaz4~A& e2N'3: cYXUųG=ҒTA^~9Ow ϑ>%Ԥ]P8d>MyvXH8ja,iFD8^;JoxӺ6PzD"2ۡiJa+7<_L89@O.dzt.sCY3NVfiI!`LGH=vmpI,NgYVLѨ]Y!-׍r$TYb4n6ԗBqA"[ |1TeD@ԕzk[c򢅠kf892nmqOdGd(1_1iF{ UٙS`6|ơG #ov^ї,a&39~ v)HhM/gPߴ]Q Ńb񋨕_kT, yfsZ[Q2.JEGOE4<2aO$Z E@k |r~)R3wPQw9Uyg[venA_I3_KP)2 ^Yf˘M;=WCMMƲyPl;B@jQ5\dE5O ̢pP^峔G߆UBq5o#}G !τ3W۱Lef%[΍Zpפvg'W;2=oo n2\3`|Whh/e–`GZ?x虐:98y1)h[(QnZ}P0o927Nuzs2%`Q8Z98. u)qDށ YS@nY+" K(=/;yznJ=ݙp8 "c%tԌ\0Ju*32)j q~ӎˍԑL zrM"Lkw}'NBGiE 3?+ .F>Evy~9{r7 &sByl׋?0coi%}ĕ+0J"N)|9JK'DCU<,w&FV4W:S 0:21:{.j,bUUwtsm&9rYWŁ:+ȬԦ&Z338ǬGVپP-6J<xW;H],4b, q˃n\, &ZLtM4+JZhDj)S`GQo*=>܁|db;lTP=oy宻uac\*5>,¬Xt?䗠bj`\SVo&$jaSm@ZY[ ȚĿ~y\ΩL~Y?zrh ƒ6G*]hki ݯn ^,V>zv~W`(x7qk=9yI>A7Beq 2Qt
2$ ]"^%F͌t+}UU %齧HJ{Jt3_KUg6p3:ٽ[VD["Ŋ);]7z델م$vvrb]ndŐK wRI5NPDRTkT3Ԫq$q]tRމHl%V7|yNYܲ@VlIÍڢ&+QLeS-MM N],Tw5HX3Qꁅb7' ^NԦ4)iAwIYGtsdZ27"{:9Ҿ~ܯ3u{OtpnsS3˅M#2<*Rd?9/_G'tѐ_UUZ swшTqY;'a0ra`FQ3m^.Bt(h=ѥ;+e65{c{4W[׺[d)dd."⮤*ϗKr莪>ju{#+w8Ɲx$Dw _YKbkITЖ;l=d ?X{؏&g1ѭ·GP 9To 3ܳŐh:[Oj|.>mNvު7Kˀr8*m! 2 ;0ȦPSmjo>u瘫oÚ,M{G!u9OʬUVs5p*v4I *V^ H.=oeY<Dzc~xxQdM_GNWR39Q!pH1G3Ì=b=RC!iCQdo|1(6=\x|)ۻA>>2,׶]]bź c, -,ˇ>arQ# ZTkDh&vR|t[<^˔TYuko'=%i'QI\@Y]C>KBZ +=nU1-۵*y,~ :M)IX8X%Ʃ~&iތk LtϞݐ{P$VTY3ޱ'q,]&ρ=x>]c);SiP&{]%6|~+r{AWS鞗Ws;ڙ*:|hU̥)9[AV_#`%E2ϗ5QL`mp{$]l;2RW&buZA'Dd/13\w-Frl'ac_ $@-mvSjx"|1R+XB b2o/B ZN4]]0sقWt,؊V)Y m e6'QÜ'ٸXNJ7G.j> X gO0m /Û`c>݋DILn :8Xi;_ Zaw4SX;xaO!i_TRy5» }Y4b.bKp;_\sMBGX)FIGQy+޼kGy )V7*mk,>VeGx6[hm~D*ͷВe'ACd?(N3p)91q󚟉ZI6w)9Fb [Bz\-Oa0@sS6X( !7Y3i4 1m_}*OLF O`L( [[3]?Mi.})t5nfzgåz}y0όJ,񁡦@8Ry+!F0oxZI$֪A ~ KT~{>'` ja޴?1j_ya2+hP߅6f\$v5Z-uZme|4 /3IvV~9zedQ k4-&A$Sd +},Tn+U=9| L|B'C*N0B7x&K[T7յ&a_ 5rqu5/Ѩ8bc٣_7%&iB3pV~FtQ]4lJgXAuveW{y?2vWoV:ШpF ŷH6U^" 4p .&/5WuWyu6 66ְ!"6rR>,O8őo;4qWԠفMY.IA[CRqLh D (9X|i4_U~x ݞB.6 V;j44 6 I]YTV Bzxj3l2xm'ֱ\d8FK;Ůq†zr(*k\'HV2>kJ'XڭF6%QCۓl׶VQ=c~L1W@;D2WoMFZCbvct #Gxd:.AT.|P":Pm&B.b,EaiaQFGLYZ{C@VWtݵR\~t➚COӯ+}¸B($j9"œ"8ڴP :^,`6 /9l}A2Az1*srw0AU JXVo˱J{~h0?E* ™9ckKBZ9@cGqX1HA{׳ognq9I y[(S7!3йXIF'ZӱHu#݆yA)zMsxY"kJnBʅΑS kqL!]X5Au#6ή/±@1Rh!nE7dF x}VPrrB =!!oРe:O-x%]-,L 9zVi g2[tؽxnNcCh87 ݸs1`KC߁Q,ҌZ^+nRy/zG_Q,1_I|$}?G<`9 Vz)~McEoa.J-S/sLl"d$H,n&uu:pVyRFS(~]36B 6Oi(_nxVT.$ S{P ?{`^v߁f.` k̶%[uCbd#P!#mt]uu! :XR#|0]`gV#wZ<xڎ.⌆Ioa'*&=AJs7I#瀲CwW+-8>C(NLb} >y-D>{eځ:H`)?EYz9,9pN) ըFndJՙY~_0HTt`_Yfa)~ GTb'≇ u7.h<c5v (y臶mIAԍ0//8&yXXHJpŖ5"*$jf:?4feqƒuږ)Ɖut\I~X/@aDqMղtj^=>>U[L8q5 Iv$2GXcEW4{*h>ѸSoЪe-0p~7APĘNhXq@@rT+}؞GseLq:fUun^4Њ<.kΌ[Bp? ̍z͍ :,XHfGF.oبGy* R Mމ,EPS@rὉ,cW 8 9DwYS,S\Uܦۥ3[8UxjSF㼼9M;k.9+ז"n8xF>/БZSV8)~3AfW)9*M܍䦦[Wْ"p_H^j>_ori~9WbwǙLf9À 5/#'8&<|DɢQ{ԞD* ca-ҕ 6 H-WƘ'H8TxJ*+gEٓH՘>ڹ׬B,("3WO-{eJ]@sbpf-mp[Ab!RCZH/8UgpS9߿Л UAw(ˋ?0gw#[#vAg` }΢b2<$xW B~zt +B~>#_4Nk՜sw~r`R}Z;-~G_[ͺt .ld -3H^Y-oϸi^A ¾Iwg2wYUÚ;.TC( NJU/Y%1Ub$qYiLX Ž7E /-"N:CSzg +ed)Eƣ6օ צ]uJVeLϠîm21| Yw_[^j:(:rDX +C=IjSԊ*`bXDu3r&t M2g~f MZר5ufE+ftk=`#fG>;Kkd d j666ܼ2!~C 5á38#޵.',|?ka}: ;|G2k9<8%*0ԛR-k;)񸦹ǾO@Hǟ|~e-Lc~v9R ﰋzSQlcn~K<wJPSdS"nFXRs Oj:v/[!w1t(!ggt9OZF@?˂th!4׋a@vwGn<}ޖZoGB@w2\ @ g=Q )1_s,C8d ~tq7 d7NFO5%ꑠ+mZDfA ҉wIuk_[D4y 8mhNFJv- hgP +'VI)i(E3=7bN+lr D .m{o#k\PxNJk.]&݊ ői6fʷsIa[%a?B@B"[*YxHBqden<QW(&,P CckaxvR+Rq L3'8;c&`%rpYD휣s/_VuFY w4Uu[=#׾G}:ɔ!9(w+YQ"'&Y=!H{EvLo92m ͚(ـ1 Cx{똜uLU /lk[uVc5l'=="yKc 3?2^xs=Z(9ճ܂+ѭ΀uL-bn@&Ԗ8? jZ4[;ɾ\r*Ι{ש sw.۫T-$%R9\ A{z'E~Ug͌.j.uH߇͆qϚx2(p_[21DC7M}vf#3Ǻ2(5,IrMQ#1|uvʴ@?|{RU:i]ؠjs .il2n\-|:_ba@BSJ6Hj̠z 22 HD`<$uomJZ$ƏeMAf{WeN.ʓQ7j5oܺA\1BaUf endstream endobj 5798 0 obj << /Type /FontDescriptor /FontName /WTNRNZ+NimbusRomNo9L-Regu /Flags 4 /FontBBox [-168 -281 1000 924] /Ascent 678 /CapHeight 651 /Descent -216 /ItalicAngle 0 /StemV 85 /XHeight 450 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/Z/a/asterisk/b/backslash/bracketleft/bracketright/c/colon/comma/d/e/eight/emdash/equal/exclam/f/fi/five/fl/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/percent/period/q/quotedbl/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 5797 0 R >> endobj 5799 0 obj << /Length1 1647 /Length2 11785 /Length3 0 /Length 12635 /Filter /FlateDecode >> stream xڭzeTݒ.i,ww@Ҹw,[9sf{ѽ]ϮSk55:)PPٙ9)9)0-]e&w Zh9Km9@h`g!R=AV`6,mzytY>?mw:[ [ @\YEWVI@+ ߋPq5@f@{ `Wi.\.# 0:1v g`lb~?dofjWv rtvxa8]̜A`{T  2,w;U;; 6ٻ@_Ls{w2Ggi-#hiln tqyytU'Toh߻3hk dW[8Xa7wu'th$Lm=@ D%{HLe=$_E?q]rSK*ؽ7? }Иg @װ5q5p@fsd#BLl\\0\@@s `ab~x5́ζ {+aV 37uye)]fY+@DVt0_Tbbo&6n>;e||윾khvyYYYkh$#u{/]{\} @򂃙@uZf:/w>6F^-J?!M'/{rpmiz}) 0?v0a1,EI?ՎS؄ffXd.ҭ ,! cP="8j<dM'7W$woW@{4zG Te&V+O0?<>RufW ܢl0ift6.}Eb%qemi* BJ~'rO9?CV Xl/Ip[0~$S81ρaL镐tLqYLF݂E~z9O߄vV>֌l%}+[KMuF7~y TH57yR s1vlmyAdԍBEPf6!F<ŠPx bszTxU?H2sP֐E߱q[q87uI$^ {LQeNל MQ>A#EԔS.uu1J+m) ~?q0|$}OQ5a7"1_{,EyyTG5GgBypBbY}鏮NT"5߳!{bZqQ7]ί5&$a߮N׃P*`9>Ϡ+t 7F;5@=؞Dj L13EquL /!D;eW{I%S Ini%`)i^(j ".h%P/66l4+W ֠3ߏY{ JJ={ =b7gZ>-\Զ)>rL$36;J{m6GQǃ-Y ~f>ѧ;  j}qM(='7S)MրwP_68tACjvCstkdPMLn B|P bH`0J?tre3lʅsۧ#ASA议yS,̦S(I8{,R]~E?v5?񑕛K8229Eb$9;_ɴ*Y8دLhx.V#k;ں }A)~ƺI(?uJQ'{cP_(% -b~l Dl9'%[ci.O*;kd҆io{&]+g#Q%Ga7z YX~QUW|Lt[anÖuN(t%%H!fzȃ5N9F0$ww U2W<춻F7Kވ]]A<8 ǛD Zrzl :~28},ȕܓ;.[QH7]jjBBB UT!_ҍUZ|/ ,bPǑB׸E0XP$q^ljz/=0#y6YIx.ݒSu ^qiJ]`nPxņ|~2of$^p,Iь`x{&2bHAI|%r GAaLjD4֒"As6.5>BpB/ X ! &S YFsٵq*OPX _Wxh<%[FD.6,rwJ܉p C4ƶoً/"MBDڶ8<:8;W0?iQb |cpJd'VRNK3۞=Grm HS*DM &GZY2M4 퉳6"31?Vb}/.0(i\.+jOػqqfK\>'6rE rPDj_0h'sܑM<.^ue6+IwA1|zU7/D+zVl 'WK:l/ GUuxTϦFR"#1<ͷНc$10^:y@>*C+mtlk6">PĆSZY8DTX0]C=?]% Q'5 ì2A^"է-e5T@esL"kL# S}7$ ND X1@VAVq%L XԾDcrx c"ݵQA1d$9o {=x*'rO4*py|`O:>C,ƒKh%}Qő&ٵ6ڀNb(]EyzvDW_1\駷#FK y"Ja9MiZcff>__6YwS<Ai 50a A\}tk9OQ"t٭~ȯ?ShWmpb ^Atmti3R֏+16:> NJ/3#/a$Ry䖈5Q,ZYFmiR6eBaսZ_2Od 9Cx?Llz*2, =wf{&|om[iq"H{) _i1lm,+1VF?g͆2uK%-RFXw퟇B%B貕,kfl@ \ά0qT֘R5z#]8o0hyV; yP3ȞmPdzn![2+v2^W,^({qiDE\ mG}Պ:Vu-hOXJT{G٫)̎k:G}QZp {s8;74l~,~՟vlP~y>*+[R?q2Lmd_+``q24ό`I0 JEy ?ȼ5(mA@3^] (rm#7'C+$nhϼTʩfx.HUR~~v :v妢XwQ,H&[O+H[e@b3~+ʝsgu[fŅ*kսA'ywFyW9ύ#@;'گط,׼`y"Ĥ tTe+g>{js v=ղQ!z`MO?m +Z_ZrYEnM K+l!پ W&G2.2HzrUGQܓgapܞILR+m:ko9pCMvCgZTuٚ$U]@)$E^7R/Pâs\]\Gyք9C)mrK:Tre0;{+Qz_M5u=$3|J@9:{ loz߼ hؕ /ޮ>K+ K\tWsH@3?fյs}yװۈ'U\4u -;8 1%ߋGe9Aغ}]bJ:X˾5^)lhyB"}daD^0A*2MYӓ?MN'V4ǛzS6(%tS\]\E,gUP |{M/upJ2vQ}MiE}Ј̸رXHڶ9UMoD܂5~+k$j˷_RJE*oJU^[&{ 4|Q#M&[fr3rnKU"a?sH*rÝS4v34nD˄ž{5OċUKD}e3m-<#g+l\IdHAv4k3#H Ji9whֵ1ӊ* mΛc(2`SJOt (ѷNG50uickcч.1 u#r $Ux y&gŽL7 Twy ]*Ь$qbd;@2th۾n, E\LeFXp,,bet-y噚7yBWxts$14zkb%l)7SU$P_&].zll>;Oy[Z'fw&@@eN P2d79&vO8aJ$]¢ Yt59= ұI[KKpho."ZZ ?L«L>PԩtP)ҪOD~9g솬;na' S!%olbo13w]QeB7JWDqU@ԝ.bE̋s2e3+)|gP,U9j)mˇD2H!&?^ ! j_~8WHe%q_)9R;;YcU+ Ize3UE `J4{B2k?9 .!Z+IbaU eCJﱏBy|]z M(^0<K%ufZ=lxuoY1 W~p[qgIklQI}gYռ!yt|GBP'T(6-DŽZ T4f>WPB ރ3d5(N3D\ft56jY-eh7 VEz(^}=Vhȼ夻L(-$E;MU ϩ,?ts1n%59v-D)yXB3N^pB#S0Q=fԠgjڝNb)Foc~Xa]XQȫMOV4 'sK[09)BHH2G#*\siȢ:«f9 *POЊ~/z^'`@9`'d(`d&?7|. xjAUh?7^9dQ(e+ dفBѓ81ƾBD=TDj "'0+xH$X5%etj6y:g O2:+jSCEj8}cUff:Oq=P-["hƜ.-vg UjTD@Ӹ:X`p.9/QYLXJWf ۡ(ɼo1նf:SM =C-Z,-"7$rZ|>M|$ѽ*(ʅ4u6n#•M=Dʫ/1ʏ2$snL(<5!ef,^ۮE+|fLJ!zZY!@CI[QC_إ.7-ZhHZ񎞳''9 (%{esD=FIFG8PӀPЁ#6xŷ 15J }j5߭€0#IHکu-RoJ]؛%D fd\-4v-%Aq7rCz-AZ^8cI؆$2&RV`eYwӳenC*z{re !9u^#Kߞ"#ӳwMݢGky+na,ɾ|7 =iFTbn5EYeMTZ8>1:p66} g]~x9O1('s +݂C)07aGЖPـ! /M"ky4@]эҸ_E>xhc\T~{mNףIRrY" W_prnfl`!o(IY$N'01^ׂt4ř EJflHh4P[~>Cj[9mj1Ẏs^OwF *8xSh*+}:T*MG a廠zxgGXK BB7j~-&XJIۊͨfoO}=mU؏?-lRfc>1D-RadJTi!EԅnMM+έEbZ.5_.atS%;:Z>r׾~juf6Oé3ة72pSpÇt(!JWΩ 7ښk ʷ+VRMOwatIvD* $ rUo5֓}N̮|nGᵿa+V߼Tdod IzWaJ*Ki"  Uj8@ٵ\Q([m3Gzw >{]f5'1X|*Lɿs ğ ظ_# "m8&t7Mcy*5ݎñBty,Z9z %ku?y./r-0G K #&x> bŵ~0r&BDgWa}v>iZE тͅ7#Y;sј +jl7znY9^M^t)v+ہĽW.hXB@{dDŽ ; ժs]ˇX=zQޙmM^v "/n>ar&LC9 lTV2lk/ tSOm<06?zuf+vL~nv{ASW,-&"pkK4-j y9u<-iG*j5Aw|%b!@l |m @*?܀@>hxl.ϓ-t~@sG [F X%s>:FXWT-jXYrvx̆OYk F<92v)yHKȈLJmz2$Xb#џ l_lrežȬ-Ǘ=x- I}O7&z=?,:J_`.s2ِmME|*$pKdI?KHO ĽiL# ˭mp:⻺x_ɃjU s*eiI.ɼVNmE!1y&@>>]:7#ϴ %g1bE+97vqcER0vB \Zʃg+AȎD֛}o$9 Ҝ$vV\7ih]Eڰ'FMA*)CX;~kETzy"gLd@lISFB괥gI.LwO{dcup\NTAF#`ǯxz(vFdg!4Dϋڦ13N%+*_mA VD[%|]HĮu:g#C'AoFoUrJ'oa%ZӾ<%1Ne3;S>R[)Wil+IcS_Dbexv:!;-T3=]ߪ;Y:24cx<#Zm~˳`Q<h6|⥦յ`<"h P =c<"SL&EC{#5W^0̫"߶{e@'`"IkܡO&pZXK}'g|L< /TXAgZ^]l endstream endobj 5800 0 obj << /Type /FontDescriptor /FontName /KPOLFY+NimbusRomNo9L-ReguItal /Flags 4 /FontBBox [-169 -270 1010 924] /Ascent 669 /CapHeight 669 /Descent -193 /ItalicAngle -15 /StemV 78 /XHeight 441 /CharSet (/B/C/E/F/G/I/M/O/P/S/W/a/b/bracketleft/bracketright/c/d/e/eight/equal/f/g/h/hyphen/i/j/k/l/m/n/o/p/period/r/s/t/u/w/x/y/z) /FontFile 5799 0 R >> endobj 5767 0 obj << /Type /Encoding /Differences [2/fi/fl 33/exclam/quotedbl/numbersign 37/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question 65/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P 82/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright 95/underscore 97/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/braceleft 125/braceright/asciitilde 147/quotedblleft/quotedblright 151/emdash] >> endobj 1173 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LSUPIB+CMMI10 /FontDescriptor 5778 0 R /FirstChar 45 /LastChar 45 /Widths 5765 0 R >> endobj 1172 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FRBTTO+CMSY10 /FontDescriptor 5780 0 R /FirstChar 32 /LastChar 32 /Widths 5766 0 R >> endobj 620 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GLNLPA+NimbusMonL-Bold /FontDescriptor 5782 0 R /FirstChar 45 /LastChar 148 /Widths 5768 0 R /Encoding 5767 0 R >> endobj 124 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QEJAGB+NimbusMonL-Regu /FontDescriptor 5784 0 R /FirstChar 33 /LastChar 148 /Widths 5771 0 R /Encoding 5767 0 R >> endobj 345 0 obj << /Type /Font /Subtype /Type1 /BaseFont /CCZJHQ+NimbusMonL-ReguObli /FontDescriptor 5786 0 R /FirstChar 65 /LastChar 121 /Widths 5769 0 R /Encoding 5767 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WTMDWK+NimbusSanL-Bold /FontDescriptor 5788 0 R /FirstChar 2 /LastChar 122 /Widths 5774 0 R /Encoding 5767 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /THHSUL+NimbusSanL-Regu /FontDescriptor 5790 0 R /FirstChar 40 /LastChar 122 /Widths 5775 0 R /Encoding 5767 0 R >> endobj 16 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MBFUFH+NimbusSanL-ReguItal /FontDescriptor 5792 0 R /FirstChar 65 /LastChar 85 /Widths 5773 0 R /Encoding 5767 0 R >> endobj 3684 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DFTNIV+StandardSymL-Slant_167 /FontDescriptor 5794 0 R /FirstChar 109 /LastChar 109 /Widths 5764 0 R >> endobj 52 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HAYAQJ+NimbusRomNo9L-Medi /FontDescriptor 5796 0 R /FirstChar 45 /LastChar 121 /Widths 5772 0 R /Encoding 5767 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WTNRNZ+NimbusRomNo9L-Regu /FontDescriptor 5798 0 R /FirstChar 2 /LastChar 151 /Widths 5776 0 R /Encoding 5767 0 R >> endobj 312 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KPOLFY+NimbusRomNo9L-ReguItal /FontDescriptor 5800 0 R /FirstChar 45 /LastChar 122 /Widths 5770 0 R /Encoding 5767 0 R >> endobj 11 0 obj << /Type /Pages /Count 6 /Parent 5801 0 R /Kids [2 0 R 13 0 R 48 0 R 90 0 R 109 0 R 114 0 R] >> endobj 127 0 obj << /Type /Pages /Count 6 /Parent 5801 0 R /Kids [118 0 R 129 0 R 138 0 R 215 0 R 271 0 R 304 0 R] >> endobj 346 0 obj << /Type /Pages /Count 6 /Parent 5801 0 R /Kids [332 0 R 360 0 R 378 0 R 405 0 R 427 0 R 447 0 R] >> endobj 482 0 obj << /Type /Pages /Count 6 /Parent 5801 0 R /Kids [465 0 R 489 0 R 508 0 R 522 0 R 539 0 R 561 0 R] >> endobj 627 0 obj << /Type /Pages /Count 6 /Parent 5801 0 R /Kids [606 0 R 636 0 R 709 0 R 753 0 R 799 0 R 815 0 R] >> endobj 847 0 obj << /Type /Pages /Count 6 /Parent 5801 0 R /Kids [832 0 R 849 0 R 865 0 R 881 0 R 919 0 R 948 0 R] >> endobj 984 0 obj << /Type /Pages /Count 6 /Parent 5802 0 R /Kids [971 0 R 991 0 R 1011 0 R 1031 0 R 1074 0 R 1121 0 R] >> endobj 1158 0 obj << /Type /Pages /Count 6 /Parent 5802 0 R /Kids [1146 0 R 1161 0 R 1191 0 R 1219 0 R 1239 0 R 1266 0 R] >> endobj 1312 0 obj << /Type /Pages /Count 6 /Parent 5802 0 R /Kids [1299 0 R 1413 0 R 1471 0 R 1519 0 R 1533 0 R 1559 0 R] >> endobj 1590 0 obj << /Type /Pages /Count 6 /Parent 5802 0 R /Kids [1578 0 R 1600 0 R 1619 0 R 1637 0 R 1659 0 R 1675 0 R] >> endobj 1717 0 obj << /Type /Pages /Count 6 /Parent 5802 0 R /Kids [1696 0 R 1719 0 R 1729 0 R 1740 0 R 1756 0 R 1774 0 R] >> endobj 1843 0 obj << /Type /Pages /Count 6 /Parent 5802 0 R /Kids [1828 0 R 1858 0 R 1901 0 R 1917 0 R 1933 0 R 1939 0 R] >> endobj 1968 0 obj << /Type /Pages /Count 6 /Parent 5803 0 R /Kids [1952 0 R 1973 0 R 1990 0 R 2011 0 R 2106 0 R 2156 0 R] >> endobj 2201 0 obj << /Type /Pages /Count 6 /Parent 5803 0 R /Kids [2186 0 R 2207 0 R 2229 0 R 2247 0 R 2265 0 R 2287 0 R] >> endobj 2323 0 obj << /Type /Pages /Count 6 /Parent 5803 0 R /Kids [2304 0 R 2328 0 R 2347 0 R 2370 0 R 2390 0 R 2409 0 R] >> endobj 2444 0 obj << /Type /Pages /Count 6 /Parent 5803 0 R /Kids [2431 0 R 2450 0 R 2485 0 R 2515 0 R 2537 0 R 2558 0 R] >> endobj 2643 0 obj << /Type /Pages /Count 6 /Parent 5803 0 R /Kids [2632 0 R 2692 0 R 2740 0 R 2761 0 R 2785 0 R 2807 0 R] >> endobj 2840 0 obj << /Type /Pages /Count 6 /Parent 5803 0 R /Kids [2823 0 R 2848 0 R 2869 0 R 2896 0 R 2916 0 R 2934 0 R] >> endobj 2973 0 obj << /Type /Pages /Count 6 /Parent 5804 0 R /Kids [2958 0 R 3022 0 R 3066 0 R 3103 0 R 3122 0 R 3142 0 R] >> endobj 3179 0 obj << /Type /Pages /Count 6 /Parent 5804 0 R /Kids [3164 0 R 3185 0 R 3202 0 R 3221 0 R 3246 0 R 3278 0 R] >> endobj 3329 0 obj << /Type /Pages /Count 6 /Parent 5804 0 R /Kids [3315 0 R 3331 0 R 3357 0 R 3388 0 R 3446 0 R 3488 0 R] >> endobj 3526 0 obj << /Type /Pages /Count 6 /Parent 5804 0 R /Kids [3510 0 R 3535 0 R 3550 0 R 3582 0 R 3631 0 R 3665 0 R] >> endobj 3705 0 obj << /Type /Pages /Count 6 /Parent 5804 0 R /Kids [3686 0 R 3707 0 R 3723 0 R 3743 0 R 3765 0 R 3854 0 R] >> endobj 3901 0 obj << /Type /Pages /Count 6 /Parent 5804 0 R /Kids [3889 0 R 3930 0 R 3953 0 R 3972 0 R 3995 0 R 4020 0 R] >> endobj 4055 0 obj << /Type /Pages /Count 6 /Parent 5805 0 R /Kids [4037 0 R 4060 0 R 4077 0 R 4103 0 R 4122 0 R 4146 0 R] >> endobj 4169 0 obj << /Type /Pages /Count 6 /Parent 5805 0 R /Kids [4153 0 R 4174 0 R 4200 0 R 4218 0 R 4267 0 R 4302 0 R] >> endobj 4340 0 obj << /Type /Pages /Count 6 /Parent 5805 0 R /Kids [4325 0 R 4342 0 R 4378 0 R 4407 0 R 4430 0 R 4473 0 R] >> endobj 4524 0 obj << /Type /Pages /Count 6 /Parent 5805 0 R /Kids [4505 0 R 4531 0 R 4549 0 R 4600 0 R 4632 0 R 4666 0 R] >> endobj 4701 0 obj << /Type /Pages /Count 6 /Parent 5805 0 R /Kids [4686 0 R 4703 0 R 4752 0 R 4791 0 R 4819 0 R 4842 0 R] >> endobj 4887 0 obj << /Type /Pages /Count 6 /Parent 5805 0 R /Kids [4864 0 R 4890 0 R 4909 0 R 4928 0 R 4942 0 R 4975 0 R] >> endobj 5021 0 obj << /Type /Pages /Count 6 /Parent 5806 0 R /Kids [5006 0 R 5027 0 R 5053 0 R 5071 0 R 5075 0 R 5123 0 R] >> endobj 5142 0 obj << /Type /Pages /Count 6 /Parent 5806 0 R /Kids [5135 0 R 5228 0 R 5346 0 R 5464 0 R 5582 0 R 5641 0 R] >> endobj 5801 0 obj << /Type /Pages /Count 36 /Parent 5807 0 R /Kids [11 0 R 127 0 R 346 0 R 482 0 R 627 0 R 847 0 R] >> endobj 5802 0 obj << /Type /Pages /Count 36 /Parent 5807 0 R /Kids [984 0 R 1158 0 R 1312 0 R 1590 0 R 1717 0 R 1843 0 R] >> endobj 5803 0 obj << /Type /Pages /Count 36 /Parent 5807 0 R /Kids [1968 0 R 2201 0 R 2323 0 R 2444 0 R 2643 0 R 2840 0 R] >> endobj 5804 0 obj << /Type /Pages /Count 36 /Parent 5807 0 R /Kids [2973 0 R 3179 0 R 3329 0 R 3526 0 R 3705 0 R 3901 0 R] >> endobj 5805 0 obj << /Type /Pages /Count 36 /Parent 5807 0 R /Kids [4055 0 R 4169 0 R 4340 0 R 4524 0 R 4701 0 R 4887 0 R] >> endobj 5806 0 obj << /Type /Pages /Count 12 /Parent 5807 0 R /Kids [5021 0 R 5142 0 R] >> endobj 5807 0 obj << /Type /Pages /Count 192 /Kids [5801 0 R 5802 0 R 5803 0 R 5804 0 R 5805 0 R 5806 0 R] >> endobj 5808 0 obj << /Type /Outlines /First 5645 0 R /Last 5762 0 R /Count 4 >> endobj 5762 0 obj << /Title 5763 0 R /A 5761 0 R /Parent 5808 0 R /Prev 5753 0 R >> endobj 5759 0 obj << /Title 5760 0 R /A 5758 0 R /Parent 5753 0 R /Prev 5756 0 R >> endobj 5756 0 obj << /Title 5757 0 R /A 5755 0 R /Parent 5753 0 R /Next 5759 0 R >> endobj 5753 0 obj << /Title 5754 0 R /A 5752 0 R /Parent 5808 0 R /Prev 5651 0 R /Next 5762 0 R /First 5756 0 R /Last 5759 0 R /Count -2 >> endobj 5750 0 obj << /Title 5751 0 R /A 5749 0 R /Parent 5735 0 R /Prev 5747 0 R >> endobj 5747 0 obj << /Title 5748 0 R /A 5746 0 R /Parent 5735 0 R /Prev 5744 0 R /Next 5750 0 R >> endobj 5744 0 obj << /Title 5745 0 R /A 5743 0 R /Parent 5735 0 R /Prev 5741 0 R /Next 5747 0 R >> endobj 5741 0 obj << /Title 5742 0 R /A 5740 0 R /Parent 5735 0 R /Prev 5738 0 R /Next 5744 0 R >> endobj 5738 0 obj << /Title 5739 0 R /A 5737 0 R /Parent 5735 0 R /Next 5741 0 R >> endobj 5735 0 obj << /Title 5736 0 R /A 5734 0 R /Parent 5651 0 R /Prev 5675 0 R /First 5738 0 R /Last 5750 0 R /Count -5 >> endobj 5732 0 obj << /Title 5733 0 R /A 5731 0 R /Parent 5675 0 R /Prev 5729 0 R >> endobj 5729 0 obj << /Title 5730 0 R /A 5728 0 R /Parent 5675 0 R /Prev 5726 0 R /Next 5732 0 R >> endobj 5726 0 obj << /Title 5727 0 R /A 5725 0 R /Parent 5675 0 R /Prev 5723 0 R /Next 5729 0 R >> endobj 5723 0 obj << /Title 5724 0 R /A 5722 0 R /Parent 5675 0 R /Prev 5720 0 R /Next 5726 0 R >> endobj 5720 0 obj << /Title 5721 0 R /A 5719 0 R /Parent 5675 0 R /Prev 5717 0 R /Next 5723 0 R >> endobj 5717 0 obj << /Title 5718 0 R /A 5716 0 R /Parent 5675 0 R /Prev 5714 0 R /Next 5720 0 R >> endobj 5714 0 obj << /Title 5715 0 R /A 5713 0 R /Parent 5675 0 R /Prev 5711 0 R /Next 5717 0 R >> endobj 5711 0 obj << /Title 5712 0 R /A 5710 0 R /Parent 5675 0 R /Prev 5708 0 R /Next 5714 0 R >> endobj 5708 0 obj << /Title 5709 0 R /A 5707 0 R /Parent 5675 0 R /Prev 5705 0 R /Next 5711 0 R >> endobj 5705 0 obj << /Title 5706 0 R /A 5704 0 R /Parent 5675 0 R /Prev 5702 0 R /Next 5708 0 R >> endobj 5702 0 obj << /Title 5703 0 R /A 5701 0 R /Parent 5675 0 R /Prev 5699 0 R /Next 5705 0 R >> endobj 5699 0 obj << /Title 5700 0 R /A 5698 0 R /Parent 5675 0 R /Prev 5696 0 R /Next 5702 0 R >> endobj 5696 0 obj << /Title 5697 0 R /A 5695 0 R /Parent 5675 0 R /Prev 5693 0 R /Next 5699 0 R >> endobj 5693 0 obj << /Title 5694 0 R /A 5692 0 R /Parent 5675 0 R /Prev 5690 0 R /Next 5696 0 R >> endobj 5690 0 obj << /Title 5691 0 R /A 5689 0 R /Parent 5675 0 R /Prev 5687 0 R /Next 5693 0 R >> endobj 5687 0 obj << /Title 5688 0 R /A 5686 0 R /Parent 5675 0 R /Prev 5684 0 R /Next 5690 0 R >> endobj 5684 0 obj << /Title 5685 0 R /A 5683 0 R /Parent 5675 0 R /Prev 5681 0 R /Next 5687 0 R >> endobj 5681 0 obj << /Title 5682 0 R /A 5680 0 R /Parent 5675 0 R /Prev 5678 0 R /Next 5684 0 R >> endobj 5678 0 obj << /Title 5679 0 R /A 5677 0 R /Parent 5675 0 R /Next 5681 0 R >> endobj 5675 0 obj << /Title 5676 0 R /A 5674 0 R /Parent 5651 0 R /Prev 5654 0 R /Next 5735 0 R /First 5678 0 R /Last 5732 0 R /Count -19 >> endobj 5672 0 obj << /Title 5673 0 R /A 5671 0 R /Parent 5654 0 R /Prev 5669 0 R >> endobj 5669 0 obj << /Title 5670 0 R /A 5668 0 R /Parent 5654 0 R /Prev 5666 0 R /Next 5672 0 R >> endobj 5666 0 obj << /Title 5667 0 R /A 5665 0 R /Parent 5654 0 R /Prev 5663 0 R /Next 5669 0 R >> endobj 5663 0 obj << /Title 5664 0 R /A 5662 0 R /Parent 5654 0 R /Prev 5660 0 R /Next 5666 0 R >> endobj 5660 0 obj << /Title 5661 0 R /A 5659 0 R /Parent 5654 0 R /Prev 5657 0 R /Next 5663 0 R >> endobj 5657 0 obj << /Title 5658 0 R /A 5656 0 R /Parent 5654 0 R /Next 5660 0 R >> endobj 5654 0 obj << /Title 5655 0 R /A 5653 0 R /Parent 5651 0 R /Next 5675 0 R /First 5657 0 R /Last 5672 0 R /Count -6 >> endobj 5651 0 obj << /Title 5652 0 R /A 5650 0 R /Parent 5808 0 R /Prev 5645 0 R /Next 5753 0 R /First 5654 0 R /Last 5735 0 R /Count -3 >> endobj 5648 0 obj << /Title 5649 0 R /A 5647 0 R /Parent 5645 0 R >> endobj 5645 0 obj << /Title 5646 0 R /A 5644 0 R /Parent 5808 0 R /Next 5651 0 R /First 5648 0 R /Last 5648 0 R /Count -1 >> endobj 5809 0 obj << /Names [(BT-IS-GVALUE:CAPS) 220 0 R (BT-IS-STRING:CAPS) 221 0 R (BT-MACHINE-STATE-BYPASS:CAPS) 1735 0 R (BT-MACHINE-STATE-MUTE:CAPS) 1733 0 R (BT-MACHINE-STATE-NORMAL:CAPS) 1732 0 R (BT-MACHINE-STATE-SOLO:CAPS) 1734 0 R] /Limits [(BT-IS-GVALUE:CAPS) (BT-MACHINE-STATE-SOLO:CAPS)] >> endobj 5810 0 obj << /Names [(BT-PATTERN-CMD-BREAK:CAPS) 1244 0 R (BT-PATTERN-CMD-BYPASS:CAPS) 1243 0 R (BT-PATTERN-CMD-MUTE:CAPS) 1233 0 R (BT-PATTERN-CMD-NORMAL:CAPS) 1232 0 R (BT-PATTERN-CMD-SOLO:CAPS) 1242 0 R (BT-PROCESSOR-MACHINE-PATTERN-INDEX-BREAK:CAPS) 2638 0 R] /Limits [(BT-PATTERN-CMD-BREAK:CAPS) (BT-PROCESSOR-MACHINE-PATTERN-INDEX-BREAK:CAPS)] >> endobj 5811 0 obj << /Names [(BT-PROCESSOR-MACHINE-PATTERN-INDEX-BYPASS:CAPS) 2640 0 R (BT-PROCESSOR-MACHINE-PATTERN-INDEX-MUTE:CAPS) 2639 0 R (BT-PROCESSOR-MACHINE-PATTERN-INDEX-OFFSET:CAPS) 2641 0 R (BT-SINK-BIN-MODE-PASS-THRU:CAPS) 3328 0 R (BT-SINK-BIN-MODE-PLAY-AND-RECORD:CAPS) 3327 0 R (BT-SINK-BIN-MODE-PLAY:CAPS) 3325 0 R] /Limits [(BT-PROCESSOR-MACHINE-PATTERN-INDEX-BYPASS:CAPS) (BT-SINK-BIN-MODE-PLAY:CAPS)] >> endobj 5812 0 obj << /Names [(BT-SINK-BIN-MODE-RECORD:CAPS) 3326 0 R (BT-SINK-BIN-RECORD-FORMAT-COUNT:CAPS) 3342 0 R (BT-SINK-BIN-RECORD-FORMAT-FLAC:CAPS) 3340 0 R (BT-SINK-BIN-RECORD-FORMAT-MP3:CAPS) 3335 0 R (BT-SINK-BIN-RECORD-FORMAT-MP4-AAC:CAPS) 3339 0 R (BT-SINK-BIN-RECORD-FORMAT-OGG-FLAC:CAPS) 3337 0 R] /Limits [(BT-SINK-BIN-MODE-RECORD:CAPS) (BT-SINK-BIN-RECORD-FORMAT-OGG-FLAC:CAPS)] >> endobj 5813 0 obj << /Names [(BT-SINK-BIN-RECORD-FORMAT-OGG-OPUS:CAPS) 3341 0 R (BT-SINK-BIN-RECORD-FORMAT-OGG-VORBIS:CAPS) 3334 0 R (BT-SINK-BIN-RECORD-FORMAT-RAW:CAPS) 3338 0 R (BT-SINK-BIN-RECORD-FORMAT-WAV:CAPS) 3336 0 R (BT-SINK-MACHINE-PATTERN-INDEX-BREAK:CAPS) 3449 0 R (BT-SINK-MACHINE-PATTERN-INDEX-MUTE:CAPS) 3450 0 R] /Limits [(BT-SINK-BIN-RECORD-FORMAT-OGG-OPUS:CAPS) (BT-SINK-MACHINE-PATTERN-INDEX-MUTE:CAPS)] >> endobj 5814 0 obj << /Names [(BT-SINK-MACHINE-PATTERN-INDEX-OFFSET:CAPS) 3451 0 R (BT-SONG-IO-ERROR-INVALID-FORMAT:CAPS) 4895 0 R (BT-SONG-IO-ERROR-UNKNOWN-FORMAT:CAPS) 4893 0 R (BT-SONG-IO-ERROR-UNSUPPORTED-METHOD:CAPS) 4894 0 R (BT-SONG-IO-ERROR:CAPS) 4773 0 R (BT-SONG-IO-MODULE-INFO-MAX-FORMATS:CAPS) 4774 0 R] /Limits [(BT-SINK-MACHINE-PATTERN-INDEX-OFFSET:CAPS) (BT-SONG-IO-MODULE-INFO-MAX-FORMATS:CAPS)] >> endobj 5815 0 obj << /Names [(BT-SOURCE-MACHINE-PATTERN-INDEX-BREAK:CAPS) 3860 0 R (BT-SOURCE-MACHINE-PATTERN-INDEX-MUTE:CAPS) 3861 0 R (BT-SOURCE-MACHINE-PATTERN-INDEX-OFFSET:CAPS) 3863 0 R (BT-SOURCE-MACHINE-PATTERN-INDEX-SOLO:CAPS) 3862 0 R (BT-WAVE-LOOP-MODE-FORWARD:CAPS) 4335 0 R (BT-WAVE-LOOP-MODE-OFF:CAPS) 4334 0 R] /Limits [(BT-SOURCE-MACHINE-PATTERN-INDEX-BREAK:CAPS) (BT-WAVE-LOOP-MODE-OFF:CAPS)] >> endobj 5816 0 obj << /Names [(BT-WAVE-LOOP-MODE-PINGPONG:CAPS) 4336 0 R (BT-WAVELEVEL-DEFAULT-ROOT-NOTE:CAPS) 4392 0 R (BT-WIRE-MAX-NUM-PARAMS:CAPS) 4654 0 R (BtApplication) 143 0 R (BtApplication--bin) 581 0 R (BtApplication--settings) 583 0 R] /Limits [(BT-WAVE-LOOP-MODE-PINGPONG:CAPS) (BtApplication--settings)] >> endobj 5817 0 obj << /Names [(BtApplication-struct) 584 0 R (BtApplication.description) 609 0 R (BtApplication.functions_details) 615 0 R (BtApplication.includes) 579 0 R (BtApplication.object-hierarchy) 575 0 R (BtApplication.other) 574 0 R] /Limits [(BtApplication-struct) (BtApplication.other)] >> endobj 5818 0 obj << /Names [(BtApplication.other_details) 616 0 R (BtApplication.properties) 573 0 R (BtApplication.property-details) 619 0 R (BtAudioSession) 625 0 R (BtAudioSession--audio-locked) 655 0 R (BtAudioSession--audio-sink) 657 0 R] /Limits [(BtApplication.other_details) (BtAudioSession--audio-sink)] >> endobj 5819 0 obj << /Names [(BtAudioSession--audio-sink-device) 658 0 R (BtAudioSession--audio-sink-name) 659 0 R (BtAudioSession-struct) 652 0 R (BtAudioSession.description) 646 0 R (BtAudioSession.functions) 626 0 R (BtAudioSession.functions_details) 647 0 R] /Limits [(BtAudioSession--audio-sink-device) (BtAudioSession.functions_details)] >> endobj 5820 0 obj << /Names [(BtAudioSession.includes) 645 0 R (BtAudioSession.object-hierarchy) 641 0 R (BtAudioSession.other) 640 0 R (BtAudioSession.other_details) 651 0 R (BtAudioSession.properties) 639 0 R (BtAudioSession.property-details) 712 0 R] /Limits [(BtAudioSession.includes) (BtAudioSession.property-details)] >> endobj 5821 0 obj << /Names [(BtChildProxy) 928 0 R (BtChildProxy-struct) 941 0 R (BtChildProxy.description) 956 0 R (BtChildProxy.functions) 929 0 R (BtChildProxy.functions_details) 957 0 R (BtChildProxy.includes) 955 0 R] /Limits [(BtChildProxy) (BtChildProxy.includes)] >> endobj 5822 0 obj << /Names [(BtChildProxy.object-hierarchy) 951 0 R (BtChildProxy.other) 930 0 R (BtChildProxy.other_details) 1034 0 R (BtChildProxyInterface) 942 0 R (BtCmdPattern) 1194 0 R (BtCmdPattern--command) 1208 0 R] /Limits [(BtChildProxy.object-hierarchy) (BtCmdPattern--command)] >> endobj 5823 0 obj << /Names [(BtCmdPattern--machine) 1209 0 R (BtCmdPattern--name) 1210 0 R (BtCmdPattern--song) 1211 0 R (BtCmdPattern-struct) 1212 0 R (BtCmdPattern.description) 1222 0 R (BtCmdPattern.functions) 1195 0 R] /Limits [(BtCmdPattern--machine) (BtCmdPattern.functions)] >> endobj 5824 0 obj << /Names [(BtCmdPattern.functions_details) 1223 0 R (BtCmdPattern.includes) 1205 0 R (BtCmdPattern.object-hierarchy) 1198 0 R (BtCmdPattern.other) 1197 0 R (BtCmdPattern.other_details) 1229 0 R (BtCmdPattern.properties) 1196 0 R] /Limits [(BtCmdPattern.functions_details) (BtCmdPattern.properties)] >> endobj 5825 0 obj << /Names [(BtCmdPattern.property-details) 1245 0 R (BtCmdPatternControlSource) 1269 0 R (BtCmdPatternControlSource--default-value) 1293 0 R (BtCmdPatternControlSource--machine) 1294 0 R (BtCmdPatternControlSource--sequence) 1295 0 R (BtCmdPatternControlSource--song-info) 1296 0 R] /Limits [(BtCmdPattern.property-details) (BtCmdPatternControlSource--song-info)] >> endobj 5826 0 obj << /Names [(BtCmdPatternControlSource-struct) 1297 0 R (BtCmdPatternControlSource.description) 1281 0 R (BtCmdPatternControlSource.functions) 1270 0 R (BtCmdPatternControlSource.functions_details) 1282 0 R (BtCmdPatternControlSource.includes) 1280 0 R (BtCmdPatternControlSource.object-hierarchy) 1273 0 R] /Limits [(BtCmdPatternControlSource-struct) (BtCmdPatternControlSource.object-hierarchy)] >> endobj 5827 0 obj << /Names [(BtCmdPatternControlSource.other) 1272 0 R (BtCmdPatternControlSource.other_details) 1302 0 R (BtCmdPatternControlSource.properties) 1271 0 R (BtCmdPatternControlSource.property-details) 1305 0 R (BtCmdPatterns) 1291 0 R (BtMachine) 1103 0 R] /Limits [(BtCmdPatternControlSource.other) (BtMachine)] >> endobj 5828 0 obj << /Names [(BtMachine--adder-convert) 1450 0 R (BtMachine--construction-error) 1451 0 R (BtMachine--global-params) 1452 0 R (BtMachine--id) 1453 0 R (BtMachine--input-gain) 1454 0 R (BtMachine--input-post-level) 1455 0 R] /Limits [(BtMachine--adder-convert) (BtMachine--input-post-level)] >> endobj 5829 0 obj << /Names [(BtMachine--input-pre-level) 1456 0 R (BtMachine--machine) 1492 0 R (BtMachine--output-gain) 1493 0 R (BtMachine--output-post-level) 1494 0 R (BtMachine--output-pre-level) 1495 0 R (BtMachine--patterns) 1496 0 R] /Limits [(BtMachine--input-pre-level) (BtMachine--patterns)] >> endobj 5830 0 obj << /Names [(BtMachine--plugin-name) 1497 0 R (BtMachine--prefs-params) 1498 0 R (BtMachine--pretty-name) 1499 0 R (BtMachine--properties) 1500 0 R (BtMachine--song) 1501 0 R (BtMachine--state) 1503 0 R] /Limits [(BtMachine--plugin-name) (BtMachine--state)] >> endobj 5831 0 obj << /Names [(BtMachine--voice-params) 1504 0 R (BtMachine--voices) 1505 0 R (BtMachine-pattern-added) 1506 0 R (BtMachine-pattern-removed) 1508 0 R (BtMachine-struct) 1509 0 R (BtMachine.description) 1491 0 R] /Limits [(BtMachine--voice-params) (BtMachine.description)] >> endobj 5832 0 obj << /Names [(BtMachine.functions) 1418 0 R (BtMachine.functions_details) 1522 0 R (BtMachine.implemented-interfaces) 1489 0 R (BtMachine.includes) 1490 0 R (BtMachine.object-hierarchy) 1476 0 R (BtMachine.other) 1475 0 R] /Limits [(BtMachine.functions) (BtMachine.other)] >> endobj 5833 0 obj << /Names [(BtMachine.other_details) 1710 0 R (BtMachine.properties) 1419 0 R (BtMachine.property-details) 1736 0 R (BtMachine.signal-details) 1831 0 R (BtMachine.signals) 1474 0 R (BtMachineClass) 1510 0 R] /Limits [(BtMachine.other_details) (BtMachineClass)] >> endobj 5834 0 obj << /Names [(BtMachineState) 1502 0 R (BtMachines) 3093 0 R (BtParameterGroup) 1431 0 R (BtParameterGroup--machine) 1893 0 R (BtParameterGroup--num-params) 1894 0 R (BtParameterGroup--params) 1895 0 R] /Limits [(BtMachineState) (BtParameterGroup--params)] >> endobj 5835 0 obj << /Names [(BtParameterGroup--parents) 1896 0 R (BtParameterGroup--song) 1897 0 R (BtParameterGroup-struct) 1898 0 R (BtParameterGroup.description) 1868 0 R (BtParameterGroup.functions) 1842 0 R (BtParameterGroup.functions_details) 1869 0 R] /Limits [(BtParameterGroup--parents) (BtParameterGroup.functions_details)] >> endobj 5836 0 obj << /Names [(BtParameterGroup.includes) 1867 0 R (BtParameterGroup.object-hierarchy) 1863 0 R (BtParameterGroup.other) 1862 0 R (BtParameterGroup.other_details) 2015 0 R (BtParameterGroup.properties) 1861 0 R (BtParameterGroup.property-details) 2018 0 R] /Limits [(BtParameterGroup.includes) (BtParameterGroup.property-details)] >> endobj 5837 0 obj << /Names [(BtPattern) 1104 0 R (BtPattern--copy-source) 2144 0 R (BtPattern--length) 2145 0 R (BtPattern--voices) 2146 0 R (BtPattern-group-changed) 2175 0 R (BtPattern-param-changed) 2176 0 R] /Limits [(BtPattern) (BtPattern-param-changed)] >> endobj 5838 0 obj << /Names [(BtPattern-pattern-changed) 2177 0 R (BtPattern-struct) 2178 0 R (BtPattern.description) 2168 0 R (BtPattern.functions) 2111 0 R (BtPattern.functions_details) 2169 0 R (BtPattern.implemented-interfaces) 2166 0 R] /Limits [(BtPattern-pattern-changed) (BtPattern.implemented-interfaces)] >> endobj 5839 0 obj << /Names [(BtPattern.includes) 2167 0 R (BtPattern.object-hierarchy) 2161 0 R (BtPattern.other) 2160 0 R (BtPattern.other_details) 2434 0 R (BtPattern.properties) 2112 0 R (BtPattern.property-details) 2437 0 R] /Limits [(BtPattern.includes) (BtPattern.property-details)] >> endobj 5840 0 obj << /Names [(BtPattern.signal-details) 2453 0 R (BtPattern.signals) 2159 0 R (BtPatternCmd) 1207 0 R (BtPatternControlSource) 2493 0 R (BtPatternControlSource--default-value) 2506 0 R (BtPatternControlSource--machine) 2507 0 R] /Limits [(BtPattern.signal-details) (BtPatternControlSource--machine)] >> endobj 5841 0 obj << /Names [(BtPatternControlSource--parameter-group) 2508 0 R (BtPatternControlSource--sequence) 2509 0 R (BtPatternControlSource--song-info) 2510 0 R (BtPatternControlSource-struct) 2511 0 R (BtPatternControlSource.description) 2519 0 R (BtPatternControlSource.functions) 2494 0 R] /Limits [(BtPatternControlSource--parameter-group) (BtPatternControlSource.functions)] >> endobj 5842 0 obj << /Names [(BtPatternControlSource.functions_details) 2520 0 R (BtPatternControlSource.includes) 2518 0 R (BtPatternControlSource.object-hierarchy) 2497 0 R (BtPatternControlSource.other) 2496 0 R (BtPatternControlSource.other_details) 2529 0 R (BtPatternControlSource.properties) 2495 0 R] /Limits [(BtPatternControlSource.functions_details) (BtPatternControlSource.properties)] >> endobj 5843 0 obj << /Names [(BtPatternControlSource.property-details) 2540 0 R (BtPatterns) 2504 0 R (BtPersistence) 1077 0 R (BtPersistence-struct) 1101 0 R (BtPersistence.description) 1086 0 R (BtPersistence.functions) 1078 0 R] /Limits [(BtPatternControlSource.property-details) (BtPersistence.functions)] >> endobj 5844 0 obj << /Names [(BtPersistence.functions_details) 1087 0 R (BtPersistence.implementations) 1084 0 R (BtPersistence.includes) 1085 0 R (BtPersistence.object-hierarchy) 1080 0 R (BtPersistence.other) 1079 0 R (BtPersistence.other_details) 1164 0 R] /Limits [(BtPersistence.functions_details) (BtPersistence.other_details)] >> endobj 5845 0 obj << /Names [(BtPersistenceInterface) 1102 0 R (BtProcessorMachine) 1105 0 R (BtProcessorMachine-struct) 2582 0 R (BtProcessorMachine.description) 2572 0 R (BtProcessorMachine.functions) 2551 0 R (BtProcessorMachine.functions_details) 2573 0 R] /Limits [(BtPersistenceInterface) (BtProcessorMachine.functions_details)] >> endobj 5846 0 obj << /Names [(BtProcessorMachine.implemented-interfaces) 2570 0 R (BtProcessorMachine.includes) 2571 0 R (BtProcessorMachine.object-hierarchy) 2561 0 R (BtProcessorMachine.other) 2552 0 R (BtProcessorMachine.other_details) 2635 0 R (BtProcessorMachinePatternIndex) 2583 0 R] /Limits [(BtProcessorMachine.implemented-interfaces) (BtProcessorMachinePatternIndex)] >> endobj 5847 0 obj << /Names [(BtSequence) 1106 0 R (BtSequence--length) 2717 0 R (BtSequence--loop) 2718 0 R (BtSequence--loop-end) 2719 0 R (BtSequence--loop-start) 2720 0 R (BtSequence--properties) 2721 0 R] /Limits [(BtSequence) (BtSequence--properties)] >> endobj 5848 0 obj << /Names [(BtSequence--song) 2722 0 R (BtSequence--toc) 2723 0 R (BtSequence--tracks) 2724 0 R (BtSequence-pattern-added) 2725 0 R (BtSequence-pattern-removed) 2726 0 R (BtSequence-rows-changed) 2727 0 R] /Limits [(BtSequence--song) (BtSequence-rows-changed)] >> endobj 5849 0 obj << /Names [(BtSequence-struct) 2730 0 R (BtSequence-track-added) 2728 0 R (BtSequence-track-removed) 2729 0 R (BtSequence.description) 2743 0 R (BtSequence.functions) 2642 0 R (BtSequence.functions_details) 2744 0 R] /Limits [(BtSequence-struct) (BtSequence.functions_details)] >> endobj 5850 0 obj << /Names [(BtSequence.implemented-interfaces) 2702 0 R (BtSequence.includes) 2703 0 R (BtSequence.object-hierarchy) 2698 0 R (BtSequence.other) 2697 0 R (BtSequence.other_details) 2911 0 R (BtSequence.properties) 2695 0 R] /Limits [(BtSequence.implemented-interfaces) (BtSequence.properties)] >> endobj 5851 0 obj << /Names [(BtSequence.property-details) 2921 0 R (BtSequence.signal-details) 2943 0 R (BtSequence.signals) 2696 0 R (BtSettings) 582 0 R (BtSettings--audiosink) 764 0 R (BtSettings--audiosink-device) 765 0 R] /Limits [(BtSequence.property-details) (BtSettings--audiosink-device)] >> endobj 5852 0 obj << /Names [(BtSettings--channels) 766 0 R (BtSettings--coherence-upnp-active) 767 0 R (BtSettings--coherence-upnp-port) 768 0 R (BtSettings--compact-theme) 769 0 R (BtSettings--dark-theme) 770 0 R (BtSettings--grid-density) 771 0 R] /Limits [(BtSettings--channels) (BtSettings--grid-density)] >> endobj 5853 0 obj << /Names [(BtSettings--ic-playback-active) 772 0 R (BtSettings--ic-playback-spec) 773 0 R (BtSettings--jack-transport-master) 774 0 R (BtSettings--jack-transport-slave) 775 0 R (BtSettings--latency) 776 0 R (BtSettings--missing-machines) 777 0 R] /Limits [(BtSettings--ic-playback-active) (BtSettings--missing-machines)] >> endobj 5854 0 obj << /Names [(BtSettings--news-seen) 778 0 R (BtSettings--presented-tips) 779 0 R (BtSettings--record-folder) 780 0 R (BtSettings--sample-folder) 781 0 R (BtSettings--sample-rate) 782 0 R (BtSettings--show-tips) 783 0 R] /Limits [(BtSettings--news-seen) (BtSettings--show-tips)] >> endobj 5855 0 obj << /Names [(BtSettings--song-folder) 784 0 R (BtSettings--statusbar-hide) 785 0 R (BtSettings--system-audiosink) 786 0 R (BtSettings--tabs-hide) 787 0 R (BtSettings--toolbar-hide) 788 0 R (BtSettings--toolbar-style) 789 0 R] /Limits [(BtSettings--song-folder) (BtSettings--toolbar-style)] >> endobj 5856 0 obj << /Names [(BtSettings--window-height) 790 0 R (BtSettings--window-width) 791 0 R (BtSettings--window-xpos) 792 0 R (BtSettings--window-ypos) 793 0 R (BtSettings-struct) 794 0 R (BtSettings.description) 762 0 R] /Limits [(BtSettings--window-height) (BtSettings.description)] >> endobj 5857 0 obj << /Names [(BtSettings.functions) 721 0 R (BtSettings.functions_details) 763 0 R (BtSettings.includes) 761 0 R (BtSettings.object-hierarchy) 757 0 R (BtSettings.other) 756 0 R (BtSettings.other_details) 821 0 R] /Limits [(BtSettings.functions) (BtSettings.other_details)] >> endobj 5858 0 obj << /Names [(BtSettings.properties) 722 0 R (BtSettings.property-details) 824 0 R (BtSetup) 1107 0 R (BtSetup--machines) 3083 0 R (BtSetup--missing-machines) 3084 0 R (BtSetup--properties) 3085 0 R] /Limits [(BtSettings.properties) (BtSetup--properties)] >> endobj 5859 0 obj << /Names [(BtSetup--song) 3086 0 R (BtSetup--wires) 3087 0 R (BtSetup-machine-added) 3088 0 R (BtSetup-machine-removed) 3089 0 R (BtSetup-struct) 3092 0 R (BtSetup-wire-added) 3090 0 R] /Limits [(BtSetup--song) (BtSetup-wire-added)] >> endobj 5860 0 obj << /Names [(BtSetup-wire-removed) 3091 0 R (BtSetup.description) 3077 0 R (BtSetup.functions) 3031 0 R (BtSetup.functions_details) 3078 0 R (BtSetup.implemented-interfaces) 3075 0 R (BtSetup.includes) 3076 0 R] /Limits [(BtSetup-wire-removed) (BtSetup.includes)] >> endobj 5861 0 obj << /Names [(BtSetup.object-hierarchy) 3071 0 R (BtSetup.other) 3070 0 R (BtSetup.other_details) 3209 0 R (BtSetup.properties) 3032 0 R (BtSetup.property-details) 3212 0 R (BtSetup.signal-details) 3228 0 R] /Limits [(BtSetup.object-hierarchy) (BtSetup.signal-details)] >> endobj 5862 0 obj << /Names [(BtSetup.signals) 3069 0 R (BtSinkBin) 3259 0 R (BtSinkBin--analyzers) 3300 0 R (BtSinkBin--input-gain) 3301 0 R (BtSinkBin--master-volume) 3302 0 R (BtSinkBin--mode) 3304 0 R] /Limits [(BtSetup.signals) (BtSinkBin--mode)] >> endobj 5863 0 obj << /Names [(BtSinkBin--record-file-name) 3305 0 R (BtSinkBin--record-format) 3307 0 R (BtSinkBin-struct) 3308 0 R (BtSinkBin.description) 3297 0 R (BtSinkBin.functions) 3281 0 R (BtSinkBin.functions_details) 3298 0 R] /Limits [(BtSinkBin--record-file-name) (BtSinkBin.functions_details)] >> endobj 5864 0 obj << /Names [(BtSinkBin.implemented-interfaces) 3295 0 R (BtSinkBin.includes) 3296 0 R (BtSinkBin.object-hierarchy) 3284 0 R (BtSinkBin.other) 3283 0 R (BtSinkBin.other_details) 3322 0 R (BtSinkBin.properties) 3282 0 R] /Limits [(BtSinkBin.implemented-interfaces) (BtSinkBin.properties)] >> endobj 5865 0 obj << /Names [(BtSinkBin.property-details) 3343 0 R (BtSinkBinMode) 3303 0 R (BtSinkBinRecordFormat) 3306 0 R (BtSinkMachine) 630 0 R (BtSinkMachine-struct) 3378 0 R (BtSinkMachine.description) 3393 0 R] /Limits [(BtSinkBin.property-details) (BtSinkMachine.description)] >> endobj 5866 0 obj << /Names [(BtSinkMachine.functions) 3366 0 R (BtSinkMachine.functions_details) 3394 0 R (BtSinkMachine.implemented-interfaces) 3391 0 R (BtSinkMachine.includes) 3392 0 R (BtSinkMachine.object-hierarchy) 3368 0 R (BtSinkMachine.other) 3367 0 R] /Limits [(BtSinkMachine.functions) (BtSinkMachine.other)] >> endobj 5867 0 obj << /Names [(BtSinkMachine.other_details) 3400 0 R (BtSinkMachinePatternIndex) 3379 0 R (BtSong) 144 0 R (BtSong--app) 3460 0 R (BtSong--bin) 3461 0 R (BtSong--is-idle) 3462 0 R] /Limits [(BtSinkMachine.other_details) (BtSong--is-idle)] >> endobj 5868 0 obj << /Names [(BtSong--is-playing) 3463 0 R (BtSong--master) 3464 0 R (BtSong--play-pos) 3465 0 R (BtSong--play-rate) 3466 0 R (BtSong--sequence) 3467 0 R (BtSong--setup) 3468 0 R] /Limits [(BtSong--is-playing) (BtSong--setup)] >> endobj 5869 0 obj << /Names [(BtSong--song-info) 3469 0 R (BtSong--song-io) 3471 0 R (BtSong--wavetable) 3472 0 R (BtSong-struct) 3473 0 R (BtSong.description) 3497 0 R (BtSong.functions) 3452 0 R] /Limits [(BtSong--song-info) (BtSong.functions)] >> endobj 5870 0 obj << /Names [(BtSong.functions_details) 3498 0 R (BtSong.implemented-interfaces) 3495 0 R (BtSong.includes) 3496 0 R (BtSong.object-hierarchy) 3491 0 R (BtSong.other) 3454 0 R (BtSong.other_details) 3541 0 R] /Limits [(BtSong.functions_details) (BtSong.other_details)] >> endobj 5871 0 obj << /Names [(BtSong.properties) 3453 0 R (BtSong.property-details) 3553 0 R (BtSongClass) 3474 0 R (BtSongIO) 3470 0 R (BtSongIO--data) 4769 0 R (BtSongIO--data-len) 4770 0 R] /Limits [(BtSong.properties) (BtSongIO--data-len)] >> endobj 5872 0 obj << /Names [(BtSongIO--file-name) 4771 0 R (BtSongIO--status) 4772 0 R (BtSongIO-struct) 4775 0 R (BtSongIO.description) 4798 0 R (BtSongIO.functions) 4755 0 R (BtSongIO.functions_details) 4799 0 R] /Limits [(BtSongIO--file-name) (BtSongIO.functions_details)] >> endobj 5873 0 obj << /Names [(BtSongIO.includes) 4797 0 R (BtSongIO.object-hierarchy) 4758 0 R (BtSongIO.other) 4757 0 R (BtSongIO.other_details) 4872 0 R (BtSongIO.properties) 4756 0 R (BtSongIO.property-details) 4931 0 R] /Limits [(BtSongIO.includes) (BtSongIO.property-details)] >> endobj 5874 0 obj << /Names [(BtSongIOBuzz) 5056 0 R (BtSongIOBuzz-struct) 5067 0 R (BtSongIOBuzz.description) 5064 0 R (BtSongIOBuzz.functions_details) 5065 0 R (BtSongIOBuzz.includes) 5063 0 R (BtSongIOBuzz.object-hierarchy) 5058 0 R] /Limits [(BtSongIOBuzz) (BtSongIOBuzz.object-hierarchy)] >> endobj 5875 0 obj << /Names [(BtSongIOBuzz.other) 5057 0 R (BtSongIOBuzz.other_details) 5066 0 R (BtSongIOClass) 4776 0 R (BtSongIOError) 4777 0 R (BtSongIOFormatInfo) 4778 0 R (BtSongIOInit) 4761 0 R] /Limits [(BtSongIOBuzz.other) (BtSongIOInit)] >> endobj 5876 0 obj << /Names [(BtSongIOModuleInfo) 4779 0 R (BtSongIONative) 4809 0 R (BtSongIONative-struct) 4957 0 R (BtSongIONative.description) 4954 0 R (BtSongIONative.functions_details) 4955 0 R (BtSongIONative.includes) 4953 0 R] /Limits [(BtSongIOModuleInfo) (BtSongIONative.includes)] >> endobj 5877 0 obj << /Names [(BtSongIONative.object-hierarchy) 4946 0 R (BtSongIONative.other) 4945 0 R (BtSongIONative.other_details) 4956 0 R (BtSongIONativeBZT) 4980 0 R (BtSongIONativeBZT-struct) 4999 0 R (BtSongIONativeBZT.description) 4990 0 R] /Limits [(BtSongIONative.object-hierarchy) (BtSongIONativeBZT.description)] >> endobj 5878 0 obj << /Names [(BtSongIONativeBZT.functions) 4981 0 R (BtSongIONativeBZT.functions_details) 4991 0 R (BtSongIONativeBZT.includes) 4989 0 R (BtSongIONativeBZT.object-hierarchy) 4983 0 R (BtSongIONativeBZT.other) 4982 0 R (BtSongIONativeBZT.other_details) 5014 0 R] /Limits [(BtSongIONativeBZT.functions) (BtSongIONativeBZT.other_details)] >> endobj 5879 0 obj << /Names [(BtSongIONativeBZTClass) 5000 0 R (BtSongIONativeClass) 4960 0 R (BtSongIONativeXML) 5030 0 R (BtSongIONativeXML-struct) 5042 0 R (BtSongIONativeXML.description) 5039 0 R (BtSongIONativeXML.functions_details) 5040 0 R] /Limits [(BtSongIONativeBZTClass) (BtSongIONativeXML.functions_details)] >> endobj 5880 0 obj << /Names [(BtSongIONativeXML.includes) 5038 0 R (BtSongIONativeXML.object-hierarchy) 5032 0 R (BtSongIONativeXML.other) 5031 0 R (BtSongIONativeXML.other_details) 5041 0 R (BtSongIONativeXMLClass) 5045 0 R (BtSongInfo) 1108 0 R] /Limits [(BtSongIONativeXML.includes) (BtSongInfo)] >> endobj 5881 0 obj << /Names [(BtSongInfo--author) 3650 0 R (BtSongInfo--bars) 3651 0 R (BtSongInfo--bpm) 2180 0 R (BtSongInfo--change-dts) 3652 0 R (BtSongInfo--create-dts) 3653 0 R (BtSongInfo--file-name) 3654 0 R] /Limits [(BtSongInfo--author) (BtSongInfo--file-name)] >> endobj 5882 0 obj << /Names [(BtSongInfo--genre) 3655 0 R (BtSongInfo--info) 3656 0 R (BtSongInfo--name) 3657 0 R (BtSongInfo--song) 3658 0 R (BtSongInfo--taglist) 3659 0 R (BtSongInfo--tick-duration) 3661 0 R] /Limits [(BtSongInfo--genre) (BtSongInfo--tick-duration)] >> endobj 5883 0 obj << /Names [(BtSongInfo--tpb) 2181 0 R (BtSongInfo-struct) 3662 0 R (BtSongInfo.description) 3642 0 R (BtSongInfo.functions) 3597 0 R (BtSongInfo.functions_details) 3668 0 R (BtSongInfo.implemented-interfaces) 3640 0 R] /Limits [(BtSongInfo--tpb) (BtSongInfo.implemented-interfaces)] >> endobj 5884 0 obj << /Names [(BtSongInfo.includes) 3641 0 R (BtSongInfo.object-hierarchy) 3636 0 R (BtSongInfo.other) 3635 0 R (BtSongInfo.other_details) 3712 0 R (BtSongInfo.properties) 3634 0 R (BtSongInfo.property-details) 3715 0 R] /Limits [(BtSongInfo.includes) (BtSongInfo.property-details)] >> endobj 5885 0 obj << /Names [(BtSourceMachine) 1109 0 R (BtSourceMachine-struct) 3758 0 R (BtSourceMachine.description) 3778 0 R (BtSourceMachine.functions) 3754 0 R (BtSourceMachine.functions_details) 3779 0 R (BtSourceMachine.implemented-interfaces) 3776 0 R] /Limits [(BtSourceMachine) (BtSourceMachine.implemented-interfaces)] >> endobj 5886 0 obj << /Names [(BtSourceMachine.includes) 3777 0 R (BtSourceMachine.object-hierarchy) 3756 0 R (BtSourceMachine.other) 3755 0 R (BtSourceMachine.other_details) 3857 0 R (BtSourceMachinePatternIndex) 3759 0 R (BtValueGroup) 2120 0 R] /Limits [(BtSourceMachine.includes) (BtValueGroup)] >> endobj 5887 0 obj << /Names [(BtValueGroup--length) 3922 0 R (BtValueGroup--parameter-group) 3923 0 R (BtValueGroup-group-changed) 3924 0 R (BtValueGroup-param-changed) 3925 0 R (BtValueGroup-struct) 3926 0 R (BtValueGroup.description) 3900 0 R] /Limits [(BtValueGroup--length) (BtValueGroup.description)] >> endobj 5888 0 obj << /Names [(BtValueGroup.functions) 3864 0 R (BtValueGroup.functions_details) 3933 0 R (BtValueGroup.includes) 3899 0 R (BtValueGroup.object-hierarchy) 3895 0 R (BtValueGroup.other) 3894 0 R (BtValueGroup.other_details) 4207 0 R] /Limits [(BtValueGroup.functions) (BtValueGroup.other_details)] >> endobj 5889 0 obj << /Names [(BtValueGroup.properties) 3892 0 R (BtValueGroup.property-details) 4210 0 R (BtValueGroup.signal-details) 4223 0 R (BtValueGroup.signals) 3893 0 R (BtWave) 1110 0 R (BtWave--channels) 4285 0 R] /Limits [(BtValueGroup.properties) (BtWave--channels)] >> endobj 5890 0 obj << /Names [(BtWave--index) 4286 0 R (BtWave--loop-mode) 4288 0 R (BtWave--name) 4289 0 R (BtWave--song) 4290 0 R (BtWave--uri) 4291 0 R (BtWave--volume) 4292 0 R] /Limits [(BtWave--index) (BtWave--volume)] >> endobj 5891 0 obj << /Names [(BtWave--wavelevels) 4293 0 R (BtWave-struct) 4294 0 R (BtWave.description) 4305 0 R (BtWave.functions) 4270 0 R (BtWave.functions_details) 4306 0 R (BtWave.implemented-interfaces) 4279 0 R] /Limits [(BtWave--wavelevels) (BtWave.implemented-interfaces)] >> endobj 5892 0 obj << /Names [(BtWave.includes) 4280 0 R (BtWave.object-hierarchy) 4273 0 R (BtWave.other) 4272 0 R (BtWave.other_details) 4331 0 R (BtWave.properties) 4271 0 R (BtWave.property-details) 4337 0 R] /Limits [(BtWave.includes) (BtWave.property-details)] >> endobj 5893 0 obj << /Names [(BtWaveLoopMode) 4287 0 R (BtWavelevel) 1111 0 R (BtWavelevel--data) 4393 0 R (BtWavelevel--length) 4394 0 R (BtWavelevel--loop-end) 4395 0 R (BtWavelevel--loop-start) 4396 0 R] /Limits [(BtWaveLoopMode) (BtWavelevel--loop-start)] >> endobj 5894 0 obj << /Names [(BtWavelevel--rate) 4397 0 R (BtWavelevel--root-note) 4399 0 R (BtWavelevel--song) 4400 0 R (BtWavelevel--wave) 4401 0 R (BtWavelevel-struct) 4402 0 R (BtWavelevel.description) 4412 0 R] /Limits [(BtWavelevel--rate) (BtWavelevel.description)] >> endobj 5895 0 obj << /Names [(BtWavelevel.functions) 4385 0 R (BtWavelevel.functions_details) 4413 0 R (BtWavelevel.implemented-interfaces) 4410 0 R (BtWavelevel.includes) 4411 0 R (BtWavelevel.object-hierarchy) 4388 0 R (BtWavelevel.other) 4387 0 R] /Limits [(BtWavelevel.functions) (BtWavelevel.other)] >> endobj 5896 0 obj << /Names [(BtWavelevel.other_details) 4433 0 R (BtWavelevel.properties) 4386 0 R (BtWavelevel.property-details) 4436 0 R (BtWavelevels) 4281 0 R (BtWaves) 4526 0 R (BtWavetable) 1112 0 R] /Limits [(BtWavelevel.other_details) (BtWavetable)] >> endobj 5897 0 obj << /Names [(BtWavetable--missing-waves) 4491 0 R (BtWavetable--song) 4492 0 R (BtWavetable--waves) 4493 0 R (BtWavetable-struct) 4525 0 R (BtWavetable-wave-added) 4494 0 R (BtWavetable-wave-removed) 4495 0 R] /Limits [(BtWavetable--missing-waves) (BtWavetable-wave-removed)] >> endobj 5898 0 obj << /Names [(BtWavetable.description) 4514 0 R (BtWavetable.functions) 4482 0 R (BtWavetable.functions_details) 4515 0 R (BtWavetable.implemented-interfaces) 4512 0 R (BtWavetable.includes) 4513 0 R (BtWavetable.object-hierarchy) 4508 0 R] /Limits [(BtWavetable.description) (BtWavetable.object-hierarchy)] >> endobj 5899 0 obj << /Names [(BtWavetable.other) 4485 0 R (BtWavetable.other_details) 4552 0 R (BtWavetable.properties) 4483 0 R (BtWavetable.property-details) 4555 0 R (BtWavetable.signal-details) 4562 0 R (BtWavetable.signals) 4484 0 R] /Limits [(BtWavetable.other) (BtWavetable.signals)] >> endobj 5900 0 obj << /Names [(BtWire) 1113 0 R (BtWire--analyzers) 4614 0 R (BtWire--construction-error) 4615 0 R (BtWire--dst) 4616 0 R (BtWire--gain) 4617 0 R (BtWire--num-params) 4618 0 R] /Limits [(BtWire) (BtWire--num-params)] >> endobj 5901 0 obj << /Names [(BtWire--pan) 4619 0 R (BtWire--pretty-name) 4620 0 R (BtWire--properties) 4621 0 R (BtWire--song) 4652 0 R (BtWire--src) 4653 0 R (BtWire-struct) 4655 0 R] /Limits [(BtWire--pan) (BtWire-struct)] >> endobj 5902 0 obj << /Names [(BtWire.description) 4646 0 R (BtWire.functions) 4608 0 R (BtWire.functions_details) 4648 0 R (BtWire.implemented-interfaces) 4644 0 R (BtWire.includes) 4645 0 R (BtWire.object-hierarchy) 4636 0 R] /Limits [(BtWire.description) (BtWire.object-hierarchy)] >> endobj 5903 0 obj << /Names [(BtWire.other) 4635 0 R (BtWire.other_details) 4689 0 R (BtWire.properties) 4609 0 R (BtWire.property-details) 4694 0 R (BtWires) 3094 0 R (Doc-Start) 8 0 R] /Limits [(BtWire.other) (Doc-Start)] >> endobj 5904 0 obj << /Names [(FALSE:CAPS) 322 0 R (G-OBJECT-LOG-REF-COUNT:CAPS) 236 0 R (G-OBJECT-REF-COUNT-FMT:CAPS) 296 0 R (G-OBJECT-REF-COUNT:CAPS) 235 0 R (G-PRIORITY-DEFAULT-IDLE:CAPS) 393 0 R (G-SIGNAL-NO-HOOKS:CAPS) 1507 0 R] /Limits [(FALSE:CAPS) (G-SIGNAL-NO-HOOKS:CAPS)] >> endobj 5905 0 obj << /Names [(GError) 347 0 R (GHashTable) 724 0 R (GIOErrorEnum) 4896 0 R (GList) 250 0 R (GObject) 142 0 R (GObjectClass) 3548 0 R] /Limits [(GError) (GObjectClass)] >> endobj 5906 0 obj << /Names [(GObjectClass.dispose) 352 0 R (GObjectClass.get-property) 350 0 R (GObjectClass.set-property) 351 0 R (GObjects) 1987 0 R (GOptionGroup) 229 0 R (GParamSpec) 1008 0 R] /Limits [(GObjectClass.dispose) (GParamSpec)] >> endobj 5907 0 obj << /Names [(GParamSpecs) 1988 0 R (GST-STATE-READY:CAPS) 505 0 R (GType) 237 0 R (GValue) 553 0 R (GValues) 2179 0 R (GstBin) 580 0 R] /Limits [(GParamSpecs) (GstBin)] >> endobj 5908 0 obj << /Names [(GstBtNote) 4398 0 R (GstBtTempo) 3309 0 R (GstChildProxy) 1511 0 R (GstClockTime) 248 0 R (GstElement) 656 0 R (GstElements) 1529 0 R] /Limits [(GstBtNote) (GstElements)] >> endobj 5909 0 obj << /Names [(GstPad) 967 0 R (GstPadTemplate) 255 0 R (GstPipeline) 629 0 R (GstToc) 2755 0 R (Item.1) 122 0 R (Item.2) 123 0 R] /Limits [(GstPad) (Item.2)] >> endobj 5910 0 obj << /Names [(Item.3) 125 0 R (Item.4) 126 0 R (NULL:CAPS) 297 0 R (TRUE:CAPS) 348 0 R (annotation-glossary) 5126 0 R (annotation-glossterm-allow-none) 5127 0 R] /Limits [(Item.3) (annotation-glossterm-allow-none)] >> endobj 5911 0 obj << /Names [(annotation-glossterm-array) 5128 0 R (annotation-glossterm-element-type) 5129 0 R (annotation-glossterm-inout) 5130 0 R (annotation-glossterm-out) 5131 0 R (annotation-glossterm-scope\040async) 5132 0 R (annotation-glossterm-skip) 5133 0 R] /Limits [(annotation-glossterm-array) (annotation-glossterm-skip)] >> endobj 5912 0 obj << /Names [(annotation-glossterm-transfer\040container) 5138 0 R (annotation-glossterm-transfer\040full) 5139 0 R (annotation-glossterm-transfer\040none) 5140 0 R (annotation-glossterm-type) 5141 0 R (api-index-0.11) 2343 0 R (api-index-0.3) 2202 0 R] /Limits [(annotation-glossterm-transfer\040container) (api-index-0.3)] >> endobj 5913 0 obj << /Names [(api-index-0.5) 2222 0 R (api-index-0.6) 504 0 R (api-index-0.7) 1671 0 R (bt-audio-session-new) 631 0 R (bt-bin-activate-tee-chain) 246 0 R (bt-bin-deactivate-tee-chain) 247 0 R] /Limits [(api-index-0.5) (bt-bin-deactivate-tee-chain)] >> endobj 5914 0 obj << /Names [(bt-child-proxy-get) 931 0 R (bt-child-proxy-get-child-by-index) 932 0 R (bt-child-proxy-get-child-by-name) 933 0 R (bt-child-proxy-get-children-count) 934 0 R (bt-child-proxy-get-property) 935 0 R (bt-child-proxy-get-valist) 936 0 R] /Limits [(bt-child-proxy-get) (bt-child-proxy-get-valist)] >> endobj 5915 0 obj << /Names [(bt-child-proxy-lookup) 937 0 R (bt-child-proxy-set) 938 0 R (bt-child-proxy-set-property) 939 0 R (bt-child-proxy-set-valist) 940 0 R (bt-cmd-pattern-control-source-new) 1283 0 R (bt-cmd-pattern-new) 1206 0 R] /Limits [(bt-child-proxy-lookup) (bt-cmd-pattern-new)] >> endobj 5916 0 obj << /Names [(bt-cpu-load-get-current) 223 0 R (bt-deinit) 231 0 R (bt-g-object-idle-add) 239 0 R (bt-g-signal-connect) 241 0 R (bt-g-type-get-base-type) 238 0 R (bt-gst-analyzer-get-waittime) 249 0 R] /Limits [(bt-cpu-load-get-current) (bt-gst-analyzer-get-waittime)] >> endobj 5917 0 obj << /Names [(bt-gst-check-core-elements) 251 0 R (bt-gst-check-elements) 252 0 R (bt-gst-debug-pad-link-return) 254 0 R (bt-gst-element-factory-can-sink-media-type) 257 0 R (bt-gst-element-factory-get-pad-template) 256 0 R (bt-gst-level-message-get-aggregated-field) 262 0 R] /Limits [(bt-gst-check-core-elements) (bt-gst-level-message-get-aggregated-field)] >> endobj 5918 0 obj << /Names [(bt-gst-registry-get-element-factories-matching-all-categories) 258 0 R (bt-gst-registry-get-element-names-matching-all-categories) 259 0 R (bt-gst-try-element) 260 0 R (bt-init) 225 0 R (bt-init-add-option-groups) 226 0 R (bt-init-check) 228 0 R] /Limits [(bt-gst-registry-get-element-factories-matching-all-categories) (bt-init-check)] >> endobj 5919 0 obj << /Names [(bt-init-get-option-group) 230 0 R (bt-machine-activate-adder) 1420 0 R (bt-machine-activate-spreader) 1421 0 R (bt-machine-add-pattern) 1422 0 R (bt-machine-bind-parameter-control) 1423 0 R (bt-machine-bind-poly-parameter-control) 1424 0 R] /Limits [(bt-init-get-option-group) (bt-machine-bind-poly-parameter-control)] >> endobj 5920 0 obj << /Names [(bt-machine-enable-input-gain) 1425 0 R (bt-machine-enable-input-post-level) 1426 0 R (bt-machine-enable-input-pre-level) 1427 0 R (bt-machine-enable-output-gain) 1428 0 R (bt-machine-enable-output-post-level) 1429 0 R (bt-machine-enable-output-pre-level) 1430 0 R] /Limits [(bt-machine-enable-input-gain) (bt-machine-enable-output-pre-level)] >> endobj 5921 0 obj << /Names [(bt-machine-get-global-param-group) 1432 0 R (bt-machine-get-pattern-by-index) 1433 0 R (bt-machine-get-pattern-by-name) 1434 0 R (bt-machine-get-prefs-param-group) 1435 0 R (bt-machine-get-unique-pattern-name) 1436 0 R (bt-machine-get-voice-param-group) 1437 0 R] /Limits [(bt-machine-get-global-param-group) (bt-machine-get-voice-param-group)] >> endobj 5922 0 obj << /Names [(bt-machine-get-wire-by-dst-machine) 1438 0 R (bt-machine-handles-waves) 1439 0 R (bt-machine-has-active-adder) 1440 0 R (bt-machine-has-active-spreader) 1441 0 R (bt-machine-has-patterns) 1442 0 R (bt-machine-is-polyphonic) 1443 0 R] /Limits [(bt-machine-get-wire-by-dst-machine) (bt-machine-is-polyphonic)] >> endobj 5923 0 obj << /Names [(bt-machine-randomize-parameters) 1444 0 R (bt-machine-remove-pattern) 1445 0 R (bt-machine-reset-parameters) 1446 0 R (bt-machine-set-param-defaults) 1447 0 R (bt-machine-unbind-parameter-control) 1448 0 R (bt-machine-unbind-parameter-controls) 1449 0 R] /Limits [(bt-machine-randomize-parameters) (bt-machine-unbind-parameter-controls)] >> endobj 5924 0 obj << /Names [(bt-major-version) 293 0 R (bt-micro-version) 294 0 R (bt-minor-version) 295 0 R (bt-parameter-group-describe-param-value) 1844 0 R (bt-parameter-group-get-param-details) 1845 0 R (bt-parameter-group-get-param-index) 1877 0 R] /Limits [(bt-major-version) (bt-parameter-group-get-param-index)] >> endobj 5925 0 obj << /Names [(bt-parameter-group-get-param-name) 1878 0 R (bt-parameter-group-get-param-no-value) 1879 0 R (bt-parameter-group-get-param-parent) 1880 0 R (bt-parameter-group-get-param-spec) 1881 0 R (bt-parameter-group-get-param-type) 1882 0 R (bt-parameter-group-get-trigger-param-index) 1883 0 R] /Limits [(bt-parameter-group-get-param-name) (bt-parameter-group-get-trigger-param-index)] >> endobj 5926 0 obj << /Names [(bt-parameter-group-get-wave-param-index) 1884 0 R (bt-parameter-group-is-param-no-value) 1885 0 R (bt-parameter-group-is-param-trigger) 1886 0 R (bt-parameter-group-new) 1887 0 R (bt-parameter-group-randomize-values) 1888 0 R (bt-parameter-group-reset-values) 1889 0 R] /Limits [(bt-parameter-group-get-wave-param-index) (bt-parameter-group-reset-values)] >> endobj 5927 0 obj << /Names [(bt-parameter-group-set-param-default) 1890 0 R (bt-parameter-group-set-param-defaults) 1891 0 R (bt-parameter-group-set-param-value) 1892 0 R (bt-pattern-blend-columns) 2113 0 R (bt-pattern-clear-columns) 2114 0 R (bt-pattern-control-source-new) 2505 0 R] /Limits [(bt-parameter-group-set-param-default) (bt-pattern-control-source-new)] >> endobj 5928 0 obj << /Names [(bt-pattern-copy) 2115 0 R (bt-pattern-delete-row) 2116 0 R (bt-pattern-flip-columns) 2117 0 R (bt-pattern-get-global-event) 2118 0 R (bt-pattern-get-global-event-data) 2119 0 R (bt-pattern-get-global-group) 2121 0 R] /Limits [(bt-pattern-copy) (bt-pattern-get-global-group)] >> endobj 5929 0 obj << /Names [(bt-pattern-get-group-by-parameter-group) 2122 0 R (bt-pattern-get-voice-event) 2123 0 R (bt-pattern-get-voice-event-data) 2124 0 R (bt-pattern-get-voice-group) 2125 0 R (bt-pattern-get-wire-event) 2126 0 R (bt-pattern-get-wire-event-data) 2127 0 R] /Limits [(bt-pattern-get-group-by-parameter-group) (bt-pattern-get-wire-event-data)] >> endobj 5930 0 obj << /Names [(bt-pattern-get-wire-group) 2128 0 R (bt-pattern-insert-row) 2129 0 R (bt-pattern-new) 1234 0 R (bt-pattern-randomize-columns) 2130 0 R (bt-pattern-range-randomize-columns) 2131 0 R (bt-pattern-serialize-columns) 2136 0 R] /Limits [(bt-pattern-get-wire-group) (bt-pattern-serialize-columns)] >> endobj 5931 0 obj << /Names [(bt-pattern-set-global-event) 2137 0 R (bt-pattern-set-voice-event) 2138 0 R (bt-pattern-set-wire-event) 2139 0 R (bt-pattern-test-global-event) 2140 0 R (bt-pattern-test-tick) 2141 0 R (bt-pattern-test-voice-event) 2142 0 R] /Limits [(bt-pattern-set-global-event) (bt-pattern-test-voice-event)] >> endobj 5932 0 obj << /Names [(bt-pattern-test-wire-event) 2143 0 R (bt-pattern-transpose-coarse-down-columns) 2132 0 R (bt-pattern-transpose-coarse-up-columns) 2133 0 R (bt-pattern-transpose-fine-down-columns) 2134 0 R (bt-pattern-transpose-fine-up-columns) 2135 0 R (bt-persistence-collect-hashtable-entries) 1088 0 R] /Limits [(bt-pattern-test-wire-event) (bt-persistence-collect-hashtable-entries)] >> endobj 5933 0 obj << /Names [(bt-persistence-load) 1095 0 R (bt-persistence-load-hashtable) 1096 0 R (bt-persistence-save) 1098 0 R (bt-persistence-save-hashtable) 1099 0 R (bt-persistence-save-list) 1100 0 R (bt-processor-machine-new) 2553 0 R] /Limits [(bt-persistence-load) (bt-processor-machine-new)] >> endobj 5934 0 obj << /Names [(bt-sequence-add-track) 2644 0 R (bt-sequence-delete-full-rows) 2645 0 R (bt-sequence-delete-rows) 2646 0 R (bt-sequence-get-label) 2647 0 R (bt-sequence-get-loop-length) 2648 0 R (bt-sequence-get-machine) 2649 0 R] /Limits [(bt-sequence-add-track) (bt-sequence-get-machine)] >> endobj 5935 0 obj << /Names [(bt-sequence-get-pattern) 2650 0 R (bt-sequence-get-tick-by-pattern) 2651 0 R (bt-sequence-get-track-by-machine) 2704 0 R (bt-sequence-insert-full-rows) 2705 0 R (bt-sequence-insert-rows) 2706 0 R (bt-sequence-is-pattern-used) 2707 0 R] /Limits [(bt-sequence-get-pattern) (bt-sequence-is-pattern-used)] >> endobj 5936 0 obj << /Names [(bt-sequence-limit-play-pos) 2708 0 R (bt-sequence-move-track-left) 2709 0 R (bt-sequence-move-track-right) 2710 0 R (bt-sequence-new) 2711 0 R (bt-sequence-remove-track-by-ix) 2712 0 R (bt-sequence-remove-track-by-machine) 2713 0 R] /Limits [(bt-sequence-limit-play-pos) (bt-sequence-remove-track-by-machine)] >> endobj 5937 0 obj << /Names [(bt-sequence-set-label) 2714 0 R (bt-sequence-set-pattern) 2715 0 R (bt-sequence-set-pattern-quick) 2716 0 R (bt-settings-determine-audiosink-name) 723 0 R (bt-settings-format-ic-playback-spec) 726 0 R (bt-settings-make) 727 0 R] /Limits [(bt-sequence-set-label) (bt-settings-make)] >> endobj 5938 0 obj << /Names [(bt-settings-parse-ic-playback-spec) 725 0 R (bt-setup-add-machine) 2584 0 R (bt-setup-add-wire) 3033 0 R (bt-setup-get-machine-by-id) 3034 0 R (bt-setup-get-machine-by-type) 3035 0 R (bt-setup-get-machines-by-type) 3036 0 R] /Limits [(bt-settings-parse-ic-playback-spec) (bt-setup-get-machines-by-type)] >> endobj 5939 0 obj << /Names [(bt-setup-get-unique-machine-id) 3037 0 R (bt-setup-get-wire-by-dst-machine) 3038 0 R (bt-setup-get-wire-by-machines) 3039 0 R (bt-setup-get-wire-by-src-machine) 3040 0 R (bt-setup-get-wires-by-dst-machine) 3041 0 R (bt-setup-get-wires-by-src-machine) 3042 0 R] /Limits [(bt-setup-get-unique-machine-id) (bt-setup-get-wires-by-src-machine)] >> endobj 5940 0 obj << /Names [(bt-setup-new) 3043 0 R (bt-setup-remember-missing-machine) 3044 0 R (bt-setup-remove-machine) 3045 0 R (bt-setup-remove-wire) 3046 0 R (bt-sink-bin-is-record-format-supported) 3299 0 R (bt-sink-machine-new) 3377 0 R] /Limits [(bt-setup-new) (bt-sink-machine-new)] >> endobj 5941 0 obj << /Names [(bt-song-continue) 3455 0 R (bt-song-info-get-change-dts-in-local-tz) 3644 0 R (bt-song-info-get-seconds-since-last-saved) 3645 0 R (bt-song-info-new) 3643 0 R (bt-song-info-tick-to-m-s-ms) 3649 0 R (bt-song-info-tick-to-time) 3646 0 R] /Limits [(bt-song-continue) (bt-song-info-tick-to-time)] >> endobj 5942 0 obj << /Names [(bt-song-info-time-to-m-s-ms) 3648 0 R (bt-song-info-time-to-tick) 3647 0 R (bt-song-io-from-data) 4762 0 R (bt-song-io-from-file) 4763 0 R (bt-song-io-get-module-info-list) 4764 0 R (bt-song-io-load) 4765 0 R] /Limits [(bt-song-info-time-to-m-s-ms) (bt-song-io-load)] >> endobj 5943 0 obj << /Names [(bt-song-io-native-bzt-copy-from-uri) 4992 0 R (bt-song-io-native-bzt-copy-to-fd) 4998 0 R (bt-song-io-native-module-info) 4965 0 R (bt-song-io-save) 4766 0 R (bt-song-io-virtual-load) 4767 0 R (bt-song-io-virtual-save) 4768 0 R] /Limits [(bt-song-io-native-bzt-copy-from-uri) (bt-song-io-virtual-save)] >> endobj 5944 0 obj << /Names [(bt-song-new) 628 0 R (bt-song-pause) 3456 0 R (bt-song-play) 3457 0 R (bt-song-stop) 3458 0 R (bt-song-update-playback-position) 3459 0 R (bt-source-machine-new) 3757 0 R] /Limits [(bt-song-new) (bt-source-machine-new)] >> endobj 5945 0 obj << /Names [(bt-str-format-double) 284 0 R (bt-str-format-enum) 285 0 R (bt-str-format-gvalue) 291 0 R (bt-str-format-long) 286 0 R (bt-str-format-uchar) 287 0 R (bt-str-format-ulong) 288 0 R] /Limits [(bt-str-format-double) (bt-str-format-ulong)] >> endobj 5946 0 obj << /Names [(bt-str-parse-enum) 290 0 R (bt-str-parse-gvalue) 292 0 R (bt-value-group-blend-column) 3865 0 R (bt-value-group-blend-columns) 3866 0 R (bt-value-group-clear-column) 3868 0 R (bt-value-group-clear-columns) 3869 0 R] /Limits [(bt-str-parse-enum) (bt-value-group-clear-columns)] >> endobj 5947 0 obj << /Names [(bt-value-group-copy) 3867 0 R (bt-value-group-delete-full-row) 3870 0 R (bt-value-group-delete-row) 3871 0 R (bt-value-group-deserialize-column) 3872 0 R (bt-value-group-flip-column) 3873 0 R (bt-value-group-flip-columns) 3874 0 R] /Limits [(bt-value-group-copy) (bt-value-group-flip-columns)] >> endobj 5948 0 obj << /Names [(bt-value-group-get-event) 3875 0 R (bt-value-group-get-event-data) 3876 0 R (bt-value-group-insert-full-row) 3902 0 R (bt-value-group-insert-row) 3903 0 R (bt-value-group-new) 3904 0 R (bt-value-group-randomize-column) 3905 0 R] /Limits [(bt-value-group-get-event) (bt-value-group-randomize-column)] >> endobj 5949 0 obj << /Names [(bt-value-group-randomize-columns) 3906 0 R (bt-value-group-range-randomize-column) 3907 0 R (bt-value-group-range-randomize-columns) 3908 0 R (bt-value-group-serialize-column) 3917 0 R (bt-value-group-serialize-columns) 3918 0 R (bt-value-group-set-event) 3919 0 R] /Limits [(bt-value-group-randomize-columns) (bt-value-group-set-event)] >> endobj 5950 0 obj << /Names [(bt-value-group-test-event) 3920 0 R (bt-value-group-test-tick) 3921 0 R (bt-value-group-transpose-coarse-down-column) 3909 0 R (bt-value-group-transpose-coarse-down-columns) 3910 0 R (bt-value-group-transpose-coarse-up-column) 3911 0 R (bt-value-group-transpose-coarse-up-columns) 3912 0 R] /Limits [(bt-value-group-test-event) (bt-value-group-transpose-coarse-up-columns)] >> endobj 5951 0 obj << /Names [(bt-value-group-transpose-fine-down-column) 3913 0 R (bt-value-group-transpose-fine-down-columns) 3914 0 R (bt-value-group-transpose-fine-up-column) 3915 0 R (bt-value-group-transpose-fine-up-columns) 3916 0 R (bt-wave-add-wavelevel) 4282 0 R (bt-wave-get-level-by-index) 4283 0 R] /Limits [(bt-value-group-transpose-fine-down-column) (bt-wave-get-level-by-index)] >> endobj 5952 0 obj << /Names [(bt-wave-new) 4284 0 R (bt-wavelevel-new) 4321 0 R (bt-wavetable-add-wave) 4486 0 R (bt-wavetable-get-wave-by-index) 4487 0 R (bt-wavetable-new) 4488 0 R (bt-wavetable-remember-missing-wave) 4489 0 R] /Limits [(bt-wave-new) (bt-wavetable-remember-missing-wave)] >> endobj 5953 0 obj << /Names [(bt-wavetable-remove-wave) 4490 0 R (bt-wire-can-link) 4613 0 R (bt-wire-get-param-group) 4610 0 R (bt-wire-new) 4611 0 R (bt-wire-reconnect) 4612 0 R (buzztrax-core-libbtcore) 218 0 R] /Limits [(bt-wavetable-remove-wave) (buzztrax-core-libbtcore)] >> endobj 5954 0 obj << /Names [(buzztrax-core-libbtcore.description) 276 0 R (buzztrax-core-libbtcore.functions) 219 0 R (buzztrax-core-libbtcore.functions_details) 277 0 R (buzztrax-core-libbtcore.includes) 275 0 R (buzztrax-core-libbtcore.other) 274 0 R (buzztrax-core-libbtcore.other_details) 564 0 R] /Limits [(buzztrax-core-libbtcore.description) (buzztrax-core-libbtcore.other_details)] >> endobj 5955 0 obj << /Names [(chapter*.1) 51 0 R (chapter*.2) 112 0 R (chapter.1) 54 0 R (chapter.2) 56 0 R (chapter.3) 63 0 R (chapter.4) 97 0 R] /Limits [(chapter*.1) (chapter.4)] >> endobj 5956 0 obj << /Names [(chapter.5) 104 0 R (chapter.6) 105 0 R (chapter.7) 106 0 R (conventions) 121 0 R (g-hash-table-foreach) 1114 0 R (g-idle-add-full) 392 0 R] /Limits [(chapter.5) (g-idle-add-full)] >> endobj 5957 0 obj << /Names [(g-object-add-weak-pointer) 422 0 R (g-object-get) 795 0 R (g-object-ref) 420 0 R (g-object-remove-weak-pointer) 423 0 R (g-object-set) 796 0 R (g-object-try-ref) 242 0 R] /Limits [(g-object-add-weak-pointer) (g-object-try-ref)] >> endobj 5958 0 obj << /Names [(g-object-try-unref) 243 0 R (g-object-try-weak-ref) 244 0 R (g-object-try-weak-unref) 245 0 R (g-object-unref) 421 0 R (g-option-context-add-group) 349 0 R (g-signal-connect) 394 0 R] /Limits [(g-object-try-unref) (g-signal-connect)] >> endobj 5959 0 obj << /Names [(g-type-parent) 372 0 R (g-value-unset) 1007 0 R (gboolean) 227 0 R (gchar) 253 0 R (gdouble) 261 0 R (gint) 289 0 R] /Limits [(g-type-parent) (gint)] >> endobj 5960 0 obj << /Names [(glong) 1876 0 R (gpointer) 1292 0 R (gst-control-source-bind) 1313 0 R (gst-plugin-feature-list-free) 503 0 R (gtk-init) 321 0 R (guint) 222 0 R] /Limits [(glong) (guint)] >> endobj 5961 0 obj << /Names [(guint64) 3660 0 R (gulong) 240 0 R (index) 9 0 R (libbtcore) 141 0 R (lstlisting.2.-1) 278 0 R (lstlisting.2.-10) 343 0 R] /Limits [(guint64) (lstlisting.2.-10)] >> endobj 5962 0 obj << /Names [(lstlisting.2.-100) 1001 0 R (lstlisting.2.-101) 1014 0 R (lstlisting.2.-102) 1019 0 R (lstlisting.2.-103) 1024 0 R (lstlisting.2.-104) 1035 0 R (lstlisting.2.-105) 1037 0 R] /Limits [(lstlisting.2.-100) (lstlisting.2.-105)] >> endobj 5963 0 obj << /Names [(lstlisting.2.-106) 1081 0 R (lstlisting.2.-107) 1089 0 R (lstlisting.2.-108) 1124 0 R (lstlisting.2.-109) 1131 0 R (lstlisting.2.-11) 363 0 R (lstlisting.2.-110) 1135 0 R] /Limits [(lstlisting.2.-106) (lstlisting.2.-110)] >> endobj 5964 0 obj << /Names [(lstlisting.2.-111) 1150 0 R (lstlisting.2.-112) 1154 0 R (lstlisting.2.-113) 1165 0 R (lstlisting.2.-114) 1167 0 R (lstlisting.2.-12) 365 0 R (lstlisting.2.-13) 367 0 R] /Limits [(lstlisting.2.-111) (lstlisting.2.-13)] >> endobj 5965 0 obj << /Names [(lstlisting.2.-14) 369 0 R (lstlisting.2.-15) 381 0 R (lstlisting.2.-16) 386 0 R (lstlisting.2.-17) 408 0 R (lstlisting.2.-18) 410 0 R (lstlisting.2.-19) 412 0 R] /Limits [(lstlisting.2.-14) (lstlisting.2.-19)] >> endobj 5966 0 obj << /Names [(lstlisting.2.-2) 280 0 R (lstlisting.2.-20) 414 0 R (lstlisting.2.-21) 416 0 R (lstlisting.2.-22) 432 0 R (lstlisting.2.-23) 438 0 R (lstlisting.2.-24) 450 0 R] /Limits [(lstlisting.2.-2) (lstlisting.2.-24)] >> endobj 5967 0 obj << /Names [(lstlisting.2.-25) 453 0 R (lstlisting.2.-26) 456 0 R (lstlisting.2.-27) 468 0 R (lstlisting.2.-28) 473 0 R (lstlisting.2.-29) 478 0 R (lstlisting.2.-3) 282 0 R] /Limits [(lstlisting.2.-25) (lstlisting.2.-3)] >> endobj 5968 0 obj << /Names [(lstlisting.2.-30) 492 0 R (lstlisting.2.-31) 496 0 R (lstlisting.2.-32) 500 0 R (lstlisting.2.-33) 514 0 R (lstlisting.2.-34) 517 0 R (lstlisting.2.-35) 525 0 R] /Limits [(lstlisting.2.-30) (lstlisting.2.-35)] >> endobj 5969 0 obj << /Names [(lstlisting.2.-36) 528 0 R (lstlisting.2.-37) 531 0 R (lstlisting.2.-38) 542 0 R (lstlisting.2.-39) 546 0 R (lstlisting.2.-4) 308 0 R (lstlisting.2.-40) 549 0 R] /Limits [(lstlisting.2.-36) (lstlisting.2.-40)] >> endobj 5970 0 obj << /Names [(lstlisting.2.-41) 565 0 R (lstlisting.2.-42) 567 0 R (lstlisting.2.-43) 569 0 R (lstlisting.2.-44) 571 0 R (lstlisting.2.-45) 576 0 R (lstlisting.2.-46) 610 0 R] /Limits [(lstlisting.2.-41) (lstlisting.2.-46)] >> endobj 5971 0 obj << /Names [(lstlisting.2.-47) 617 0 R (lstlisting.2.-48) 621 0 R (lstlisting.2.-49) 623 0 R (lstlisting.2.-5) 313 0 R (lstlisting.2.-50) 642 0 R (lstlisting.2.-51) 648 0 R] /Limits [(lstlisting.2.-47) (lstlisting.2.-51)] >> endobj 5972 0 obj << /Names [(lstlisting.2.-52) 653 0 R (lstlisting.2.-53) 713 0 R (lstlisting.2.-54) 715 0 R (lstlisting.2.-55) 717 0 R (lstlisting.2.-56) 719 0 R (lstlisting.2.-57) 758 0 R] /Limits [(lstlisting.2.-52) (lstlisting.2.-57)] >> endobj 5973 0 obj << /Names [(lstlisting.2.-58) 802 0 R (lstlisting.2.-59) 807 0 R (lstlisting.2.-6) 316 0 R (lstlisting.2.-60) 810 0 R (lstlisting.2.-61) 818 0 R (lstlisting.2.-62) 822 0 R] /Limits [(lstlisting.2.-58) (lstlisting.2.-62)] >> endobj 5974 0 obj << /Names [(lstlisting.2.-63) 825 0 R (lstlisting.2.-64) 827 0 R (lstlisting.2.-65) 829 0 R (lstlisting.2.-66) 835 0 R (lstlisting.2.-67) 837 0 R (lstlisting.2.-68) 839 0 R] /Limits [(lstlisting.2.-63) (lstlisting.2.-68)] >> endobj 5975 0 obj << /Names [(lstlisting.2.-69) 841 0 R (lstlisting.2.-7) 335 0 R (lstlisting.2.-70) 843 0 R (lstlisting.2.-71) 845 0 R (lstlisting.2.-72) 852 0 R (lstlisting.2.-73) 854 0 R] /Limits [(lstlisting.2.-69) (lstlisting.2.-73)] >> endobj 5976 0 obj << /Names [(lstlisting.2.-74) 856 0 R (lstlisting.2.-75) 858 0 R (lstlisting.2.-76) 860 0 R (lstlisting.2.-77) 862 0 R (lstlisting.2.-78) 868 0 R (lstlisting.2.-79) 870 0 R] /Limits [(lstlisting.2.-74) (lstlisting.2.-79)] >> endobj 5977 0 obj << /Names [(lstlisting.2.-8) 338 0 R (lstlisting.2.-80) 872 0 R (lstlisting.2.-81) 874 0 R (lstlisting.2.-82) 876 0 R (lstlisting.2.-83) 878 0 R (lstlisting.2.-84) 884 0 R] /Limits [(lstlisting.2.-8) (lstlisting.2.-84)] >> endobj 5978 0 obj << /Names [(lstlisting.2.-85) 886 0 R (lstlisting.2.-86) 888 0 R (lstlisting.2.-87) 890 0 R (lstlisting.2.-88) 892 0 R (lstlisting.2.-89) 894 0 R (lstlisting.2.-9) 341 0 R] /Limits [(lstlisting.2.-85) (lstlisting.2.-9)] >> endobj 5979 0 obj << /Names [(lstlisting.2.-90) 922 0 R (lstlisting.2.-91) 924 0 R (lstlisting.2.-92) 926 0 R (lstlisting.2.-93) 952 0 R (lstlisting.2.-94) 958 0 R (lstlisting.2.-95) 963 0 R] /Limits [(lstlisting.2.-90) (lstlisting.2.-95)] >> endobj 5980 0 obj << /Names [(lstlisting.2.-96) 974 0 R (lstlisting.2.-97) 978 0 R (lstlisting.2.-98) 981 0 R (lstlisting.2.-99) 996 0 R (lstlisting.3.-115) 1199 0 R (lstlisting.3.-116) 1224 0 R] /Limits [(lstlisting.2.-96) (lstlisting.3.-116)] >> endobj 5981 0 obj << /Names [(lstlisting.3.-117) 1230 0 R (lstlisting.3.-118) 1246 0 R (lstlisting.3.-119) 1248 0 R (lstlisting.3.-120) 1250 0 R (lstlisting.3.-121) 1252 0 R (lstlisting.3.-122) 1274 0 R] /Limits [(lstlisting.3.-117) (lstlisting.3.-122)] >> endobj 5982 0 obj << /Names [(lstlisting.3.-123) 1284 0 R (lstlisting.3.-124) 1303 0 R (lstlisting.3.-125) 1306 0 R (lstlisting.3.-126) 1308 0 R (lstlisting.3.-127) 1310 0 R (lstlisting.3.-128) 1416 0 R] /Limits [(lstlisting.3.-123) (lstlisting.3.-128)] >> endobj 5983 0 obj << /Names [(lstlisting.3.-129) 1477 0 R (lstlisting.3.-130) 1523 0 R (lstlisting.3.-131) 1526 0 R (lstlisting.3.-132) 1536 0 R (lstlisting.3.-133) 1540 0 R (lstlisting.3.-134) 1547 0 R] /Limits [(lstlisting.3.-129) (lstlisting.3.-134)] >> endobj 5984 0 obj << /Names [(lstlisting.3.-135) 1562 0 R (lstlisting.3.-136) 1565 0 R (lstlisting.3.-137) 1568 0 R (lstlisting.3.-138) 1581 0 R (lstlisting.3.-139) 1584 0 R (lstlisting.3.-140) 1587 0 R] /Limits [(lstlisting.3.-135) (lstlisting.3.-140)] >> endobj 5985 0 obj << /Names [(lstlisting.3.-141) 1603 0 R (lstlisting.3.-142) 1606 0 R (lstlisting.3.-143) 1610 0 R (lstlisting.3.-144) 1622 0 R (lstlisting.3.-145) 1625 0 R (lstlisting.3.-146) 1640 0 R] /Limits [(lstlisting.3.-141) (lstlisting.3.-146)] >> endobj 5986 0 obj << /Names [(lstlisting.3.-147) 1644 0 R (lstlisting.3.-148) 1648 0 R (lstlisting.3.-149) 1662 0 R (lstlisting.3.-150) 1665 0 R (lstlisting.3.-151) 1668 0 R (lstlisting.3.-152) 1678 0 R] /Limits [(lstlisting.3.-147) (lstlisting.3.-152)] >> endobj 5987 0 obj << /Names [(lstlisting.3.-153) 1681 0 R (lstlisting.3.-154) 1684 0 R (lstlisting.3.-155) 1688 0 R (lstlisting.3.-156) 1699 0 R (lstlisting.3.-157) 1702 0 R (lstlisting.3.-158) 1707 0 R] /Limits [(lstlisting.3.-153) (lstlisting.3.-158)] >> endobj 5988 0 obj << /Names [(lstlisting.3.-159) 1711 0 R (lstlisting.3.-160) 1722 0 R (lstlisting.3.-161) 1737 0 R (lstlisting.3.-162) 1743 0 R (lstlisting.3.-163) 1745 0 R (lstlisting.3.-164) 1747 0 R] /Limits [(lstlisting.3.-159) (lstlisting.3.-164)] >> endobj 5989 0 obj << /Names [(lstlisting.3.-165) 1749 0 R (lstlisting.3.-166) 1751 0 R (lstlisting.3.-167) 1753 0 R (lstlisting.3.-168) 1759 0 R (lstlisting.3.-169) 1761 0 R (lstlisting.3.-170) 1763 0 R] /Limits [(lstlisting.3.-165) (lstlisting.3.-170)] >> endobj 5990 0 obj << /Names [(lstlisting.3.-171) 1765 0 R (lstlisting.3.-172) 1767 0 R (lstlisting.3.-173) 1769 0 R (lstlisting.3.-174) 1771 0 R (lstlisting.3.-175) 1777 0 R (lstlisting.3.-176) 1779 0 R] /Limits [(lstlisting.3.-171) (lstlisting.3.-176)] >> endobj 5991 0 obj << /Names [(lstlisting.3.-177) 1781 0 R (lstlisting.3.-178) 1783 0 R (lstlisting.3.-179) 1785 0 R (lstlisting.3.-180) 1787 0 R (lstlisting.3.-181) 1832 0 R (lstlisting.3.-182) 1837 0 R] /Limits [(lstlisting.3.-177) (lstlisting.3.-182)] >> endobj 5992 0 obj << /Names [(lstlisting.3.-183) 1864 0 R (lstlisting.3.-184) 1870 0 R (lstlisting.3.-185) 1904 0 R (lstlisting.3.-186) 1911 0 R (lstlisting.3.-187) 1920 0 R (lstlisting.3.-188) 1924 0 R] /Limits [(lstlisting.3.-183) (lstlisting.3.-188)] >> endobj 5993 0 obj << /Names [(lstlisting.3.-189) 1928 0 R (lstlisting.3.-190) 1942 0 R (lstlisting.3.-191) 1946 0 R (lstlisting.3.-192) 1955 0 R (lstlisting.3.-193) 1959 0 R (lstlisting.3.-194) 1963 0 R] /Limits [(lstlisting.3.-189) (lstlisting.3.-194)] >> endobj 5994 0 obj << /Names [(lstlisting.3.-195) 1976 0 R (lstlisting.3.-196) 1980 0 R (lstlisting.3.-197) 1993 0 R (lstlisting.3.-198) 1996 0 R (lstlisting.3.-199) 1999 0 R (lstlisting.3.-200) 2003 0 R] /Limits [(lstlisting.3.-195) (lstlisting.3.-200)] >> endobj 5995 0 obj << /Names [(lstlisting.3.-201) 2006 0 R (lstlisting.3.-202) 2016 0 R (lstlisting.3.-203) 2019 0 R (lstlisting.3.-204) 2021 0 R (lstlisting.3.-205) 2023 0 R (lstlisting.3.-206) 2025 0 R] /Limits [(lstlisting.3.-201) (lstlisting.3.-206)] >> endobj 5996 0 obj << /Names [(lstlisting.3.-207) 2109 0 R (lstlisting.3.-208) 2162 0 R (lstlisting.3.-209) 2170 0 R (lstlisting.3.-210) 2189 0 R (lstlisting.3.-211) 2194 0 R (lstlisting.3.-212) 2197 0 R] /Limits [(lstlisting.3.-207) (lstlisting.3.-212)] >> endobj 5997 0 obj << /Names [(lstlisting.3.-213) 2210 0 R (lstlisting.3.-214) 2215 0 R (lstlisting.3.-215) 2220 0 R (lstlisting.3.-216) 2235 0 R (lstlisting.3.-217) 2238 0 R (lstlisting.3.-218) 2250 0 R] /Limits [(lstlisting.3.-213) (lstlisting.3.-218)] >> endobj 5998 0 obj << /Names [(lstlisting.3.-219) 2256 0 R (lstlisting.3.-220) 2268 0 R (lstlisting.3.-221) 2272 0 R (lstlisting.3.-222) 2278 0 R (lstlisting.3.-223) 2292 0 R (lstlisting.3.-224) 2296 0 R] /Limits [(lstlisting.3.-219) (lstlisting.3.-224)] >> endobj 5999 0 obj << /Names [(lstlisting.3.-225) 2307 0 R (lstlisting.3.-226) 2313 0 R (lstlisting.3.-227) 2318 0 R (lstlisting.3.-228) 2331 0 R (lstlisting.3.-229) 2337 0 R (lstlisting.3.-230) 2350 0 R] /Limits [(lstlisting.3.-225) (lstlisting.3.-230)] >> endobj 6000 0 obj << /Names [(lstlisting.3.-231) 2356 0 R (lstlisting.3.-232) 2361 0 R (lstlisting.3.-233) 2373 0 R (lstlisting.3.-234) 2379 0 R (lstlisting.3.-235) 2393 0 R (lstlisting.3.-236) 2400 0 R] /Limits [(lstlisting.3.-231) (lstlisting.3.-236)] >> endobj 6001 0 obj << /Names [(lstlisting.3.-237) 2412 0 R (lstlisting.3.-238) 2416 0 R (lstlisting.3.-239) 2422 0 R (lstlisting.3.-240) 2435 0 R (lstlisting.3.-241) 2438 0 R (lstlisting.3.-242) 2440 0 R] /Limits [(lstlisting.3.-237) (lstlisting.3.-242)] >> endobj 6002 0 obj << /Names [(lstlisting.3.-243) 2442 0 R (lstlisting.3.-244) 2454 0 R (lstlisting.3.-245) 2460 0 R (lstlisting.3.-246) 2488 0 R (lstlisting.3.-247) 2498 0 R (lstlisting.3.-248) 2521 0 R] /Limits [(lstlisting.3.-243) (lstlisting.3.-248)] >> endobj 6003 0 obj << /Names [(lstlisting.3.-249) 2530 0 R (lstlisting.3.-250) 2541 0 R (lstlisting.3.-251) 2543 0 R (lstlisting.3.-252) 2545 0 R (lstlisting.3.-253) 2547 0 R (lstlisting.3.-254) 2549 0 R] /Limits [(lstlisting.3.-249) (lstlisting.3.-254)] >> endobj 6004 0 obj << /Names [(lstlisting.3.-255) 2562 0 R (lstlisting.3.-256) 2574 0 R (lstlisting.3.-257) 2636 0 R (lstlisting.3.-258) 2699 0 R (lstlisting.3.-259) 2745 0 R (lstlisting.3.-260) 2750 0 R] /Limits [(lstlisting.3.-255) (lstlisting.3.-260)] >> endobj 6005 0 obj << /Names [(lstlisting.3.-261) 2764 0 R (lstlisting.3.-262) 2770 0 R (lstlisting.3.-263) 2774 0 R (lstlisting.3.-264) 2788 0 R (lstlisting.3.-265) 2792 0 R (lstlisting.3.-266) 2797 0 R] /Limits [(lstlisting.3.-261) (lstlisting.3.-266)] >> endobj 6006 0 obj << /Names [(lstlisting.3.-267) 2810 0 R (lstlisting.3.-268) 2815 0 R (lstlisting.3.-269) 2826 0 R (lstlisting.3.-270) 2832 0 R (lstlisting.3.-271) 2836 0 R (lstlisting.3.-272) 2851 0 R] /Limits [(lstlisting.3.-267) (lstlisting.3.-272)] >> endobj 6007 0 obj << /Names [(lstlisting.3.-273) 2855 0 R (lstlisting.3.-274) 2859 0 R (lstlisting.3.-275) 2872 0 R (lstlisting.3.-276) 2876 0 R (lstlisting.3.-277) 2880 0 R (lstlisting.3.-278) 2899 0 R] /Limits [(lstlisting.3.-273) (lstlisting.3.-278)] >> endobj 6008 0 obj << /Names [(lstlisting.3.-279) 2905 0 R (lstlisting.3.-280) 2919 0 R (lstlisting.3.-281) 2922 0 R (lstlisting.3.-282) 2924 0 R (lstlisting.3.-283) 2926 0 R (lstlisting.3.-284) 2928 0 R] /Limits [(lstlisting.3.-279) (lstlisting.3.-284)] >> endobj 6009 0 obj << /Names [(lstlisting.3.-285) 2930 0 R (lstlisting.3.-286) 2937 0 R (lstlisting.3.-287) 2939 0 R (lstlisting.3.-288) 2941 0 R (lstlisting.3.-289) 2944 0 R (lstlisting.3.-290) 2949 0 R] /Limits [(lstlisting.3.-285) (lstlisting.3.-290)] >> endobj 6010 0 obj << /Names [(lstlisting.3.-291) 2961 0 R (lstlisting.3.-292) 2967 0 R (lstlisting.3.-293) 3025 0 R (lstlisting.3.-294) 3072 0 R (lstlisting.3.-295) 3079 0 R (lstlisting.3.-296) 3106 0 R] /Limits [(lstlisting.3.-291) (lstlisting.3.-296)] >> endobj 6011 0 obj << /Names [(lstlisting.3.-297) 3110 0 R (lstlisting.3.-298) 3114 0 R (lstlisting.3.-299) 3126 0 R (lstlisting.3.-300) 3130 0 R (lstlisting.3.-301) 3145 0 R (lstlisting.3.-302) 3149 0 R] /Limits [(lstlisting.3.-297) (lstlisting.3.-302)] >> endobj 6012 0 obj << /Names [(lstlisting.3.-303) 3167 0 R (lstlisting.3.-304) 3171 0 R (lstlisting.3.-305) 3175 0 R (lstlisting.3.-306) 3188 0 R (lstlisting.3.-307) 3191 0 R (lstlisting.3.-308) 3195 0 R] /Limits [(lstlisting.3.-303) (lstlisting.3.-308)] >> endobj 6013 0 obj << /Names [(lstlisting.3.-309) 3205 0 R (lstlisting.3.-310) 3210 0 R (lstlisting.3.-311) 3213 0 R (lstlisting.3.-312) 3215 0 R (lstlisting.3.-313) 3217 0 R (lstlisting.3.-314) 3224 0 R] /Limits [(lstlisting.3.-309) (lstlisting.3.-314)] >> endobj 6014 0 obj << /Names [(lstlisting.3.-315) 3226 0 R (lstlisting.3.-316) 3229 0 R (lstlisting.3.-317) 3234 0 R (lstlisting.3.-318) 3249 0 R (lstlisting.3.-319) 3254 0 R (lstlisting.3.-320) 3285 0 R] /Limits [(lstlisting.3.-315) (lstlisting.3.-320)] >> endobj 6015 0 obj << /Names [(lstlisting.3.-321) 3318 0 R (lstlisting.3.-322) 3323 0 R (lstlisting.3.-323) 3344 0 R (lstlisting.3.-324) 3346 0 R (lstlisting.3.-325) 3348 0 R (lstlisting.3.-326) 3360 0 R] /Limits [(lstlisting.3.-321) (lstlisting.3.-326)] >> endobj 6016 0 obj << /Names [(lstlisting.3.-327) 3362 0 R (lstlisting.3.-328) 3364 0 R (lstlisting.3.-329) 3369 0 R (lstlisting.3.-330) 3395 0 R (lstlisting.3.-331) 3401 0 R (lstlisting.3.-332) 3492 0 R] /Limits [(lstlisting.3.-327) (lstlisting.3.-332)] >> endobj 6017 0 obj << /Names [(lstlisting.3.-333) 3499 0 R (lstlisting.3.-334) 3502 0 R (lstlisting.3.-335) 3513 0 R (lstlisting.3.-336) 3517 0 R (lstlisting.3.-337) 3520 0 R (lstlisting.3.-338) 3523 0 R] /Limits [(lstlisting.3.-333) (lstlisting.3.-338)] >> endobj 6018 0 obj << /Names [(lstlisting.3.-339) 3538 0 R (lstlisting.3.-340) 3542 0 R (lstlisting.3.-341) 3544 0 R (lstlisting.3.-342) 3554 0 R (lstlisting.3.-343) 3556 0 R (lstlisting.3.-344) 3558 0 R] /Limits [(lstlisting.3.-339) (lstlisting.3.-344)] >> endobj 6019 0 obj << /Names [(lstlisting.3.-345) 3560 0 R (lstlisting.3.-346) 3562 0 R (lstlisting.3.-347) 3564 0 R (lstlisting.3.-348) 3585 0 R (lstlisting.3.-349) 3587 0 R (lstlisting.3.-350) 3589 0 R] /Limits [(lstlisting.3.-345) (lstlisting.3.-350)] >> endobj 6020 0 obj << /Names [(lstlisting.3.-351) 3591 0 R (lstlisting.3.-352) 3593 0 R (lstlisting.3.-353) 3595 0 R (lstlisting.3.-354) 3637 0 R (lstlisting.3.-355) 3669 0 R (lstlisting.3.-356) 3672 0 R] /Limits [(lstlisting.3.-351) (lstlisting.3.-356)] >> endobj 6021 0 obj << /Names [(lstlisting.3.-357) 3676 0 R (lstlisting.3.-358) 3680 0 R (lstlisting.3.-359) 3689 0 R (lstlisting.3.-360) 3693 0 R (lstlisting.3.-361) 3700 0 R (lstlisting.3.-362) 3713 0 R] /Limits [(lstlisting.3.-357) (lstlisting.3.-362)] >> endobj 6022 0 obj << /Names [(lstlisting.3.-363) 3716 0 R (lstlisting.3.-364) 3718 0 R (lstlisting.3.-365) 3720 0 R (lstlisting.3.-366) 3726 0 R (lstlisting.3.-367) 3728 0 R (lstlisting.3.-368) 3730 0 R] /Limits [(lstlisting.3.-363) (lstlisting.3.-368)] >> endobj 6023 0 obj << /Names [(lstlisting.3.-369) 3732 0 R (lstlisting.3.-370) 3734 0 R (lstlisting.3.-371) 3736 0 R (lstlisting.3.-372) 3746 0 R (lstlisting.3.-373) 3748 0 R (lstlisting.3.-374) 3750 0 R] /Limits [(lstlisting.3.-369) (lstlisting.3.-374)] >> endobj 6024 0 obj << /Names [(lstlisting.3.-375) 3752 0 R (lstlisting.3.-376) 3768 0 R (lstlisting.3.-377) 3780 0 R (lstlisting.3.-378) 3858 0 R (lstlisting.3.-379) 3896 0 R (lstlisting.3.-380) 3934 0 R] /Limits [(lstlisting.3.-375) (lstlisting.3.-380)] >> endobj 6025 0 obj << /Names [(lstlisting.3.-381) 3940 0 R (lstlisting.3.-382) 3945 0 R (lstlisting.3.-383) 3956 0 R (lstlisting.3.-384) 3962 0 R (lstlisting.3.-385) 3975 0 R (lstlisting.3.-386) 3979 0 R] /Limits [(lstlisting.3.-381) (lstlisting.3.-386)] >> endobj 6026 0 obj << /Names [(lstlisting.3.-387) 3984 0 R (lstlisting.3.-388) 3998 0 R (lstlisting.3.-389) 4004 0 R (lstlisting.3.-390) 4009 0 R (lstlisting.3.-391) 4023 0 R (lstlisting.3.-392) 4028 0 R] /Limits [(lstlisting.3.-387) (lstlisting.3.-392)] >> endobj 6027 0 obj << /Names [(lstlisting.3.-393) 4040 0 R (lstlisting.3.-394) 4045 0 R (lstlisting.3.-395) 4049 0 R (lstlisting.3.-396) 4063 0 R (lstlisting.3.-397) 4068 0 R (lstlisting.3.-398) 4080 0 R] /Limits [(lstlisting.3.-393) (lstlisting.3.-398)] >> endobj 6028 0 obj << /Names [(lstlisting.3.-399) 4086 0 R (lstlisting.3.-400) 4093 0 R (lstlisting.3.-401) 4106 0 R (lstlisting.3.-402) 4113 0 R (lstlisting.3.-403) 4125 0 R (lstlisting.3.-404) 4132 0 R] /Limits [(lstlisting.3.-399) (lstlisting.3.-404)] >> endobj 6029 0 obj << /Names [(lstlisting.3.-405) 4138 0 R (lstlisting.3.-406) 4156 0 R (lstlisting.3.-407) 4162 0 R (lstlisting.3.-408) 4177 0 R (lstlisting.3.-409) 4183 0 R (lstlisting.3.-410) 4189 0 R] /Limits [(lstlisting.3.-405) (lstlisting.3.-410)] >> endobj 6030 0 obj << /Names [(lstlisting.3.-411) 4203 0 R (lstlisting.3.-412) 4208 0 R (lstlisting.3.-413) 4211 0 R (lstlisting.3.-414) 4221 0 R (lstlisting.3.-415) 4224 0 R (lstlisting.3.-416) 4230 0 R] /Limits [(lstlisting.3.-411) (lstlisting.3.-416)] >> endobj 6031 0 obj << /Names [(lstlisting.3.-417) 4274 0 R (lstlisting.3.-418) 4307 0 R (lstlisting.3.-419) 4311 0 R (lstlisting.3.-420) 4315 0 R (lstlisting.3.-421) 4332 0 R (lstlisting.3.-422) 4338 0 R] /Limits [(lstlisting.3.-417) (lstlisting.3.-422)] >> endobj 6032 0 obj << /Names [(lstlisting.3.-423) 4345 0 R (lstlisting.3.-424) 4347 0 R (lstlisting.3.-425) 4349 0 R (lstlisting.3.-426) 4351 0 R (lstlisting.3.-427) 4353 0 R (lstlisting.3.-428) 4381 0 R] /Limits [(lstlisting.3.-423) (lstlisting.3.-428)] >> endobj 6033 0 obj << /Names [(lstlisting.3.-429) 4383 0 R (lstlisting.3.-430) 4389 0 R (lstlisting.3.-431) 4414 0 R (lstlisting.3.-432) 4416 0 R (lstlisting.3.-433) 4434 0 R (lstlisting.3.-434) 4437 0 R] /Limits [(lstlisting.3.-429) (lstlisting.3.-434)] >> endobj 6034 0 obj << /Names [(lstlisting.3.-435) 4439 0 R (lstlisting.3.-436) 4441 0 R (lstlisting.3.-437) 4443 0 R (lstlisting.3.-438) 4445 0 R (lstlisting.3.-439) 4476 0 R (lstlisting.3.-440) 4478 0 R] /Limits [(lstlisting.3.-435) (lstlisting.3.-440)] >> endobj 6035 0 obj << /Names [(lstlisting.3.-441) 4480 0 R (lstlisting.3.-442) 4509 0 R (lstlisting.3.-443) 4516 0 R (lstlisting.3.-444) 4520 0 R (lstlisting.3.-445) 4534 0 R (lstlisting.3.-446) 4537 0 R] /Limits [(lstlisting.3.-441) (lstlisting.3.-446)] >> endobj 6036 0 obj << /Names [(lstlisting.3.-447) 4541 0 R (lstlisting.3.-448) 4553 0 R (lstlisting.3.-449) 4556 0 R (lstlisting.3.-450) 4558 0 R (lstlisting.3.-451) 4560 0 R (lstlisting.3.-452) 4563 0 R] /Limits [(lstlisting.3.-447) (lstlisting.3.-452)] >> endobj 6037 0 obj << /Names [(lstlisting.3.-453) 4603 0 R (lstlisting.3.-454) 4637 0 R (lstlisting.3.-455) 4649 0 R (lstlisting.3.-456) 4669 0 R (lstlisting.3.-457) 4676 0 R (lstlisting.3.-458) 4679 0 R] /Limits [(lstlisting.3.-453) (lstlisting.3.-458)] >> endobj 6038 0 obj << /Names [(lstlisting.3.-459) 4690 0 R (lstlisting.3.-460) 4692 0 R (lstlisting.3.-461) 4695 0 R (lstlisting.3.-462) 4697 0 R (lstlisting.3.-463) 4699 0 R (lstlisting.3.-464) 4706 0 R] /Limits [(lstlisting.3.-459) (lstlisting.3.-464)] >> endobj 6039 0 obj << /Names [(lstlisting.3.-465) 4708 0 R (lstlisting.3.-466) 4710 0 R (lstlisting.3.-467) 4712 0 R (lstlisting.3.-468) 4714 0 R (lstlisting.3.-469) 4716 0 R (lstlisting.3.-470) 4718 0 R] /Limits [(lstlisting.3.-465) (lstlisting.3.-470)] >> endobj 6040 0 obj << /Names [(lstlisting.4.-471) 4759 0 R (lstlisting.4.-472) 4800 0 R (lstlisting.4.-473) 4803 0 R (lstlisting.4.-474) 4822 0 R (lstlisting.4.-475) 4826 0 R (lstlisting.4.-476) 4829 0 R] /Limits [(lstlisting.4.-471) (lstlisting.4.-476)] >> endobj 6041 0 obj << /Names [(lstlisting.4.-477) 4845 0 R (lstlisting.4.-478) 4850 0 R (lstlisting.4.-479) 4867 0 R (lstlisting.4.-480) 4873 0 R (lstlisting.4.-481) 4875 0 R (lstlisting.4.-482) 4877 0 R] /Limits [(lstlisting.4.-477) (lstlisting.4.-482)] >> endobj 6042 0 obj << /Names [(lstlisting.4.-483) 4879 0 R (lstlisting.4.-484) 4912 0 R (lstlisting.4.-485) 4919 0 R (lstlisting.4.-486) 4932 0 R (lstlisting.4.-487) 4934 0 R (lstlisting.4.-488) 4936 0 R] /Limits [(lstlisting.4.-483) (lstlisting.4.-488)] >> endobj 6043 0 obj << /Names [(lstlisting.4.-489) 4938 0 R (lstlisting.4.-490) 4947 0 R (lstlisting.4.-491) 4958 0 R (lstlisting.4.-492) 4961 0 R (lstlisting.4.-493) 4978 0 R (lstlisting.4.-494) 4984 0 R] /Limits [(lstlisting.4.-489) (lstlisting.4.-494)] >> endobj 6044 0 obj << /Names [(lstlisting.4.-495) 4993 0 R (lstlisting.4.-496) 5009 0 R (lstlisting.4.-497) 5015 0 R (lstlisting.4.-498) 5017 0 R (lstlisting.4.-499) 5033 0 R (lstlisting.4.-500) 5043 0 R] /Limits [(lstlisting.4.-495) (lstlisting.4.-500)] >> endobj 6045 0 obj << /Names [(lstlisting.4.-501) 5046 0 R (lstlisting.4.-502) 5059 0 R (lstlisting.4.-503) 5068 0 R (lstlisting.5.-504) 5079 0 R (lstnumber.-1.1) 279 0 R (lstnumber.-10.1) 344 0 R] /Limits [(lstlisting.4.-501) (lstnumber.-10.1)] >> endobj 6046 0 obj << /Names [(lstnumber.-100.1) 1002 0 R (lstnumber.-100.2) 1003 0 R (lstnumber.-100.3) 1004 0 R (lstnumber.-100.4) 1005 0 R (lstnumber.-100.5) 1006 0 R (lstnumber.-101.1) 1015 0 R] /Limits [(lstnumber.-100.1) (lstnumber.-101.1)] >> endobj 6047 0 obj << /Names [(lstnumber.-101.2) 1016 0 R (lstnumber.-101.3) 1017 0 R (lstnumber.-101.4) 1018 0 R (lstnumber.-102.1) 1020 0 R (lstnumber.-102.2) 1021 0 R (lstnumber.-102.3) 1022 0 R] /Limits [(lstnumber.-101.2) (lstnumber.-102.3)] >> endobj 6048 0 obj << /Names [(lstnumber.-102.4) 1023 0 R (lstnumber.-103.1) 1025 0 R (lstnumber.-103.2) 1026 0 R (lstnumber.-103.3) 1027 0 R (lstnumber.-103.4) 1028 0 R (lstnumber.-104.1) 1036 0 R] /Limits [(lstnumber.-102.4) (lstnumber.-104.1)] >> endobj 6049 0 obj << /Names [(lstnumber.-105.1) 1038 0 R (lstnumber.-105.2) 1039 0 R (lstnumber.-105.3) 1040 0 R (lstnumber.-105.4) 1041 0 R (lstnumber.-105.5) 1042 0 R (lstnumber.-105.6) 1043 0 R] /Limits [(lstnumber.-105.1) (lstnumber.-105.6)] >> endobj 6050 0 obj << /Names [(lstnumber.-106.1) 1082 0 R (lstnumber.-106.2) 1083 0 R (lstnumber.-107.1) 1090 0 R (lstnumber.-107.2) 1091 0 R (lstnumber.-107.3) 1092 0 R (lstnumber.-107.4) 1093 0 R] /Limits [(lstnumber.-106.1) (lstnumber.-107.4)] >> endobj 6051 0 obj << /Names [(lstnumber.-107.5) 1094 0 R (lstnumber.-108.1) 1125 0 R (lstnumber.-108.2) 1126 0 R (lstnumber.-108.3) 1127 0 R (lstnumber.-108.4) 1128 0 R (lstnumber.-108.5) 1129 0 R] /Limits [(lstnumber.-107.5) (lstnumber.-108.5)] >> endobj 6052 0 obj << /Names [(lstnumber.-108.6) 1130 0 R (lstnumber.-109.1) 1132 0 R (lstnumber.-109.2) 1133 0 R (lstnumber.-109.3) 1134 0 R (lstnumber.-11.1) 364 0 R (lstnumber.-110.1) 1136 0 R] /Limits [(lstnumber.-108.6) (lstnumber.-110.1)] >> endobj 6053 0 obj << /Names [(lstnumber.-110.2) 1137 0 R (lstnumber.-110.3) 1149 0 R (lstnumber.-111.1) 1151 0 R (lstnumber.-111.2) 1152 0 R (lstnumber.-111.3) 1153 0 R (lstnumber.-112.1) 1155 0 R] /Limits [(lstnumber.-110.2) (lstnumber.-112.1)] >> endobj 6054 0 obj << /Names [(lstnumber.-112.2) 1156 0 R (lstnumber.-112.3) 1157 0 R (lstnumber.-113.1) 1166 0 R (lstnumber.-114.1) 1168 0 R (lstnumber.-114.2) 1169 0 R (lstnumber.-114.3) 1170 0 R] /Limits [(lstnumber.-112.2) (lstnumber.-114.3)] >> endobj 6055 0 obj << /Names [(lstnumber.-114.4) 1171 0 R (lstnumber.-114.5) 1174 0 R (lstnumber.-115.1) 1200 0 R (lstnumber.-115.2) 1201 0 R (lstnumber.-115.3) 1202 0 R (lstnumber.-115.4) 1203 0 R] /Limits [(lstnumber.-114.4) (lstnumber.-115.4)] >> endobj 6056 0 obj << /Names [(lstnumber.-115.5) 1204 0 R (lstnumber.-116.1) 1225 0 R (lstnumber.-116.2) 1226 0 R (lstnumber.-116.3) 1227 0 R (lstnumber.-116.4) 1228 0 R (lstnumber.-117.1) 1231 0 R] /Limits [(lstnumber.-115.5) (lstnumber.-117.1)] >> endobj 6057 0 obj << /Names [(lstnumber.-118.1) 1247 0 R (lstnumber.-119.1) 1249 0 R (lstnumber.-12.1) 366 0 R (lstnumber.-120.1) 1251 0 R (lstnumber.-121.1) 1253 0 R (lstnumber.-122.1) 1275 0 R] /Limits [(lstnumber.-118.1) (lstnumber.-122.1)] >> endobj 6058 0 obj << /Names [(lstnumber.-122.2) 1276 0 R (lstnumber.-122.3) 1277 0 R (lstnumber.-122.4) 1278 0 R (lstnumber.-122.5) 1279 0 R (lstnumber.-123.1) 1285 0 R (lstnumber.-123.2) 1286 0 R] /Limits [(lstnumber.-122.2) (lstnumber.-123.2)] >> endobj 6059 0 obj << /Names [(lstnumber.-123.3) 1287 0 R (lstnumber.-123.4) 1288 0 R (lstnumber.-123.5) 1289 0 R (lstnumber.-123.6) 1290 0 R (lstnumber.-124.1) 1304 0 R (lstnumber.-125.1) 1307 0 R] /Limits [(lstnumber.-123.3) (lstnumber.-125.1)] >> endobj 6060 0 obj << /Names [(lstnumber.-126.1) 1309 0 R (lstnumber.-127.1) 1311 0 R (lstnumber.-128.1) 1417 0 R (lstnumber.-129.1) 1478 0 R (lstnumber.-129.10) 1487 0 R (lstnumber.-129.11) 1488 0 R] /Limits [(lstnumber.-126.1) (lstnumber.-129.11)] >> endobj 6061 0 obj << /Names [(lstnumber.-129.2) 1479 0 R (lstnumber.-129.3) 1480 0 R (lstnumber.-129.4) 1481 0 R (lstnumber.-129.5) 1482 0 R (lstnumber.-129.6) 1483 0 R (lstnumber.-129.7) 1484 0 R] /Limits [(lstnumber.-129.2) (lstnumber.-129.7)] >> endobj 6062 0 obj << /Names [(lstnumber.-129.8) 1485 0 R (lstnumber.-129.9) 1486 0 R (lstnumber.-13.1) 368 0 R (lstnumber.-130.1) 1524 0 R (lstnumber.-130.2) 1525 0 R (lstnumber.-131.1) 1527 0 R] /Limits [(lstnumber.-129.8) (lstnumber.-131.1)] >> endobj 6063 0 obj << /Names [(lstnumber.-131.2) 1528 0 R (lstnumber.-132.1) 1537 0 R (lstnumber.-132.2) 1538 0 R (lstnumber.-132.3) 1539 0 R (lstnumber.-133.1) 1541 0 R (lstnumber.-133.2) 1542 0 R] /Limits [(lstnumber.-131.2) (lstnumber.-133.2)] >> endobj 6064 0 obj << /Names [(lstnumber.-133.3) 1543 0 R (lstnumber.-133.4) 1544 0 R (lstnumber.-133.5) 1545 0 R (lstnumber.-133.6) 1546 0 R (lstnumber.-134.1) 1548 0 R (lstnumber.-134.2) 1549 0 R] /Limits [(lstnumber.-133.3) (lstnumber.-134.2)] >> endobj 6065 0 obj << /Names [(lstnumber.-134.3) 1550 0 R (lstnumber.-134.4) 1551 0 R (lstnumber.-134.5) 1552 0 R (lstnumber.-134.6) 1553 0 R (lstnumber.-135.1) 1563 0 R (lstnumber.-135.2) 1564 0 R] /Limits [(lstnumber.-134.3) (lstnumber.-135.2)] >> endobj 6066 0 obj << /Names [(lstnumber.-136.1) 1566 0 R (lstnumber.-136.2) 1567 0 R (lstnumber.-137.1) 1569 0 R (lstnumber.-137.2) 1570 0 R (lstnumber.-138.1) 1582 0 R (lstnumber.-138.2) 1583 0 R] /Limits [(lstnumber.-136.1) (lstnumber.-138.2)] >> endobj 6067 0 obj << /Names [(lstnumber.-139.1) 1585 0 R (lstnumber.-139.2) 1586 0 R (lstnumber.-14.1) 370 0 R (lstnumber.-14.2) 371 0 R (lstnumber.-140.1) 1588 0 R (lstnumber.-140.2) 1589 0 R] /Limits [(lstnumber.-139.1) (lstnumber.-140.2)] >> endobj 6068 0 obj << /Names [(lstnumber.-141.1) 1604 0 R (lstnumber.-141.2) 1605 0 R (lstnumber.-142.1) 1607 0 R (lstnumber.-142.2) 1608 0 R (lstnumber.-142.3) 1609 0 R (lstnumber.-143.1) 1611 0 R] /Limits [(lstnumber.-141.1) (lstnumber.-143.1)] >> endobj 6069 0 obj << /Names [(lstnumber.-143.2) 1612 0 R (lstnumber.-143.3) 1613 0 R (lstnumber.-144.1) 1623 0 R (lstnumber.-144.2) 1624 0 R (lstnumber.-145.1) 1626 0 R (lstnumber.-145.2) 1627 0 R] /Limits [(lstnumber.-143.2) (lstnumber.-145.2)] >> endobj 6070 0 obj << /Names [(lstnumber.-146.1) 1641 0 R (lstnumber.-146.2) 1642 0 R (lstnumber.-146.3) 1643 0 R (lstnumber.-147.1) 1645 0 R (lstnumber.-147.2) 1646 0 R (lstnumber.-147.3) 1647 0 R] /Limits [(lstnumber.-146.1) (lstnumber.-147.3)] >> endobj 6071 0 obj << /Names [(lstnumber.-148.1) 1649 0 R (lstnumber.-148.2) 1650 0 R (lstnumber.-149.1) 1663 0 R (lstnumber.-149.2) 1664 0 R (lstnumber.-15.1) 382 0 R (lstnumber.-15.2) 383 0 R] /Limits [(lstnumber.-148.1) (lstnumber.-15.2)] >> endobj 6072 0 obj << /Names [(lstnumber.-15.3) 384 0 R (lstnumber.-15.4) 385 0 R (lstnumber.-150.1) 1666 0 R (lstnumber.-150.2) 1667 0 R (lstnumber.-151.1) 1669 0 R (lstnumber.-151.2) 1670 0 R] /Limits [(lstnumber.-15.3) (lstnumber.-151.2)] >> endobj 6073 0 obj << /Names [(lstnumber.-152.1) 1679 0 R (lstnumber.-152.2) 1680 0 R (lstnumber.-153.1) 1682 0 R (lstnumber.-153.2) 1683 0 R (lstnumber.-154.1) 1685 0 R (lstnumber.-154.2) 1686 0 R] /Limits [(lstnumber.-152.1) (lstnumber.-154.2)] >> endobj 6074 0 obj << /Names [(lstnumber.-154.3) 1687 0 R (lstnumber.-155.1) 1689 0 R (lstnumber.-155.2) 1690 0 R (lstnumber.-156.1) 1700 0 R (lstnumber.-156.2) 1701 0 R (lstnumber.-157.1) 1703 0 R] /Limits [(lstnumber.-154.3) (lstnumber.-157.1)] >> endobj 6075 0 obj << /Names [(lstnumber.-157.2) 1704 0 R (lstnumber.-157.3) 1705 0 R (lstnumber.-157.4) 1706 0 R (lstnumber.-158.1) 1708 0 R (lstnumber.-158.2) 1709 0 R (lstnumber.-159.1) 1712 0 R] /Limits [(lstnumber.-157.2) (lstnumber.-159.1)] >> endobj 6076 0 obj << /Names [(lstnumber.-159.2) 1713 0 R (lstnumber.-159.3) 1714 0 R (lstnumber.-159.4) 1715 0 R (lstnumber.-159.5) 1716 0 R (lstnumber.-16.1) 387 0 R (lstnumber.-16.2) 388 0 R] /Limits [(lstnumber.-159.2) (lstnumber.-16.2)] >> endobj 6077 0 obj << /Names [(lstnumber.-16.3) 389 0 R (lstnumber.-16.4) 390 0 R (lstnumber.-16.5) 391 0 R (lstnumber.-160.1) 1723 0 R (lstnumber.-160.2) 1724 0 R (lstnumber.-160.3) 1725 0 R] /Limits [(lstnumber.-16.3) (lstnumber.-160.3)] >> endobj 6078 0 obj << /Names [(lstnumber.-160.4) 1726 0 R (lstnumber.-161.1) 1738 0 R (lstnumber.-162.1) 1744 0 R (lstnumber.-163.1) 1746 0 R (lstnumber.-164.1) 1748 0 R (lstnumber.-165.1) 1750 0 R] /Limits [(lstnumber.-160.4) (lstnumber.-165.1)] >> endobj 6079 0 obj << /Names [(lstnumber.-166.1) 1752 0 R (lstnumber.-167.1) 1754 0 R (lstnumber.-168.1) 1760 0 R (lstnumber.-169.1) 1762 0 R (lstnumber.-17.1) 409 0 R (lstnumber.-170.1) 1764 0 R] /Limits [(lstnumber.-166.1) (lstnumber.-170.1)] >> endobj 6080 0 obj << /Names [(lstnumber.-171.1) 1766 0 R (lstnumber.-172.1) 1768 0 R (lstnumber.-173.1) 1770 0 R (lstnumber.-174.1) 1772 0 R (lstnumber.-175.1) 1778 0 R (lstnumber.-176.1) 1780 0 R] /Limits [(lstnumber.-171.1) (lstnumber.-176.1)] >> endobj 6081 0 obj << /Names [(lstnumber.-177.1) 1782 0 R (lstnumber.-178.1) 1784 0 R (lstnumber.-179.1) 1786 0 R (lstnumber.-18.1) 411 0 R (lstnumber.-180.1) 1788 0 R (lstnumber.-181.1) 1833 0 R] /Limits [(lstnumber.-177.1) (lstnumber.-181.1)] >> endobj 6082 0 obj << /Names [(lstnumber.-181.2) 1834 0 R (lstnumber.-181.3) 1835 0 R (lstnumber.-181.4) 1836 0 R (lstnumber.-182.1) 1838 0 R (lstnumber.-182.2) 1839 0 R (lstnumber.-182.3) 1840 0 R] /Limits [(lstnumber.-181.2) (lstnumber.-182.3)] >> endobj 6083 0 obj << /Names [(lstnumber.-182.4) 1841 0 R (lstnumber.-183.1) 1865 0 R (lstnumber.-183.2) 1866 0 R (lstnumber.-184.1) 1871 0 R (lstnumber.-184.2) 1872 0 R (lstnumber.-184.3) 1873 0 R] /Limits [(lstnumber.-182.4) (lstnumber.-184.3)] >> endobj 6084 0 obj << /Names [(lstnumber.-184.4) 1874 0 R (lstnumber.-184.5) 1875 0 R (lstnumber.-185.1) 1905 0 R (lstnumber.-185.2) 1906 0 R (lstnumber.-185.3) 1907 0 R (lstnumber.-185.4) 1908 0 R] /Limits [(lstnumber.-184.4) (lstnumber.-185.4)] >> endobj 6085 0 obj << /Names [(lstnumber.-185.5) 1909 0 R (lstnumber.-185.6) 1910 0 R (lstnumber.-186.1) 1912 0 R (lstnumber.-186.2) 1913 0 R (lstnumber.-186.3) 1914 0 R (lstnumber.-187.1) 1921 0 R] /Limits [(lstnumber.-185.5) (lstnumber.-187.1)] >> endobj 6086 0 obj << /Names [(lstnumber.-187.2) 1922 0 R (lstnumber.-187.3) 1923 0 R (lstnumber.-188.1) 1925 0 R (lstnumber.-188.2) 1926 0 R (lstnumber.-188.3) 1927 0 R (lstnumber.-189.1) 1929 0 R] /Limits [(lstnumber.-187.2) (lstnumber.-189.1)] >> endobj 6087 0 obj << /Names [(lstnumber.-189.2) 1930 0 R (lstnumber.-189.3) 1931 0 R (lstnumber.-19.1) 413 0 R (lstnumber.-190.1) 1943 0 R (lstnumber.-190.2) 1944 0 R (lstnumber.-190.3) 1945 0 R] /Limits [(lstnumber.-189.2) (lstnumber.-190.3)] >> endobj 6088 0 obj << /Names [(lstnumber.-191.1) 1947 0 R (lstnumber.-191.2) 1948 0 R (lstnumber.-191.3) 1949 0 R (lstnumber.-192.1) 1956 0 R (lstnumber.-192.2) 1957 0 R (lstnumber.-192.3) 1958 0 R] /Limits [(lstnumber.-191.1) (lstnumber.-192.3)] >> endobj 6089 0 obj << /Names [(lstnumber.-193.1) 1960 0 R (lstnumber.-193.2) 1961 0 R (lstnumber.-193.3) 1962 0 R (lstnumber.-194.1) 1964 0 R (lstnumber.-194.2) 1965 0 R (lstnumber.-194.3) 1966 0 R] /Limits [(lstnumber.-193.1) (lstnumber.-194.3)] >> endobj 6090 0 obj << /Names [(lstnumber.-194.4) 1967 0 R (lstnumber.-195.1) 1977 0 R (lstnumber.-195.2) 1978 0 R (lstnumber.-195.3) 1979 0 R (lstnumber.-196.1) 1981 0 R (lstnumber.-196.2) 1982 0 R] /Limits [(lstnumber.-194.4) (lstnumber.-196.2)] >> endobj 6091 0 obj << /Names [(lstnumber.-196.3) 1983 0 R (lstnumber.-196.4) 1984 0 R (lstnumber.-196.5) 1985 0 R (lstnumber.-196.6) 1986 0 R (lstnumber.-197.1) 1994 0 R (lstnumber.-197.2) 1995 0 R] /Limits [(lstnumber.-196.3) (lstnumber.-197.2)] >> endobj 6092 0 obj << /Names [(lstnumber.-198.1) 1997 0 R (lstnumber.-198.2) 1998 0 R (lstnumber.-199.1) 2000 0 R (lstnumber.-199.2) 2001 0 R (lstnumber.-199.3) 2002 0 R (lstnumber.-2.1) 281 0 R] /Limits [(lstnumber.-198.1) (lstnumber.-2.1)] >> endobj 6093 0 obj << /Names [(lstnumber.-20.1) 415 0 R (lstnumber.-200.1) 2004 0 R (lstnumber.-200.2) 2005 0 R (lstnumber.-201.1) 2007 0 R (lstnumber.-201.2) 2008 0 R (lstnumber.-201.3) 2009 0 R] /Limits [(lstnumber.-20.1) (lstnumber.-201.3)] >> endobj 6094 0 obj << /Names [(lstnumber.-201.4) 2014 0 R (lstnumber.-202.1) 2017 0 R (lstnumber.-203.1) 2020 0 R (lstnumber.-204.1) 2022 0 R (lstnumber.-205.1) 2024 0 R (lstnumber.-206.1) 2026 0 R] /Limits [(lstnumber.-201.4) (lstnumber.-206.1)] >> endobj 6095 0 obj << /Names [(lstnumber.-207.1) 2110 0 R (lstnumber.-208.1) 2163 0 R (lstnumber.-208.2) 2164 0 R (lstnumber.-208.3) 2165 0 R (lstnumber.-209.1) 2171 0 R (lstnumber.-209.2) 2172 0 R] /Limits [(lstnumber.-207.1) (lstnumber.-209.2)] >> endobj 6096 0 obj << /Names [(lstnumber.-209.3) 2173 0 R (lstnumber.-209.4) 2174 0 R (lstnumber.-21.1) 417 0 R (lstnumber.-21.2) 418 0 R (lstnumber.-21.3) 419 0 R (lstnumber.-21.4) 430 0 R] /Limits [(lstnumber.-209.3) (lstnumber.-21.4)] >> endobj 6097 0 obj << /Names [(lstnumber.-21.5) 431 0 R (lstnumber.-210.1) 2190 0 R (lstnumber.-210.2) 2191 0 R (lstnumber.-210.3) 2192 0 R (lstnumber.-210.4) 2193 0 R (lstnumber.-211.1) 2195 0 R] /Limits [(lstnumber.-21.5) (lstnumber.-211.1)] >> endobj 6098 0 obj << /Names [(lstnumber.-211.2) 2196 0 R (lstnumber.-212.1) 2198 0 R (lstnumber.-212.2) 2199 0 R (lstnumber.-212.3) 2200 0 R (lstnumber.-213.1) 2211 0 R (lstnumber.-213.2) 2212 0 R] /Limits [(lstnumber.-211.2) (lstnumber.-213.2)] >> endobj 6099 0 obj << /Names [(lstnumber.-213.3) 2213 0 R (lstnumber.-213.4) 2214 0 R (lstnumber.-214.1) 2216 0 R (lstnumber.-214.2) 2217 0 R (lstnumber.-214.3) 2218 0 R (lstnumber.-214.4) 2219 0 R] /Limits [(lstnumber.-213.3) (lstnumber.-214.4)] >> endobj 6100 0 obj << /Names [(lstnumber.-215.1) 2221 0 R (lstnumber.-215.2) 2232 0 R (lstnumber.-215.3) 2233 0 R (lstnumber.-215.4) 2234 0 R (lstnumber.-216.1) 2236 0 R (lstnumber.-216.2) 2237 0 R] /Limits [(lstnumber.-215.1) (lstnumber.-216.2)] >> endobj 6101 0 obj << /Names [(lstnumber.-217.1) 2239 0 R (lstnumber.-217.2) 2240 0 R (lstnumber.-217.3) 2241 0 R (lstnumber.-217.4) 2242 0 R (lstnumber.-218.1) 2251 0 R (lstnumber.-218.2) 2252 0 R] /Limits [(lstnumber.-217.1) (lstnumber.-218.2)] >> endobj 6102 0 obj << /Names [(lstnumber.-218.3) 2253 0 R (lstnumber.-218.4) 2254 0 R (lstnumber.-218.5) 2255 0 R (lstnumber.-219.1) 2257 0 R (lstnumber.-219.2) 2258 0 R (lstnumber.-219.3) 2259 0 R] /Limits [(lstnumber.-218.3) (lstnumber.-219.3)] >> endobj 6103 0 obj << /Names [(lstnumber.-219.4) 2260 0 R (lstnumber.-219.5) 2261 0 R (lstnumber.-22.1) 433 0 R (lstnumber.-22.2) 434 0 R (lstnumber.-22.3) 435 0 R (lstnumber.-22.4) 436 0 R] /Limits [(lstnumber.-219.4) (lstnumber.-22.4)] >> endobj 6104 0 obj << /Names [(lstnumber.-22.5) 437 0 R (lstnumber.-220.1) 2269 0 R (lstnumber.-220.2) 2270 0 R (lstnumber.-220.3) 2271 0 R (lstnumber.-221.1) 2273 0 R (lstnumber.-221.2) 2274 0 R] /Limits [(lstnumber.-22.5) (lstnumber.-221.2)] >> endobj 6105 0 obj << /Names [(lstnumber.-221.3) 2275 0 R (lstnumber.-221.4) 2276 0 R (lstnumber.-221.5) 2277 0 R (lstnumber.-222.1) 2279 0 R (lstnumber.-222.2) 2280 0 R (lstnumber.-222.3) 2281 0 R] /Limits [(lstnumber.-221.3) (lstnumber.-222.3)] >> endobj 6106 0 obj << /Names [(lstnumber.-222.4) 2290 0 R (lstnumber.-222.5) 2291 0 R (lstnumber.-223.1) 2293 0 R (lstnumber.-223.2) 2294 0 R (lstnumber.-223.3) 2295 0 R (lstnumber.-224.1) 2297 0 R] /Limits [(lstnumber.-222.4) (lstnumber.-224.1)] >> endobj 6107 0 obj << /Names [(lstnumber.-224.2) 2298 0 R (lstnumber.-224.3) 2299 0 R (lstnumber.-225.1) 2308 0 R (lstnumber.-225.2) 2309 0 R (lstnumber.-225.3) 2310 0 R (lstnumber.-225.4) 2311 0 R] /Limits [(lstnumber.-224.2) (lstnumber.-225.4)] >> endobj 6108 0 obj << /Names [(lstnumber.-225.5) 2312 0 R (lstnumber.-226.1) 2314 0 R (lstnumber.-226.2) 2315 0 R (lstnumber.-226.3) 2316 0 R (lstnumber.-226.4) 2317 0 R (lstnumber.-227.1) 2319 0 R] /Limits [(lstnumber.-225.5) (lstnumber.-227.1)] >> endobj 6109 0 obj << /Names [(lstnumber.-227.2) 2320 0 R (lstnumber.-227.3) 2321 0 R (lstnumber.-227.4) 2322 0 R (lstnumber.-228.1) 2332 0 R (lstnumber.-228.2) 2333 0 R (lstnumber.-228.3) 2334 0 R] /Limits [(lstnumber.-227.2) (lstnumber.-228.3)] >> endobj 6110 0 obj << /Names [(lstnumber.-228.4) 2335 0 R (lstnumber.-228.5) 2336 0 R (lstnumber.-229.1) 2338 0 R (lstnumber.-229.2) 2339 0 R (lstnumber.-229.3) 2340 0 R (lstnumber.-229.4) 2341 0 R] /Limits [(lstnumber.-228.4) (lstnumber.-229.4)] >> endobj 6111 0 obj << /Names [(lstnumber.-229.5) 2342 0 R (lstnumber.-23.1) 439 0 R (lstnumber.-23.2) 440 0 R (lstnumber.-23.3) 441 0 R (lstnumber.-23.4) 442 0 R (lstnumber.-230.1) 2351 0 R] /Limits [(lstnumber.-229.5) (lstnumber.-230.1)] >> endobj 6112 0 obj << /Names [(lstnumber.-230.2) 2352 0 R (lstnumber.-230.3) 2353 0 R (lstnumber.-230.4) 2354 0 R (lstnumber.-230.5) 2355 0 R (lstnumber.-231.1) 2357 0 R (lstnumber.-231.2) 2358 0 R] /Limits [(lstnumber.-230.2) (lstnumber.-231.2)] >> endobj 6113 0 obj << /Names [(lstnumber.-231.3) 2359 0 R (lstnumber.-231.4) 2360 0 R (lstnumber.-232.1) 2362 0 R (lstnumber.-232.2) 2363 0 R (lstnumber.-232.3) 2364 0 R (lstnumber.-232.4) 2365 0 R] /Limits [(lstnumber.-231.3) (lstnumber.-232.4)] >> endobj 6114 0 obj << /Names [(lstnumber.-232.5) 2366 0 R (lstnumber.-233.1) 2374 0 R (lstnumber.-233.2) 2375 0 R (lstnumber.-233.3) 2376 0 R (lstnumber.-233.4) 2377 0 R (lstnumber.-233.5) 2378 0 R] /Limits [(lstnumber.-232.5) (lstnumber.-233.5)] >> endobj 6115 0 obj << /Names [(lstnumber.-234.1) 2380 0 R (lstnumber.-234.2) 2381 0 R (lstnumber.-234.3) 2382 0 R (lstnumber.-234.4) 2383 0 R (lstnumber.-234.5) 2384 0 R (lstnumber.-234.6) 2385 0 R] /Limits [(lstnumber.-234.1) (lstnumber.-234.6)] >> endobj 6116 0 obj << /Names [(lstnumber.-235.1) 2394 0 R (lstnumber.-235.2) 2395 0 R (lstnumber.-235.3) 2396 0 R (lstnumber.-235.4) 2397 0 R (lstnumber.-235.5) 2398 0 R (lstnumber.-235.6) 2399 0 R] /Limits [(lstnumber.-235.1) (lstnumber.-235.6)] >> endobj 6117 0 obj << /Names [(lstnumber.-236.1) 2401 0 R (lstnumber.-236.2) 2402 0 R (lstnumber.-236.3) 2403 0 R (lstnumber.-236.4) 2404 0 R (lstnumber.-237.1) 2413 0 R (lstnumber.-237.2) 2414 0 R] /Limits [(lstnumber.-236.1) (lstnumber.-237.2)] >> endobj 6118 0 obj << /Names [(lstnumber.-237.3) 2415 0 R (lstnumber.-238.1) 2417 0 R (lstnumber.-238.2) 2418 0 R (lstnumber.-238.3) 2419 0 R (lstnumber.-238.4) 2420 0 R (lstnumber.-238.5) 2421 0 R] /Limits [(lstnumber.-237.3) (lstnumber.-238.5)] >> endobj 6119 0 obj << /Names [(lstnumber.-239.1) 2423 0 R (lstnumber.-239.2) 2424 0 R (lstnumber.-239.3) 2425 0 R (lstnumber.-239.4) 2426 0 R (lstnumber.-239.5) 2427 0 R (lstnumber.-24.1) 451 0 R] /Limits [(lstnumber.-239.1) (lstnumber.-24.1)] >> endobj 6120 0 obj << /Names [(lstnumber.-24.2) 452 0 R (lstnumber.-240.1) 2436 0 R (lstnumber.-241.1) 2439 0 R (lstnumber.-242.1) 2441 0 R (lstnumber.-243.1) 2443 0 R (lstnumber.-244.1) 2455 0 R] /Limits [(lstnumber.-24.2) (lstnumber.-244.1)] >> endobj 6121 0 obj << /Names [(lstnumber.-244.2) 2456 0 R (lstnumber.-244.3) 2457 0 R (lstnumber.-244.4) 2458 0 R (lstnumber.-244.5) 2459 0 R (lstnumber.-245.1) 2461 0 R (lstnumber.-245.2) 2462 0 R] /Limits [(lstnumber.-244.2) (lstnumber.-245.2)] >> endobj 6122 0 obj << /Names [(lstnumber.-245.3) 2463 0 R (lstnumber.-245.4) 2464 0 R (lstnumber.-245.5) 2465 0 R (lstnumber.-245.6) 2466 0 R (lstnumber.-246.1) 2489 0 R (lstnumber.-246.2) 2490 0 R] /Limits [(lstnumber.-245.3) (lstnumber.-246.2)] >> endobj 6123 0 obj << /Names [(lstnumber.-246.3) 2491 0 R (lstnumber.-246.4) 2492 0 R (lstnumber.-247.1) 2499 0 R (lstnumber.-247.2) 2500 0 R (lstnumber.-247.3) 2501 0 R (lstnumber.-247.4) 2502 0 R] /Limits [(lstnumber.-246.3) (lstnumber.-247.4)] >> endobj 6124 0 obj << /Names [(lstnumber.-247.5) 2503 0 R (lstnumber.-248.1) 2522 0 R (lstnumber.-248.2) 2523 0 R (lstnumber.-248.3) 2524 0 R (lstnumber.-248.4) 2525 0 R (lstnumber.-248.5) 2526 0 R] /Limits [(lstnumber.-247.5) (lstnumber.-248.5)] >> endobj 6125 0 obj << /Names [(lstnumber.-248.6) 2527 0 R (lstnumber.-248.7) 2528 0 R (lstnumber.-249.1) 2531 0 R (lstnumber.-25.1) 454 0 R (lstnumber.-25.2) 455 0 R (lstnumber.-250.1) 2542 0 R] /Limits [(lstnumber.-248.6) (lstnumber.-250.1)] >> endobj 6126 0 obj << /Names [(lstnumber.-251.1) 2544 0 R (lstnumber.-252.1) 2546 0 R (lstnumber.-253.1) 2548 0 R (lstnumber.-254.1) 2550 0 R (lstnumber.-255.1) 2563 0 R (lstnumber.-255.2) 2564 0 R] /Limits [(lstnumber.-251.1) (lstnumber.-255.2)] >> endobj 6127 0 obj << /Names [(lstnumber.-255.3) 2565 0 R (lstnumber.-255.4) 2566 0 R (lstnumber.-255.5) 2567 0 R (lstnumber.-255.6) 2568 0 R (lstnumber.-255.7) 2569 0 R (lstnumber.-256.1) 2575 0 R] /Limits [(lstnumber.-255.3) (lstnumber.-256.1)] >> endobj 6128 0 obj << /Names [(lstnumber.-256.2) 2576 0 R (lstnumber.-256.3) 2577 0 R (lstnumber.-256.4) 2578 0 R (lstnumber.-256.5) 2579 0 R (lstnumber.-256.6) 2580 0 R (lstnumber.-257.1) 2637 0 R] /Limits [(lstnumber.-256.2) (lstnumber.-257.1)] >> endobj 6129 0 obj << /Names [(lstnumber.-258.1) 2700 0 R (lstnumber.-258.2) 2701 0 R (lstnumber.-259.1) 2746 0 R (lstnumber.-259.2) 2747 0 R (lstnumber.-259.3) 2748 0 R (lstnumber.-259.4) 2749 0 R] /Limits [(lstnumber.-258.1) (lstnumber.-259.4)] >> endobj 6130 0 obj << /Names [(lstnumber.-26.1) 457 0 R (lstnumber.-26.2) 458 0 R (lstnumber.-26.3) 459 0 R (lstnumber.-26.4) 460 0 R (lstnumber.-260.1) 2751 0 R (lstnumber.-260.2) 2752 0 R] /Limits [(lstnumber.-26.1) (lstnumber.-260.2)] >> endobj 6131 0 obj << /Names [(lstnumber.-260.3) 2753 0 R (lstnumber.-260.4) 2754 0 R (lstnumber.-261.1) 2765 0 R (lstnumber.-261.2) 2766 0 R (lstnumber.-261.3) 2767 0 R (lstnumber.-261.4) 2768 0 R] /Limits [(lstnumber.-260.3) (lstnumber.-261.4)] >> endobj 6132 0 obj << /Names [(lstnumber.-261.5) 2769 0 R (lstnumber.-262.1) 2771 0 R (lstnumber.-262.2) 2772 0 R (lstnumber.-262.3) 2773 0 R (lstnumber.-263.1) 2775 0 R (lstnumber.-263.2) 2776 0 R] /Limits [(lstnumber.-261.5) (lstnumber.-263.2)] >> endobj 6133 0 obj << /Names [(lstnumber.-264.1) 2789 0 R (lstnumber.-264.2) 2790 0 R (lstnumber.-264.3) 2791 0 R (lstnumber.-265.1) 2793 0 R (lstnumber.-265.2) 2794 0 R (lstnumber.-265.3) 2795 0 R] /Limits [(lstnumber.-264.1) (lstnumber.-265.3)] >> endobj 6134 0 obj << /Names [(lstnumber.-265.4) 2796 0 R (lstnumber.-266.1) 2798 0 R (lstnumber.-266.2) 2799 0 R (lstnumber.-266.3) 2800 0 R (lstnumber.-266.4) 2801 0 R (lstnumber.-266.5) 2802 0 R] /Limits [(lstnumber.-265.4) (lstnumber.-266.5)] >> endobj 6135 0 obj << /Names [(lstnumber.-267.1) 2811 0 R (lstnumber.-267.2) 2812 0 R (lstnumber.-267.3) 2813 0 R (lstnumber.-267.4) 2814 0 R (lstnumber.-268.1) 2816 0 R (lstnumber.-268.2) 2817 0 R] /Limits [(lstnumber.-267.1) (lstnumber.-268.2)] >> endobj 6136 0 obj << /Names [(lstnumber.-268.3) 2818 0 R (lstnumber.-268.4) 2819 0 R (lstnumber.-269.1) 2827 0 R (lstnumber.-269.2) 2828 0 R (lstnumber.-269.3) 2829 0 R (lstnumber.-269.4) 2830 0 R] /Limits [(lstnumber.-268.3) (lstnumber.-269.4)] >> endobj 6137 0 obj << /Names [(lstnumber.-269.5) 2831 0 R (lstnumber.-27.1) 469 0 R (lstnumber.-27.2) 470 0 R (lstnumber.-27.3) 471 0 R (lstnumber.-27.4) 472 0 R (lstnumber.-270.1) 2833 0 R] /Limits [(lstnumber.-269.5) (lstnumber.-270.1)] >> endobj 6138 0 obj << /Names [(lstnumber.-270.2) 2834 0 R (lstnumber.-270.3) 2835 0 R (lstnumber.-271.1) 2837 0 R (lstnumber.-271.2) 2838 0 R (lstnumber.-271.3) 2839 0 R (lstnumber.-272.1) 2852 0 R] /Limits [(lstnumber.-270.2) (lstnumber.-272.1)] >> endobj 6139 0 obj << /Names [(lstnumber.-272.2) 2853 0 R (lstnumber.-272.3) 2854 0 R (lstnumber.-273.1) 2856 0 R (lstnumber.-273.2) 2857 0 R (lstnumber.-273.3) 2858 0 R (lstnumber.-274.1) 2860 0 R] /Limits [(lstnumber.-272.2) (lstnumber.-274.1)] >> endobj 6140 0 obj << /Names [(lstnumber.-274.2) 2861 0 R (lstnumber.-275.1) 2873 0 R (lstnumber.-275.2) 2874 0 R (lstnumber.-275.3) 2875 0 R (lstnumber.-276.1) 2877 0 R (lstnumber.-276.2) 2878 0 R] /Limits [(lstnumber.-274.2) (lstnumber.-276.2)] >> endobj 6141 0 obj << /Names [(lstnumber.-276.3) 2879 0 R (lstnumber.-277.1) 2881 0 R (lstnumber.-277.2) 2882 0 R (lstnumber.-277.3) 2883 0 R (lstnumber.-277.4) 2884 0 R (lstnumber.-278.1) 2900 0 R] /Limits [(lstnumber.-276.3) (lstnumber.-278.1)] >> endobj 6142 0 obj << /Names [(lstnumber.-278.2) 2901 0 R (lstnumber.-278.3) 2902 0 R (lstnumber.-278.4) 2903 0 R (lstnumber.-278.5) 2904 0 R (lstnumber.-279.1) 2906 0 R (lstnumber.-279.2) 2907 0 R] /Limits [(lstnumber.-278.2) (lstnumber.-279.2)] >> endobj 6143 0 obj << /Names [(lstnumber.-279.3) 2908 0 R (lstnumber.-279.4) 2909 0 R (lstnumber.-279.5) 2910 0 R (lstnumber.-28.1) 474 0 R (lstnumber.-28.2) 475 0 R (lstnumber.-28.3) 476 0 R] /Limits [(lstnumber.-279.3) (lstnumber.-28.3)] >> endobj 6144 0 obj << /Names [(lstnumber.-28.4) 477 0 R (lstnumber.-280.1) 2920 0 R (lstnumber.-281.1) 2923 0 R (lstnumber.-282.1) 2925 0 R (lstnumber.-283.1) 2927 0 R (lstnumber.-284.1) 2929 0 R] /Limits [(lstnumber.-28.4) (lstnumber.-284.1)] >> endobj 6145 0 obj << /Names [(lstnumber.-285.1) 2931 0 R (lstnumber.-286.1) 2938 0 R (lstnumber.-287.1) 2940 0 R (lstnumber.-288.1) 2942 0 R (lstnumber.-289.1) 2945 0 R (lstnumber.-289.2) 2946 0 R] /Limits [(lstnumber.-285.1) (lstnumber.-289.2)] >> endobj 6146 0 obj << /Names [(lstnumber.-289.3) 2947 0 R (lstnumber.-289.4) 2948 0 R (lstnumber.-29.1) 479 0 R (lstnumber.-29.2) 480 0 R (lstnumber.-29.3) 481 0 R (lstnumber.-290.1) 2950 0 R] /Limits [(lstnumber.-289.3) (lstnumber.-290.1)] >> endobj 6147 0 obj << /Names [(lstnumber.-290.2) 2951 0 R (lstnumber.-290.3) 2952 0 R (lstnumber.-290.4) 2953 0 R (lstnumber.-291.1) 2962 0 R (lstnumber.-291.2) 2963 0 R (lstnumber.-291.3) 2964 0 R] /Limits [(lstnumber.-290.2) (lstnumber.-291.3)] >> endobj 6148 0 obj << /Names [(lstnumber.-291.4) 2965 0 R (lstnumber.-291.5) 2966 0 R (lstnumber.-292.1) 2968 0 R (lstnumber.-292.2) 2969 0 R (lstnumber.-292.3) 2970 0 R (lstnumber.-292.4) 2971 0 R] /Limits [(lstnumber.-291.4) (lstnumber.-292.4)] >> endobj 6149 0 obj << /Names [(lstnumber.-292.5) 2972 0 R (lstnumber.-293.1) 3026 0 R (lstnumber.-293.2) 3027 0 R (lstnumber.-293.3) 3028 0 R (lstnumber.-293.4) 3029 0 R (lstnumber.-293.5) 3030 0 R] /Limits [(lstnumber.-292.5) (lstnumber.-293.5)] >> endobj 6150 0 obj << /Names [(lstnumber.-294.1) 3073 0 R (lstnumber.-294.2) 3074 0 R (lstnumber.-295.1) 3080 0 R (lstnumber.-295.2) 3081 0 R (lstnumber.-295.3) 3082 0 R (lstnumber.-296.1) 3107 0 R] /Limits [(lstnumber.-294.1) (lstnumber.-296.1)] >> endobj 6151 0 obj << /Names [(lstnumber.-296.2) 3108 0 R (lstnumber.-296.3) 3109 0 R (lstnumber.-297.1) 3111 0 R (lstnumber.-297.2) 3112 0 R (lstnumber.-297.3) 3113 0 R (lstnumber.-298.1) 3115 0 R] /Limits [(lstnumber.-296.2) (lstnumber.-298.1)] >> endobj 6152 0 obj << /Names [(lstnumber.-298.2) 3116 0 R (lstnumber.-298.3) 3125 0 R (lstnumber.-299.1) 3127 0 R (lstnumber.-299.2) 3128 0 R (lstnumber.-299.3) 3129 0 R (lstnumber.-3.1) 283 0 R] /Limits [(lstnumber.-298.2) (lstnumber.-3.1)] >> endobj 6153 0 obj << /Names [(lstnumber.-3.2) 307 0 R (lstnumber.-30.1) 493 0 R (lstnumber.-30.2) 494 0 R (lstnumber.-30.3) 495 0 R (lstnumber.-300.1) 3131 0 R (lstnumber.-300.2) 3132 0 R] /Limits [(lstnumber.-3.2) (lstnumber.-300.2)] >> endobj 6154 0 obj << /Names [(lstnumber.-300.3) 3133 0 R (lstnumber.-301.1) 3146 0 R (lstnumber.-301.2) 3147 0 R (lstnumber.-301.3) 3148 0 R (lstnumber.-302.1) 3150 0 R (lstnumber.-302.2) 3151 0 R] /Limits [(lstnumber.-300.3) (lstnumber.-302.2)] >> endobj 6155 0 obj << /Names [(lstnumber.-302.3) 3152 0 R (lstnumber.-302.4) 3153 0 R (lstnumber.-303.1) 3168 0 R (lstnumber.-303.2) 3169 0 R (lstnumber.-303.3) 3170 0 R (lstnumber.-304.1) 3172 0 R] /Limits [(lstnumber.-302.3) (lstnumber.-304.1)] >> endobj 6156 0 obj << /Names [(lstnumber.-304.2) 3173 0 R (lstnumber.-304.3) 3174 0 R (lstnumber.-305.1) 3176 0 R (lstnumber.-305.2) 3177 0 R (lstnumber.-305.3) 3178 0 R (lstnumber.-306.1) 3189 0 R] /Limits [(lstnumber.-304.2) (lstnumber.-306.1)] >> endobj 6157 0 obj << /Names [(lstnumber.-306.2) 3190 0 R (lstnumber.-307.1) 3192 0 R (lstnumber.-307.2) 3193 0 R (lstnumber.-307.3) 3194 0 R (lstnumber.-308.1) 3196 0 R (lstnumber.-308.2) 3197 0 R] /Limits [(lstnumber.-306.2) (lstnumber.-308.2)] >> endobj 6158 0 obj << /Names [(lstnumber.-308.3) 3198 0 R (lstnumber.-309.1) 3206 0 R (lstnumber.-309.2) 3207 0 R (lstnumber.-309.3) 3208 0 R (lstnumber.-31.1) 497 0 R (lstnumber.-31.2) 498 0 R] /Limits [(lstnumber.-308.3) (lstnumber.-31.2)] >> endobj 6159 0 obj << /Names [(lstnumber.-31.3) 499 0 R (lstnumber.-310.1) 3211 0 R (lstnumber.-311.1) 3214 0 R (lstnumber.-312.1) 3216 0 R (lstnumber.-313.1) 3218 0 R (lstnumber.-314.1) 3225 0 R] /Limits [(lstnumber.-31.3) (lstnumber.-314.1)] >> endobj 6160 0 obj << /Names [(lstnumber.-315.1) 3227 0 R (lstnumber.-316.1) 3230 0 R (lstnumber.-316.2) 3231 0 R (lstnumber.-316.3) 3232 0 R (lstnumber.-316.4) 3233 0 R (lstnumber.-317.1) 3235 0 R] /Limits [(lstnumber.-315.1) (lstnumber.-317.1)] >> endobj 6161 0 obj << /Names [(lstnumber.-317.2) 3236 0 R (lstnumber.-317.3) 3237 0 R (lstnumber.-317.4) 3238 0 R (lstnumber.-318.1) 3250 0 R (lstnumber.-318.2) 3251 0 R (lstnumber.-318.3) 3252 0 R] /Limits [(lstnumber.-317.2) (lstnumber.-318.3)] >> endobj 6162 0 obj << /Names [(lstnumber.-318.4) 3253 0 R (lstnumber.-319.1) 3255 0 R (lstnumber.-319.2) 3256 0 R (lstnumber.-319.3) 3257 0 R (lstnumber.-319.4) 3258 0 R (lstnumber.-32.1) 501 0 R] /Limits [(lstnumber.-318.4) (lstnumber.-32.1)] >> endobj 6163 0 obj << /Names [(lstnumber.-32.2) 502 0 R (lstnumber.-32.3) 511 0 R (lstnumber.-32.4) 512 0 R (lstnumber.-32.5) 513 0 R (lstnumber.-320.1) 3286 0 R (lstnumber.-320.2) 3287 0 R] /Limits [(lstnumber.-32.2) (lstnumber.-320.2)] >> endobj 6164 0 obj << /Names [(lstnumber.-320.3) 3288 0 R (lstnumber.-320.4) 3289 0 R (lstnumber.-320.5) 3290 0 R (lstnumber.-320.6) 3291 0 R (lstnumber.-320.7) 3292 0 R (lstnumber.-320.8) 3293 0 R] /Limits [(lstnumber.-320.3) (lstnumber.-320.8)] >> endobj 6165 0 obj << /Names [(lstnumber.-320.9) 3294 0 R (lstnumber.-321.1) 3319 0 R (lstnumber.-321.2) 3320 0 R (lstnumber.-321.3) 3321 0 R (lstnumber.-322.1) 3324 0 R (lstnumber.-323.1) 3345 0 R] /Limits [(lstnumber.-320.9) (lstnumber.-323.1)] >> endobj 6166 0 obj << /Names [(lstnumber.-324.1) 3347 0 R (lstnumber.-325.1) 3349 0 R (lstnumber.-326.1) 3361 0 R (lstnumber.-327.1) 3363 0 R (lstnumber.-328.1) 3365 0 R (lstnumber.-329.1) 3370 0 R] /Limits [(lstnumber.-324.1) (lstnumber.-329.1)] >> endobj 6167 0 obj << /Names [(lstnumber.-329.2) 3371 0 R (lstnumber.-329.3) 3372 0 R (lstnumber.-329.4) 3373 0 R (lstnumber.-329.5) 3374 0 R (lstnumber.-329.6) 3375 0 R (lstnumber.-329.7) 3376 0 R] /Limits [(lstnumber.-329.2) (lstnumber.-329.7)] >> endobj 6168 0 obj << /Names [(lstnumber.-33.1) 515 0 R (lstnumber.-33.2) 516 0 R (lstnumber.-330.1) 3396 0 R (lstnumber.-330.2) 3397 0 R (lstnumber.-330.3) 3398 0 R (lstnumber.-330.4) 3399 0 R] /Limits [(lstnumber.-33.1) (lstnumber.-330.4)] >> endobj 6169 0 obj << /Names [(lstnumber.-331.1) 3402 0 R (lstnumber.-332.1) 3493 0 R (lstnumber.-332.2) 3494 0 R (lstnumber.-333.1) 3500 0 R (lstnumber.-333.2) 3501 0 R (lstnumber.-334.1) 3503 0 R] /Limits [(lstnumber.-331.1) (lstnumber.-334.1)] >> endobj 6170 0 obj << /Names [(lstnumber.-334.2) 3504 0 R (lstnumber.-335.1) 3514 0 R (lstnumber.-335.2) 3515 0 R (lstnumber.-335.3) 3516 0 R (lstnumber.-336.1) 3518 0 R (lstnumber.-336.2) 3519 0 R] /Limits [(lstnumber.-334.2) (lstnumber.-336.2)] >> endobj 6171 0 obj << /Names [(lstnumber.-337.1) 3521 0 R (lstnumber.-337.2) 3522 0 R (lstnumber.-338.1) 3524 0 R (lstnumber.-338.2) 3525 0 R (lstnumber.-339.1) 3539 0 R (lstnumber.-339.2) 3540 0 R] /Limits [(lstnumber.-337.1) (lstnumber.-339.2)] >> endobj 6172 0 obj << /Names [(lstnumber.-34.1) 518 0 R (lstnumber.-34.2) 519 0 R (lstnumber.-34.3) 520 0 R (lstnumber.-340.1) 3543 0 R (lstnumber.-341.1) 3545 0 R (lstnumber.-341.2) 3546 0 R] /Limits [(lstnumber.-34.1) (lstnumber.-341.2)] >> endobj 6173 0 obj << /Names [(lstnumber.-341.3) 3547 0 R (lstnumber.-342.1) 3555 0 R (lstnumber.-343.1) 3557 0 R (lstnumber.-344.1) 3559 0 R (lstnumber.-345.1) 3561 0 R (lstnumber.-346.1) 3563 0 R] /Limits [(lstnumber.-341.3) (lstnumber.-346.1)] >> endobj 6174 0 obj << /Names [(lstnumber.-347.1) 3565 0 R (lstnumber.-348.1) 3586 0 R (lstnumber.-349.1) 3588 0 R (lstnumber.-35.1) 526 0 R (lstnumber.-35.2) 527 0 R (lstnumber.-350.1) 3590 0 R] /Limits [(lstnumber.-347.1) (lstnumber.-350.1)] >> endobj 6175 0 obj << /Names [(lstnumber.-351.1) 3592 0 R (lstnumber.-352.1) 3594 0 R (lstnumber.-353.1) 3596 0 R (lstnumber.-354.1) 3638 0 R (lstnumber.-354.2) 3639 0 R (lstnumber.-355.1) 3670 0 R] /Limits [(lstnumber.-351.1) (lstnumber.-355.1)] >> endobj 6176 0 obj << /Names [(lstnumber.-355.2) 3671 0 R (lstnumber.-356.1) 3673 0 R (lstnumber.-356.2) 3674 0 R (lstnumber.-356.3) 3675 0 R (lstnumber.-357.1) 3677 0 R (lstnumber.-357.2) 3678 0 R] /Limits [(lstnumber.-355.2) (lstnumber.-357.2)] >> endobj 6177 0 obj << /Names [(lstnumber.-357.3) 3679 0 R (lstnumber.-358.1) 3681 0 R (lstnumber.-358.2) 3682 0 R (lstnumber.-358.3) 3683 0 R (lstnumber.-359.1) 3690 0 R (lstnumber.-359.2) 3691 0 R] /Limits [(lstnumber.-357.3) (lstnumber.-359.2)] >> endobj 6178 0 obj << /Names [(lstnumber.-359.3) 3692 0 R (lstnumber.-36.1) 529 0 R (lstnumber.-36.2) 530 0 R (lstnumber.-360.1) 3694 0 R (lstnumber.-360.2) 3695 0 R (lstnumber.-360.3) 3696 0 R] /Limits [(lstnumber.-359.3) (lstnumber.-360.3)] >> endobj 6179 0 obj << /Names [(lstnumber.-360.4) 3697 0 R (lstnumber.-360.5) 3698 0 R (lstnumber.-360.6) 3699 0 R (lstnumber.-361.1) 3701 0 R (lstnumber.-361.2) 3702 0 R (lstnumber.-361.3) 3703 0 R] /Limits [(lstnumber.-360.4) (lstnumber.-361.3)] >> endobj 6180 0 obj << /Names [(lstnumber.-361.4) 3704 0 R (lstnumber.-361.5) 3710 0 R (lstnumber.-361.6) 3711 0 R (lstnumber.-362.1) 3714 0 R (lstnumber.-363.1) 3717 0 R (lstnumber.-364.1) 3719 0 R] /Limits [(lstnumber.-361.4) (lstnumber.-364.1)] >> endobj 6181 0 obj << /Names [(lstnumber.-365.1) 3721 0 R (lstnumber.-366.1) 3727 0 R (lstnumber.-367.1) 3729 0 R (lstnumber.-368.1) 3731 0 R (lstnumber.-369.1) 3733 0 R (lstnumber.-37.1) 532 0 R] /Limits [(lstnumber.-365.1) (lstnumber.-37.1)] >> endobj 6182 0 obj << /Names [(lstnumber.-37.2) 533 0 R (lstnumber.-370.1) 3735 0 R (lstnumber.-371.1) 3737 0 R (lstnumber.-372.1) 3747 0 R (lstnumber.-373.1) 3749 0 R (lstnumber.-374.1) 3751 0 R] /Limits [(lstnumber.-37.2) (lstnumber.-374.1)] >> endobj 6183 0 obj << /Names [(lstnumber.-375.1) 3753 0 R (lstnumber.-376.1) 3769 0 R (lstnumber.-376.2) 3770 0 R (lstnumber.-376.3) 3771 0 R (lstnumber.-376.4) 3772 0 R (lstnumber.-376.5) 3773 0 R] /Limits [(lstnumber.-375.1) (lstnumber.-376.5)] >> endobj 6184 0 obj << /Names [(lstnumber.-376.6) 3774 0 R (lstnumber.-376.7) 3775 0 R (lstnumber.-377.1) 3781 0 R (lstnumber.-377.2) 3782 0 R (lstnumber.-377.3) 3783 0 R (lstnumber.-377.4) 3784 0 R] /Limits [(lstnumber.-376.6) (lstnumber.-377.4)] >> endobj 6185 0 obj << /Names [(lstnumber.-377.5) 3785 0 R (lstnumber.-377.6) 3786 0 R (lstnumber.-378.1) 3859 0 R (lstnumber.-379.1) 3897 0 R (lstnumber.-379.2) 3898 0 R (lstnumber.-38.1) 543 0 R] /Limits [(lstnumber.-377.5) (lstnumber.-38.1)] >> endobj 6186 0 obj << /Names [(lstnumber.-38.2) 544 0 R (lstnumber.-38.3) 545 0 R (lstnumber.-380.1) 3935 0 R (lstnumber.-380.2) 3936 0 R (lstnumber.-380.3) 3937 0 R (lstnumber.-380.4) 3938 0 R] /Limits [(lstnumber.-38.2) (lstnumber.-380.4)] >> endobj 6187 0 obj << /Names [(lstnumber.-380.5) 3939 0 R (lstnumber.-381.1) 3941 0 R (lstnumber.-381.2) 3942 0 R (lstnumber.-381.3) 3943 0 R (lstnumber.-381.4) 3944 0 R (lstnumber.-382.1) 3946 0 R] /Limits [(lstnumber.-380.5) (lstnumber.-382.1)] >> endobj 6188 0 obj << /Names [(lstnumber.-382.2) 3947 0 R (lstnumber.-383.1) 3957 0 R (lstnumber.-383.2) 3958 0 R (lstnumber.-383.3) 3959 0 R (lstnumber.-383.4) 3960 0 R (lstnumber.-383.5) 3961 0 R] /Limits [(lstnumber.-382.2) (lstnumber.-383.5)] >> endobj 6189 0 obj << /Names [(lstnumber.-384.1) 3963 0 R (lstnumber.-384.2) 3964 0 R (lstnumber.-384.3) 3965 0 R (lstnumber.-384.4) 3966 0 R (lstnumber.-385.1) 3976 0 R (lstnumber.-385.2) 3977 0 R] /Limits [(lstnumber.-384.1) (lstnumber.-385.2)] >> endobj 6190 0 obj << /Names [(lstnumber.-385.3) 3978 0 R (lstnumber.-386.1) 3980 0 R (lstnumber.-386.2) 3981 0 R (lstnumber.-386.3) 3982 0 R (lstnumber.-386.4) 3983 0 R (lstnumber.-387.1) 3985 0 R] /Limits [(lstnumber.-385.3) (lstnumber.-387.1)] >> endobj 6191 0 obj << /Names [(lstnumber.-387.2) 3986 0 R (lstnumber.-387.3) 3987 0 R (lstnumber.-387.4) 3988 0 R (lstnumber.-387.5) 3989 0 R (lstnumber.-387.6) 3990 0 R (lstnumber.-388.1) 3999 0 R] /Limits [(lstnumber.-387.2) (lstnumber.-388.1)] >> endobj 6192 0 obj << /Names [(lstnumber.-388.2) 4000 0 R (lstnumber.-388.3) 4001 0 R (lstnumber.-388.4) 4002 0 R (lstnumber.-388.5) 4003 0 R (lstnumber.-389.1) 4005 0 R (lstnumber.-389.2) 4006 0 R] /Limits [(lstnumber.-388.2) (lstnumber.-389.2)] >> endobj 6193 0 obj << /Names [(lstnumber.-389.3) 4007 0 R (lstnumber.-389.4) 4008 0 R (lstnumber.-39.1) 547 0 R (lstnumber.-39.2) 548 0 R (lstnumber.-390.1) 4010 0 R (lstnumber.-390.2) 4011 0 R] /Limits [(lstnumber.-389.3) (lstnumber.-390.2)] >> endobj 6194 0 obj << /Names [(lstnumber.-390.3) 4012 0 R (lstnumber.-390.4) 4013 0 R (lstnumber.-391.1) 4024 0 R (lstnumber.-391.2) 4025 0 R (lstnumber.-391.3) 4026 0 R (lstnumber.-391.4) 4027 0 R] /Limits [(lstnumber.-390.3) (lstnumber.-391.4)] >> endobj 6195 0 obj << /Names [(lstnumber.-392.1) 4029 0 R (lstnumber.-392.2) 4030 0 R (lstnumber.-392.3) 4031 0 R (lstnumber.-393.1) 4041 0 R (lstnumber.-393.2) 4042 0 R (lstnumber.-393.3) 4043 0 R] /Limits [(lstnumber.-392.1) (lstnumber.-393.3)] >> endobj 6196 0 obj << /Names [(lstnumber.-393.4) 4044 0 R (lstnumber.-394.1) 4046 0 R (lstnumber.-394.2) 4047 0 R (lstnumber.-394.3) 4048 0 R (lstnumber.-395.1) 4050 0 R (lstnumber.-395.2) 4051 0 R] /Limits [(lstnumber.-393.4) (lstnumber.-395.2)] >> endobj 6197 0 obj << /Names [(lstnumber.-395.3) 4052 0 R (lstnumber.-395.4) 4053 0 R (lstnumber.-395.5) 4054 0 R (lstnumber.-396.1) 4064 0 R (lstnumber.-396.2) 4065 0 R (lstnumber.-396.3) 4066 0 R] /Limits [(lstnumber.-395.3) (lstnumber.-396.3)] >> endobj 6198 0 obj << /Names [(lstnumber.-396.4) 4067 0 R (lstnumber.-397.1) 4069 0 R (lstnumber.-397.2) 4070 0 R (lstnumber.-397.3) 4071 0 R (lstnumber.-397.4) 4072 0 R (lstnumber.-397.5) 4073 0 R] /Limits [(lstnumber.-396.4) (lstnumber.-397.5)] >> endobj 6199 0 obj << /Names [(lstnumber.-398.1) 4081 0 R (lstnumber.-398.2) 4082 0 R (lstnumber.-398.3) 4083 0 R (lstnumber.-398.4) 4084 0 R (lstnumber.-398.5) 4085 0 R (lstnumber.-399.1) 4087 0 R] /Limits [(lstnumber.-398.1) (lstnumber.-399.1)] >> endobj 6200 0 obj << /Names [(lstnumber.-399.2) 4088 0 R (lstnumber.-399.3) 4089 0 R (lstnumber.-399.4) 4090 0 R (lstnumber.-399.5) 4091 0 R (lstnumber.-399.6) 4092 0 R (lstnumber.-4.1) 309 0 R] /Limits [(lstnumber.-399.2) (lstnumber.-4.1)] >> endobj 6201 0 obj << /Names [(lstnumber.-4.2) 310 0 R (lstnumber.-4.3) 311 0 R (lstnumber.-40.1) 550 0 R (lstnumber.-40.2) 551 0 R (lstnumber.-40.3) 552 0 R (lstnumber.-400.1) 4094 0 R] /Limits [(lstnumber.-4.2) (lstnumber.-400.1)] >> endobj 6202 0 obj << /Names [(lstnumber.-400.2) 4095 0 R (lstnumber.-400.3) 4096 0 R (lstnumber.-400.4) 4097 0 R (lstnumber.-400.5) 4098 0 R (lstnumber.-401.1) 4107 0 R (lstnumber.-401.2) 4108 0 R] /Limits [(lstnumber.-400.2) (lstnumber.-401.2)] >> endobj 6203 0 obj << /Names [(lstnumber.-401.3) 4109 0 R (lstnumber.-401.4) 4110 0 R (lstnumber.-401.5) 4111 0 R (lstnumber.-401.6) 4112 0 R (lstnumber.-402.1) 4114 0 R (lstnumber.-402.2) 4115 0 R] /Limits [(lstnumber.-401.3) (lstnumber.-402.2)] >> endobj 6204 0 obj << /Names [(lstnumber.-402.3) 4116 0 R (lstnumber.-402.4) 4117 0 R (lstnumber.-402.5) 4118 0 R (lstnumber.-403.1) 4126 0 R (lstnumber.-403.2) 4127 0 R (lstnumber.-403.3) 4128 0 R] /Limits [(lstnumber.-402.3) (lstnumber.-403.3)] >> endobj 6205 0 obj << /Names [(lstnumber.-403.4) 4129 0 R (lstnumber.-403.5) 4130 0 R (lstnumber.-403.6) 4131 0 R (lstnumber.-404.1) 4133 0 R (lstnumber.-404.2) 4134 0 R (lstnumber.-404.3) 4135 0 R] /Limits [(lstnumber.-403.4) (lstnumber.-404.3)] >> endobj 6206 0 obj << /Names [(lstnumber.-404.4) 4136 0 R (lstnumber.-404.5) 4137 0 R (lstnumber.-405.1) 4139 0 R (lstnumber.-405.2) 4140 0 R (lstnumber.-405.3) 4141 0 R (lstnumber.-405.4) 4142 0 R] /Limits [(lstnumber.-404.4) (lstnumber.-405.4)] >> endobj 6207 0 obj << /Names [(lstnumber.-405.5) 4143 0 R (lstnumber.-405.6) 4144 0 R (lstnumber.-406.1) 4157 0 R (lstnumber.-406.2) 4158 0 R (lstnumber.-406.3) 4159 0 R (lstnumber.-406.4) 4160 0 R] /Limits [(lstnumber.-405.5) (lstnumber.-406.4)] >> endobj 6208 0 obj << /Names [(lstnumber.-406.5) 4161 0 R (lstnumber.-407.1) 4163 0 R (lstnumber.-407.2) 4164 0 R (lstnumber.-407.3) 4165 0 R (lstnumber.-407.4) 4166 0 R (lstnumber.-407.5) 4167 0 R] /Limits [(lstnumber.-406.5) (lstnumber.-407.5)] >> endobj 6209 0 obj << /Names [(lstnumber.-407.6) 4168 0 R (lstnumber.-408.1) 4178 0 R (lstnumber.-408.2) 4179 0 R (lstnumber.-408.3) 4180 0 R (lstnumber.-408.4) 4181 0 R (lstnumber.-408.5) 4182 0 R] /Limits [(lstnumber.-407.6) (lstnumber.-408.5)] >> endobj 6210 0 obj << /Names [(lstnumber.-409.1) 4184 0 R (lstnumber.-409.2) 4185 0 R (lstnumber.-409.3) 4186 0 R (lstnumber.-409.4) 4187 0 R (lstnumber.-409.5) 4188 0 R (lstnumber.-41.1) 566 0 R] /Limits [(lstnumber.-409.1) (lstnumber.-41.1)] >> endobj 6211 0 obj << /Names [(lstnumber.-410.1) 4190 0 R (lstnumber.-410.2) 4191 0 R (lstnumber.-410.3) 4192 0 R (lstnumber.-410.4) 4193 0 R (lstnumber.-411.1) 4204 0 R (lstnumber.-411.2) 4205 0 R] /Limits [(lstnumber.-410.1) (lstnumber.-411.2)] >> endobj 6212 0 obj << /Names [(lstnumber.-411.3) 4206 0 R (lstnumber.-412.1) 4209 0 R (lstnumber.-413.1) 4212 0 R (lstnumber.-414.1) 4222 0 R (lstnumber.-415.1) 4225 0 R (lstnumber.-415.2) 4226 0 R] /Limits [(lstnumber.-411.3) (lstnumber.-415.2)] >> endobj 6213 0 obj << /Names [(lstnumber.-415.3) 4227 0 R (lstnumber.-415.4) 4228 0 R (lstnumber.-415.5) 4229 0 R (lstnumber.-416.1) 4231 0 R (lstnumber.-416.2) 4232 0 R (lstnumber.-416.3) 4233 0 R] /Limits [(lstnumber.-415.3) (lstnumber.-416.3)] >> endobj 6214 0 obj << /Names [(lstnumber.-416.4) 4234 0 R (lstnumber.-416.5) 4235 0 R (lstnumber.-416.6) 4236 0 R (lstnumber.-417.1) 4275 0 R (lstnumber.-417.2) 4276 0 R (lstnumber.-417.3) 4277 0 R] /Limits [(lstnumber.-416.4) (lstnumber.-417.3)] >> endobj 6215 0 obj << /Names [(lstnumber.-417.4) 4278 0 R (lstnumber.-418.1) 4308 0 R (lstnumber.-418.2) 4309 0 R (lstnumber.-418.3) 4310 0 R (lstnumber.-419.1) 4312 0 R (lstnumber.-419.2) 4313 0 R] /Limits [(lstnumber.-417.4) (lstnumber.-419.2)] >> endobj 6216 0 obj << /Names [(lstnumber.-419.3) 4314 0 R (lstnumber.-42.1) 568 0 R (lstnumber.-420.1) 4316 0 R (lstnumber.-420.2) 4317 0 R (lstnumber.-420.3) 4318 0 R (lstnumber.-420.4) 4319 0 R] /Limits [(lstnumber.-419.3) (lstnumber.-420.4)] >> endobj 6217 0 obj << /Names [(lstnumber.-420.5) 4320 0 R (lstnumber.-420.6) 4328 0 R (lstnumber.-420.7) 4329 0 R (lstnumber.-420.8) 4330 0 R (lstnumber.-421.1) 4333 0 R (lstnumber.-422.1) 4339 0 R] /Limits [(lstnumber.-420.5) (lstnumber.-422.1)] >> endobj 6218 0 obj << /Names [(lstnumber.-423.1) 4346 0 R (lstnumber.-424.1) 4348 0 R (lstnumber.-425.1) 4350 0 R (lstnumber.-426.1) 4352 0 R (lstnumber.-427.1) 4354 0 R (lstnumber.-428.1) 4382 0 R] /Limits [(lstnumber.-423.1) (lstnumber.-428.1)] >> endobj 6219 0 obj << /Names [(lstnumber.-429.1) 4384 0 R (lstnumber.-43.1) 570 0 R (lstnumber.-430.1) 4390 0 R (lstnumber.-430.2) 4391 0 R (lstnumber.-431.1) 4415 0 R (lstnumber.-432.1) 4417 0 R] /Limits [(lstnumber.-429.1) (lstnumber.-432.1)] >> endobj 6220 0 obj << /Names [(lstnumber.-432.2) 4418 0 R (lstnumber.-432.3) 4419 0 R (lstnumber.-432.4) 4420 0 R (lstnumber.-432.5) 4421 0 R (lstnumber.-432.6) 4422 0 R (lstnumber.-432.7) 4423 0 R] /Limits [(lstnumber.-432.2) (lstnumber.-432.7)] >> endobj 6221 0 obj << /Names [(lstnumber.-432.8) 4424 0 R (lstnumber.-432.9) 4425 0 R (lstnumber.-433.1) 4435 0 R (lstnumber.-434.1) 4438 0 R (lstnumber.-435.1) 4440 0 R (lstnumber.-436.1) 4442 0 R] /Limits [(lstnumber.-432.8) (lstnumber.-436.1)] >> endobj 6222 0 obj << /Names [(lstnumber.-437.1) 4444 0 R (lstnumber.-438.1) 4446 0 R (lstnumber.-439.1) 4477 0 R (lstnumber.-44.1) 572 0 R (lstnumber.-440.1) 4479 0 R (lstnumber.-441.1) 4481 0 R] /Limits [(lstnumber.-437.1) (lstnumber.-441.1)] >> endobj 6223 0 obj << /Names [(lstnumber.-442.1) 4510 0 R (lstnumber.-442.2) 4511 0 R (lstnumber.-443.1) 4517 0 R (lstnumber.-443.2) 4518 0 R (lstnumber.-443.3) 4519 0 R (lstnumber.-444.1) 4521 0 R] /Limits [(lstnumber.-442.1) (lstnumber.-444.1)] >> endobj 6224 0 obj << /Names [(lstnumber.-444.2) 4522 0 R (lstnumber.-444.3) 4523 0 R (lstnumber.-445.1) 4535 0 R (lstnumber.-445.2) 4536 0 R (lstnumber.-446.1) 4538 0 R (lstnumber.-446.2) 4539 0 R] /Limits [(lstnumber.-444.2) (lstnumber.-446.2)] >> endobj 6225 0 obj << /Names [(lstnumber.-446.3) 4540 0 R (lstnumber.-447.1) 4542 0 R (lstnumber.-447.2) 4543 0 R (lstnumber.-447.3) 4544 0 R (lstnumber.-448.1) 4554 0 R (lstnumber.-449.1) 4557 0 R] /Limits [(lstnumber.-446.3) (lstnumber.-449.1)] >> endobj 6226 0 obj << /Names [(lstnumber.-45.1) 577 0 R (lstnumber.-45.2) 578 0 R (lstnumber.-450.1) 4559 0 R (lstnumber.-451.1) 4561 0 R (lstnumber.-452.1) 4564 0 R (lstnumber.-452.2) 4565 0 R] /Limits [(lstnumber.-45.1) (lstnumber.-452.2)] >> endobj 6227 0 obj << /Names [(lstnumber.-452.3) 4566 0 R (lstnumber.-452.4) 4567 0 R (lstnumber.-453.1) 4604 0 R (lstnumber.-453.2) 4605 0 R (lstnumber.-453.3) 4606 0 R (lstnumber.-453.4) 4607 0 R] /Limits [(lstnumber.-452.3) (lstnumber.-453.4)] >> endobj 6228 0 obj << /Names [(lstnumber.-454.1) 4638 0 R (lstnumber.-454.2) 4639 0 R (lstnumber.-454.3) 4640 0 R (lstnumber.-454.4) 4641 0 R (lstnumber.-454.5) 4642 0 R (lstnumber.-454.6) 4643 0 R] /Limits [(lstnumber.-454.1) (lstnumber.-454.6)] >> endobj 6229 0 obj << /Names [(lstnumber.-455.1) 4650 0 R (lstnumber.-455.2) 4651 0 R (lstnumber.-456.1) 4670 0 R (lstnumber.-456.2) 4671 0 R (lstnumber.-456.3) 4672 0 R (lstnumber.-456.4) 4673 0 R] /Limits [(lstnumber.-455.1) (lstnumber.-456.4)] >> endobj 6230 0 obj << /Names [(lstnumber.-456.5) 4674 0 R (lstnumber.-457.1) 4677 0 R (lstnumber.-457.2) 4678 0 R (lstnumber.-458.1) 4680 0 R (lstnumber.-458.2) 4681 0 R (lstnumber.-458.3) 4682 0 R] /Limits [(lstnumber.-456.5) (lstnumber.-458.3)] >> endobj 6231 0 obj << /Names [(lstnumber.-459.1) 4691 0 R (lstnumber.-46.1) 611 0 R (lstnumber.-46.2) 612 0 R (lstnumber.-46.3) 613 0 R (lstnumber.-46.4) 614 0 R (lstnumber.-460.1) 4693 0 R] /Limits [(lstnumber.-459.1) (lstnumber.-460.1)] >> endobj 6232 0 obj << /Names [(lstnumber.-461.1) 4696 0 R (lstnumber.-462.1) 4698 0 R (lstnumber.-463.1) 4700 0 R (lstnumber.-464.1) 4707 0 R (lstnumber.-465.1) 4709 0 R (lstnumber.-466.1) 4711 0 R] /Limits [(lstnumber.-461.1) (lstnumber.-466.1)] >> endobj 6233 0 obj << /Names [(lstnumber.-467.1) 4713 0 R (lstnumber.-468.1) 4715 0 R (lstnumber.-469.1) 4717 0 R (lstnumber.-47.1) 618 0 R (lstnumber.-470.1) 4719 0 R (lstnumber.-471.1) 4760 0 R] /Limits [(lstnumber.-467.1) (lstnumber.-471.1)] >> endobj 6234 0 obj << /Names [(lstnumber.-471.2) 4794 0 R (lstnumber.-471.3) 4795 0 R (lstnumber.-471.4) 4796 0 R (lstnumber.-472.1) 4801 0 R (lstnumber.-472.2) 4802 0 R (lstnumber.-473.1) 4804 0 R] /Limits [(lstnumber.-471.2) (lstnumber.-473.1)] >> endobj 6235 0 obj << /Names [(lstnumber.-473.2) 4805 0 R (lstnumber.-473.3) 4806 0 R (lstnumber.-473.4) 4807 0 R (lstnumber.-473.5) 4808 0 R (lstnumber.-474.1) 4823 0 R (lstnumber.-474.2) 4824 0 R] /Limits [(lstnumber.-473.2) (lstnumber.-474.2)] >> endobj 6236 0 obj << /Names [(lstnumber.-474.3) 4825 0 R (lstnumber.-475.1) 4827 0 R (lstnumber.-475.2) 4828 0 R (lstnumber.-476.1) 4830 0 R (lstnumber.-476.2) 4831 0 R (lstnumber.-476.3) 4832 0 R] /Limits [(lstnumber.-474.3) (lstnumber.-476.3)] >> endobj 6237 0 obj << /Names [(lstnumber.-476.4) 4833 0 R (lstnumber.-477.1) 4846 0 R (lstnumber.-477.2) 4847 0 R (lstnumber.-477.3) 4848 0 R (lstnumber.-477.4) 4849 0 R (lstnumber.-478.1) 4851 0 R] /Limits [(lstnumber.-476.4) (lstnumber.-478.1)] >> endobj 6238 0 obj << /Names [(lstnumber.-478.2) 4852 0 R (lstnumber.-478.3) 4853 0 R (lstnumber.-478.4) 4854 0 R (lstnumber.-479.1) 4868 0 R (lstnumber.-479.2) 4869 0 R (lstnumber.-479.3) 4870 0 R] /Limits [(lstnumber.-478.2) (lstnumber.-479.3)] >> endobj 6239 0 obj << /Names [(lstnumber.-479.4) 4871 0 R (lstnumber.-48.1) 622 0 R (lstnumber.-480.1) 4874 0 R (lstnumber.-481.1) 4876 0 R (lstnumber.-482.1) 4878 0 R (lstnumber.-483.1) 4880 0 R] /Limits [(lstnumber.-479.4) (lstnumber.-483.1)] >> endobj 6240 0 obj << /Names [(lstnumber.-483.2) 4881 0 R (lstnumber.-483.3) 4882 0 R (lstnumber.-483.4) 4883 0 R (lstnumber.-483.5) 4884 0 R (lstnumber.-483.6) 4885 0 R (lstnumber.-483.7) 4886 0 R] /Limits [(lstnumber.-483.2) (lstnumber.-483.7)] >> endobj 6241 0 obj << /Names [(lstnumber.-484.1) 4913 0 R (lstnumber.-484.2) 4914 0 R (lstnumber.-484.3) 4915 0 R (lstnumber.-484.4) 4916 0 R (lstnumber.-484.5) 4917 0 R (lstnumber.-484.6) 4918 0 R] /Limits [(lstnumber.-484.1) (lstnumber.-484.6)] >> endobj 6242 0 obj << /Names [(lstnumber.-485.1) 4920 0 R (lstnumber.-485.2) 4921 0 R (lstnumber.-485.3) 4922 0 R (lstnumber.-485.4) 4923 0 R (lstnumber.-486.1) 4933 0 R (lstnumber.-487.1) 4935 0 R] /Limits [(lstnumber.-485.1) (lstnumber.-487.1)] >> endobj 6243 0 obj << /Names [(lstnumber.-488.1) 4937 0 R (lstnumber.-489.1) 4939 0 R (lstnumber.-49.1) 624 0 R (lstnumber.-490.1) 4948 0 R (lstnumber.-490.2) 4949 0 R (lstnumber.-490.3) 4950 0 R] /Limits [(lstnumber.-488.1) (lstnumber.-490.3)] >> endobj 6244 0 obj << /Names [(lstnumber.-490.4) 4951 0 R (lstnumber.-490.5) 4952 0 R (lstnumber.-491.1) 4959 0 R (lstnumber.-492.1) 4962 0 R (lstnumber.-492.2) 4963 0 R (lstnumber.-492.3) 4964 0 R] /Limits [(lstnumber.-490.4) (lstnumber.-492.3)] >> endobj 6245 0 obj << /Names [(lstnumber.-493.1) 4979 0 R (lstnumber.-494.1) 4985 0 R (lstnumber.-494.2) 4986 0 R (lstnumber.-494.3) 4987 0 R (lstnumber.-494.4) 4988 0 R (lstnumber.-495.1) 4994 0 R] /Limits [(lstnumber.-493.1) (lstnumber.-495.1)] >> endobj 6246 0 obj << /Names [(lstnumber.-495.2) 4995 0 R (lstnumber.-495.3) 4996 0 R (lstnumber.-495.4) 4997 0 R (lstnumber.-496.1) 5010 0 R (lstnumber.-496.2) 5011 0 R (lstnumber.-496.3) 5012 0 R] /Limits [(lstnumber.-495.2) (lstnumber.-496.3)] >> endobj 6247 0 obj << /Names [(lstnumber.-496.4) 5013 0 R (lstnumber.-497.1) 5016 0 R (lstnumber.-498.1) 5018 0 R (lstnumber.-498.2) 5019 0 R (lstnumber.-498.3) 5020 0 R (lstnumber.-499.1) 5034 0 R] /Limits [(lstnumber.-496.4) (lstnumber.-499.1)] >> endobj 6248 0 obj << /Names [(lstnumber.-499.2) 5035 0 R (lstnumber.-499.3) 5036 0 R (lstnumber.-499.4) 5037 0 R (lstnumber.-5.1) 314 0 R (lstnumber.-5.2) 315 0 R (lstnumber.-50.1) 643 0 R] /Limits [(lstnumber.-499.2) (lstnumber.-50.1)] >> endobj 6249 0 obj << /Names [(lstnumber.-50.2) 644 0 R (lstnumber.-500.1) 5044 0 R (lstnumber.-501.1) 5047 0 R (lstnumber.-501.2) 5048 0 R (lstnumber.-501.3) 5049 0 R (lstnumber.-502.1) 5060 0 R] /Limits [(lstnumber.-50.2) (lstnumber.-502.1)] >> endobj 6250 0 obj << /Names [(lstnumber.-502.2) 5061 0 R (lstnumber.-502.3) 5062 0 R (lstnumber.-503.1) 5069 0 R (lstnumber.-504.1) 5080 0 R (lstnumber.-504.10) 5089 0 R (lstnumber.-504.11) 5090 0 R] /Limits [(lstnumber.-502.2) (lstnumber.-504.11)] >> endobj 6251 0 obj << /Names [(lstnumber.-504.12) 5091 0 R (lstnumber.-504.13) 5092 0 R (lstnumber.-504.14) 5093 0 R (lstnumber.-504.15) 5094 0 R (lstnumber.-504.16) 5095 0 R (lstnumber.-504.17) 5096 0 R] /Limits [(lstnumber.-504.12) (lstnumber.-504.17)] >> endobj 6252 0 obj << /Names [(lstnumber.-504.18) 5097 0 R (lstnumber.-504.19) 5098 0 R (lstnumber.-504.2) 5081 0 R (lstnumber.-504.20) 5099 0 R (lstnumber.-504.21) 5100 0 R (lstnumber.-504.22) 5101 0 R] /Limits [(lstnumber.-504.18) (lstnumber.-504.22)] >> endobj 6253 0 obj << /Names [(lstnumber.-504.23) 5102 0 R (lstnumber.-504.24) 5103 0 R (lstnumber.-504.25) 5104 0 R (lstnumber.-504.26) 5105 0 R (lstnumber.-504.27) 5106 0 R (lstnumber.-504.28) 5107 0 R] /Limits [(lstnumber.-504.23) (lstnumber.-504.28)] >> endobj 6254 0 obj << /Names [(lstnumber.-504.29) 5108 0 R (lstnumber.-504.3) 5082 0 R (lstnumber.-504.30) 5109 0 R (lstnumber.-504.31) 5110 0 R (lstnumber.-504.32) 5111 0 R (lstnumber.-504.33) 5112 0 R] /Limits [(lstnumber.-504.29) (lstnumber.-504.33)] >> endobj 6255 0 obj << /Names [(lstnumber.-504.34) 5113 0 R (lstnumber.-504.35) 5114 0 R (lstnumber.-504.36) 5115 0 R (lstnumber.-504.37) 5116 0 R (lstnumber.-504.38) 5117 0 R (lstnumber.-504.39) 5118 0 R] /Limits [(lstnumber.-504.34) (lstnumber.-504.39)] >> endobj 6256 0 obj << /Names [(lstnumber.-504.4) 5083 0 R (lstnumber.-504.40) 5119 0 R (lstnumber.-504.41) 5120 0 R (lstnumber.-504.42) 5121 0 R (lstnumber.-504.5) 5084 0 R (lstnumber.-504.6) 5085 0 R] /Limits [(lstnumber.-504.4) (lstnumber.-504.6)] >> endobj 6257 0 obj << /Names [(lstnumber.-504.7) 5086 0 R (lstnumber.-504.8) 5087 0 R (lstnumber.-504.9) 5088 0 R (lstnumber.-51.1) 649 0 R (lstnumber.-51.2) 650 0 R (lstnumber.-52.1) 654 0 R] /Limits [(lstnumber.-504.7) (lstnumber.-52.1)] >> endobj 6258 0 obj << /Names [(lstnumber.-53.1) 714 0 R (lstnumber.-54.1) 716 0 R (lstnumber.-55.1) 718 0 R (lstnumber.-56.1) 720 0 R (lstnumber.-57.1) 759 0 R (lstnumber.-57.2) 760 0 R] /Limits [(lstnumber.-53.1) (lstnumber.-57.2)] >> endobj 6259 0 obj << /Names [(lstnumber.-58.1) 803 0 R (lstnumber.-58.2) 804 0 R (lstnumber.-58.3) 805 0 R (lstnumber.-58.4) 806 0 R (lstnumber.-59.1) 808 0 R (lstnumber.-59.2) 809 0 R] /Limits [(lstnumber.-58.1) (lstnumber.-59.2)] >> endobj 6260 0 obj << /Names [(lstnumber.-6.1) 317 0 R (lstnumber.-6.2) 318 0 R (lstnumber.-6.3) 319 0 R (lstnumber.-6.4) 320 0 R (lstnumber.-60.1) 811 0 R (lstnumber.-60.2) 812 0 R] /Limits [(lstnumber.-6.1) (lstnumber.-60.2)] >> endobj 6261 0 obj << /Names [(lstnumber.-61.1) 819 0 R (lstnumber.-61.2) 820 0 R (lstnumber.-62.1) 823 0 R (lstnumber.-63.1) 826 0 R (lstnumber.-64.1) 828 0 R (lstnumber.-65.1) 830 0 R] /Limits [(lstnumber.-61.1) (lstnumber.-65.1)] >> endobj 6262 0 obj << /Names [(lstnumber.-66.1) 836 0 R (lstnumber.-67.1) 838 0 R (lstnumber.-68.1) 840 0 R (lstnumber.-69.1) 842 0 R (lstnumber.-7.1) 336 0 R (lstnumber.-7.2) 337 0 R] /Limits [(lstnumber.-66.1) (lstnumber.-7.2)] >> endobj 6263 0 obj << /Names [(lstnumber.-70.1) 844 0 R (lstnumber.-71.1) 846 0 R (lstnumber.-72.1) 853 0 R (lstnumber.-73.1) 855 0 R (lstnumber.-74.1) 857 0 R (lstnumber.-75.1) 859 0 R] /Limits [(lstnumber.-70.1) (lstnumber.-75.1)] >> endobj 6264 0 obj << /Names [(lstnumber.-76.1) 861 0 R (lstnumber.-77.1) 863 0 R (lstnumber.-78.1) 869 0 R (lstnumber.-79.1) 871 0 R (lstnumber.-8.1) 339 0 R (lstnumber.-8.2) 340 0 R] /Limits [(lstnumber.-76.1) (lstnumber.-8.2)] >> endobj 6265 0 obj << /Names [(lstnumber.-80.1) 873 0 R (lstnumber.-81.1) 875 0 R (lstnumber.-82.1) 877 0 R (lstnumber.-83.1) 879 0 R (lstnumber.-84.1) 885 0 R (lstnumber.-85.1) 887 0 R] /Limits [(lstnumber.-80.1) (lstnumber.-85.1)] >> endobj 6266 0 obj << /Names [(lstnumber.-86.1) 889 0 R (lstnumber.-87.1) 891 0 R (lstnumber.-88.1) 893 0 R (lstnumber.-89.1) 895 0 R (lstnumber.-9.1) 342 0 R (lstnumber.-90.1) 923 0 R] /Limits [(lstnumber.-86.1) (lstnumber.-90.1)] >> endobj 6267 0 obj << /Names [(lstnumber.-91.1) 925 0 R (lstnumber.-92.1) 927 0 R (lstnumber.-93.1) 953 0 R (lstnumber.-93.2) 954 0 R (lstnumber.-94.1) 959 0 R (lstnumber.-94.2) 960 0 R] /Limits [(lstnumber.-91.1) (lstnumber.-94.2)] >> endobj 6268 0 obj << /Names [(lstnumber.-94.3) 961 0 R (lstnumber.-94.4) 962 0 R (lstnumber.-95.1) 964 0 R (lstnumber.-95.2) 965 0 R (lstnumber.-95.3) 966 0 R (lstnumber.-96.1) 975 0 R] /Limits [(lstnumber.-94.3) (lstnumber.-96.1)] >> endobj 6269 0 obj << /Names [(lstnumber.-96.2) 976 0 R (lstnumber.-96.3) 977 0 R (lstnumber.-97.1) 979 0 R (lstnumber.-97.2) 980 0 R (lstnumber.-98.1) 982 0 R (lstnumber.-98.2) 983 0 R] /Limits [(lstnumber.-96.2) (lstnumber.-98.2)] >> endobj 6270 0 obj << /Names [(lstnumber.-98.3) 994 0 R (lstnumber.-98.4) 995 0 R (lstnumber.-99.1) 997 0 R (lstnumber.-99.2) 998 0 R (lstnumber.-99.3) 999 0 R (lstnumber.-99.4) 1000 0 R] /Limits [(lstnumber.-98.3) (lstnumber.-99.4)] >> endobj 6271 0 obj << /Names [(objecttree) 5078 0 R (page.1) 116 0 R (page.10) 380 0 R (page.100) 2871 0 R (page.101) 2898 0 R (page.102) 2918 0 R] /Limits [(objecttree) (page.102)] >> endobj 6272 0 obj << /Names [(page.103) 2936 0 R (page.104) 2960 0 R (page.105) 3024 0 R (page.106) 3068 0 R (page.107) 3105 0 R (page.108) 3124 0 R] /Limits [(page.103) (page.108)] >> endobj 6273 0 obj << /Names [(page.109) 3144 0 R (page.11) 407 0 R (page.110) 3166 0 R (page.111) 3187 0 R (page.112) 3204 0 R (page.113) 3223 0 R] /Limits [(page.109) (page.113)] >> endobj 6274 0 obj << /Names [(page.114) 3248 0 R (page.115) 3280 0 R (page.116) 3317 0 R (page.117) 3333 0 R (page.118) 3359 0 R (page.119) 3390 0 R] /Limits [(page.114) (page.119)] >> endobj 6275 0 obj << /Names [(page.12) 429 0 R (page.120) 3448 0 R (page.121) 3490 0 R (page.122) 3512 0 R (page.123) 3537 0 R (page.124) 3552 0 R] /Limits [(page.12) (page.124)] >> endobj 6276 0 obj << /Names [(page.125) 3584 0 R (page.126) 3633 0 R (page.127) 3667 0 R (page.128) 3688 0 R (page.129) 3709 0 R (page.13) 449 0 R] /Limits [(page.125) (page.13)] >> endobj 6277 0 obj << /Names [(page.130) 3725 0 R (page.131) 3745 0 R (page.132) 3767 0 R (page.133) 3856 0 R (page.134) 3891 0 R (page.135) 3932 0 R] /Limits [(page.130) (page.135)] >> endobj 6278 0 obj << /Names [(page.136) 3955 0 R (page.137) 3974 0 R (page.138) 3997 0 R (page.139) 4022 0 R (page.14) 467 0 R (page.140) 4039 0 R] /Limits [(page.136) (page.140)] >> endobj 6279 0 obj << /Names [(page.141) 4062 0 R (page.142) 4079 0 R (page.143) 4105 0 R (page.144) 4124 0 R (page.145) 4148 0 R (page.146) 4155 0 R] /Limits [(page.141) (page.146)] >> endobj 6280 0 obj << /Names [(page.147) 4176 0 R (page.148) 4202 0 R (page.149) 4220 0 R (page.15) 491 0 R (page.150) 4269 0 R (page.151) 4304 0 R] /Limits [(page.147) (page.151)] >> endobj 6281 0 obj << /Names [(page.152) 4327 0 R (page.153) 4344 0 R (page.154) 4380 0 R (page.155) 4409 0 R (page.156) 4432 0 R (page.157) 4475 0 R] /Limits [(page.152) (page.157)] >> endobj 6282 0 obj << /Names [(page.158) 4507 0 R (page.159) 4533 0 R (page.16) 510 0 R (page.160) 4551 0 R (page.161) 4602 0 R (page.162) 4634 0 R] /Limits [(page.158) (page.162)] >> endobj 6283 0 obj << /Names [(page.163) 4668 0 R (page.164) 4688 0 R (page.165) 4705 0 R (page.166) 4754 0 R (page.167) 4793 0 R (page.168) 4821 0 R] /Limits [(page.163) (page.168)] >> endobj 6284 0 obj << /Names [(page.169) 4844 0 R (page.17) 524 0 R (page.170) 4866 0 R (page.171) 4892 0 R (page.172) 4911 0 R (page.173) 4930 0 R] /Limits [(page.169) (page.173)] >> endobj 6285 0 obj << /Names [(page.174) 4944 0 R (page.175) 4977 0 R (page.176) 5008 0 R (page.177) 5029 0 R (page.178) 5055 0 R (page.179) 5073 0 R] /Limits [(page.174) (page.179)] >> endobj 6286 0 obj << /Names [(page.18) 541 0 R (page.180) 5077 0 R (page.181) 5125 0 R (page.182) 5137 0 R (page.183) 5230 0 R (page.184) 5348 0 R] /Limits [(page.18) (page.184)] >> endobj 6287 0 obj << /Names [(page.185) 5466 0 R (page.186) 5584 0 R (page.187) 5643 0 R (page.19) 563 0 R (page.2) 120 0 R (page.20) 608 0 R] /Limits [(page.185) (page.20)] >> endobj 6288 0 obj << /Names [(page.21) 638 0 R (page.22) 711 0 R (page.23) 755 0 R (page.24) 801 0 R (page.25) 817 0 R (page.26) 834 0 R] /Limits [(page.21) (page.26)] >> endobj 6289 0 obj << /Names [(page.27) 851 0 R (page.28) 867 0 R (page.29) 883 0 R (page.3) 131 0 R (page.30) 921 0 R (page.31) 950 0 R] /Limits [(page.27) (page.31)] >> endobj 6290 0 obj << /Names [(page.32) 973 0 R (page.33) 993 0 R (page.34) 1013 0 R (page.35) 1033 0 R (page.36) 1076 0 R (page.37) 1123 0 R] /Limits [(page.32) (page.37)] >> endobj 6291 0 obj << /Names [(page.38) 1148 0 R (page.39) 1163 0 R (page.4) 140 0 R (page.40) 1193 0 R (page.41) 1221 0 R (page.42) 1241 0 R] /Limits [(page.38) (page.42)] >> endobj 6292 0 obj << /Names [(page.43) 1268 0 R (page.44) 1301 0 R (page.45) 1415 0 R (page.46) 1473 0 R (page.47) 1521 0 R (page.48) 1535 0 R] /Limits [(page.43) (page.48)] >> endobj 6293 0 obj << /Names [(page.49) 1561 0 R (page.5) 217 0 R (page.50) 1580 0 R (page.51) 1602 0 R (page.52) 1621 0 R (page.53) 1639 0 R] /Limits [(page.49) (page.53)] >> endobj 6294 0 obj << /Names [(page.54) 1661 0 R (page.55) 1677 0 R (page.56) 1698 0 R (page.57) 1721 0 R (page.58) 1731 0 R (page.59) 1742 0 R] /Limits [(page.54) (page.59)] >> endobj 6295 0 obj << /Names [(page.6) 273 0 R (page.60) 1758 0 R (page.61) 1776 0 R (page.62) 1830 0 R (page.63) 1860 0 R (page.64) 1903 0 R] /Limits [(page.6) (page.64)] >> endobj 6296 0 obj << /Names [(page.65) 1919 0 R (page.66) 1935 0 R (page.67) 1941 0 R (page.68) 1954 0 R (page.69) 1975 0 R (page.7) 306 0 R] /Limits [(page.65) (page.7)] >> endobj 6297 0 obj << /Names [(page.70) 1992 0 R (page.71) 2013 0 R (page.72) 2108 0 R (page.73) 2158 0 R (page.74) 2188 0 R (page.75) 2209 0 R] /Limits [(page.70) (page.75)] >> endobj 6298 0 obj << /Names [(page.76) 2231 0 R (page.77) 2249 0 R (page.78) 2267 0 R (page.79) 2289 0 R (page.8) 334 0 R (page.80) 2306 0 R] /Limits [(page.76) (page.80)] >> endobj 6299 0 obj << /Names [(page.81) 2330 0 R (page.82) 2349 0 R (page.83) 2372 0 R (page.84) 2392 0 R (page.85) 2411 0 R (page.86) 2433 0 R] /Limits [(page.81) (page.86)] >> endobj 6300 0 obj << /Names [(page.87) 2452 0 R (page.88) 2487 0 R (page.89) 2517 0 R (page.9) 362 0 R (page.90) 2539 0 R (page.91) 2560 0 R] /Limits [(page.87) (page.91)] >> endobj 6301 0 obj << /Names [(page.92) 2634 0 R (page.93) 2694 0 R (page.94) 2742 0 R (page.95) 2763 0 R (page.96) 2787 0 R (page.97) 2809 0 R] /Limits [(page.92) (page.97)] >> endobj 6302 0 obj << /Names [(page.98) 2825 0 R (page.99) 2850 0 R (page.i) 5 0 R (page.ii) 15 0 R (page.iii) 50 0 R (page.iv) 92 0 R] /Limits [(page.98) (page.iv)] >> endobj 6303 0 obj << /Names [(page.v) 111 0 R (part.1) 53 0 R (part.2) 55 0 R (part.3) 103 0 R (return-if-disposed) 232 0 R (return-val-if-disposed) 233 0 R] /Limits [(page.v) (return-val-if-disposed)] >> endobj 6304 0 obj << /Names [(safe-string) 234 0 R (section.2.1) 57 0 R (section.2.2) 58 0 R (section.2.3) 59 0 R (section.2.4) 60 0 R (section.2.5) 61 0 R] /Limits [(safe-string) (section.2.5)] >> endobj 6305 0 obj << /Names [(section.2.6) 62 0 R (section.3.1) 64 0 R (section.3.10) 73 0 R (section.3.11) 74 0 R (section.3.12) 75 0 R (section.3.13) 76 0 R] /Limits [(section.2.6) (section.3.13)] >> endobj 6306 0 obj << /Names [(section.3.14) 77 0 R (section.3.15) 78 0 R (section.3.16) 93 0 R (section.3.17) 94 0 R (section.3.18) 95 0 R (section.3.19) 96 0 R] /Limits [(section.3.14) (section.3.19)] >> endobj 6307 0 obj << /Names [(section.3.2) 65 0 R (section.3.3) 66 0 R (section.3.4) 67 0 R (section.3.5) 68 0 R (section.3.6) 69 0 R (section.3.7) 70 0 R] /Limits [(section.3.2) (section.3.7)] >> endobj 6308 0 obj << /Names [(section.3.8) 71 0 R (section.3.9) 72 0 R (section.4.1) 98 0 R (section.4.2) 99 0 R (section.4.3) 100 0 R (section.4.4) 101 0 R] /Limits [(section.3.8) (section.4.4)] >> endobj 6309 0 obj << /Names [(section.4.5) 102 0 R (u) 483 0 R (void) 224 0 R (xmlNodePtr) 1097 0 R] /Limits [(section.4.5) (xmlNodePtr)] >> endobj 6310 0 obj << /Kids [5809 0 R 5810 0 R 5811 0 R 5812 0 R 5813 0 R 5814 0 R] /Limits [(BT-IS-GVALUE:CAPS) (BT-SONG-IO-MODULE-INFO-MAX-FORMATS:CAPS)] >> endobj 6311 0 obj << /Kids [5815 0 R 5816 0 R 5817 0 R 5818 0 R 5819 0 R 5820 0 R] /Limits [(BT-SOURCE-MACHINE-PATTERN-INDEX-BREAK:CAPS) (BtAudioSession.property-details)] >> endobj 6312 0 obj << /Kids [5821 0 R 5822 0 R 5823 0 R 5824 0 R 5825 0 R 5826 0 R] /Limits [(BtChildProxy) (BtCmdPatternControlSource.object-hierarchy)] >> endobj 6313 0 obj << /Kids [5827 0 R 5828 0 R 5829 0 R 5830 0 R 5831 0 R 5832 0 R] /Limits [(BtCmdPatternControlSource.other) (BtMachine.other)] >> endobj 6314 0 obj << /Kids [5833 0 R 5834 0 R 5835 0 R 5836 0 R 5837 0 R 5838 0 R] /Limits [(BtMachine.other_details) (BtPattern.implemented-interfaces)] >> endobj 6315 0 obj << /Kids [5839 0 R 5840 0 R 5841 0 R 5842 0 R 5843 0 R 5844 0 R] /Limits [(BtPattern.includes) (BtPersistence.other_details)] >> endobj 6316 0 obj << /Kids [5845 0 R 5846 0 R 5847 0 R 5848 0 R 5849 0 R 5850 0 R] /Limits [(BtPersistenceInterface) (BtSequence.properties)] >> endobj 6317 0 obj << /Kids [5851 0 R 5852 0 R 5853 0 R 5854 0 R 5855 0 R 5856 0 R] /Limits [(BtSequence.property-details) (BtSettings.description)] >> endobj 6318 0 obj << /Kids [5857 0 R 5858 0 R 5859 0 R 5860 0 R 5861 0 R 5862 0 R] /Limits [(BtSettings.functions) (BtSinkBin--mode)] >> endobj 6319 0 obj << /Kids [5863 0 R 5864 0 R 5865 0 R 5866 0 R 5867 0 R 5868 0 R] /Limits [(BtSinkBin--record-file-name) (BtSong--setup)] >> endobj 6320 0 obj << /Kids [5869 0 R 5870 0 R 5871 0 R 5872 0 R 5873 0 R 5874 0 R] /Limits [(BtSong--song-info) (BtSongIOBuzz.object-hierarchy)] >> endobj 6321 0 obj << /Kids [5875 0 R 5876 0 R 5877 0 R 5878 0 R 5879 0 R 5880 0 R] /Limits [(BtSongIOBuzz.other) (BtSongInfo)] >> endobj 6322 0 obj << /Kids [5881 0 R 5882 0 R 5883 0 R 5884 0 R 5885 0 R 5886 0 R] /Limits [(BtSongInfo--author) (BtValueGroup)] >> endobj 6323 0 obj << /Kids [5887 0 R 5888 0 R 5889 0 R 5890 0 R 5891 0 R 5892 0 R] /Limits [(BtValueGroup--length) (BtWave.property-details)] >> endobj 6324 0 obj << /Kids [5893 0 R 5894 0 R 5895 0 R 5896 0 R 5897 0 R 5898 0 R] /Limits [(BtWaveLoopMode) (BtWavetable.object-hierarchy)] >> endobj 6325 0 obj << /Kids [5899 0 R 5900 0 R 5901 0 R 5902 0 R 5903 0 R 5904 0 R] /Limits [(BtWavetable.other) (G-SIGNAL-NO-HOOKS:CAPS)] >> endobj 6326 0 obj << /Kids [5905 0 R 5906 0 R 5907 0 R 5908 0 R 5909 0 R 5910 0 R] /Limits [(GError) (annotation-glossterm-allow-none)] >> endobj 6327 0 obj << /Kids [5911 0 R 5912 0 R 5913 0 R 5914 0 R 5915 0 R 5916 0 R] /Limits [(annotation-glossterm-array) (bt-gst-analyzer-get-waittime)] >> endobj 6328 0 obj << /Kids [5917 0 R 5918 0 R 5919 0 R 5920 0 R 5921 0 R 5922 0 R] /Limits [(bt-gst-check-core-elements) (bt-machine-is-polyphonic)] >> endobj 6329 0 obj << /Kids [5923 0 R 5924 0 R 5925 0 R 5926 0 R 5927 0 R 5928 0 R] /Limits [(bt-machine-randomize-parameters) (bt-pattern-get-global-group)] >> endobj 6330 0 obj << /Kids [5929 0 R 5930 0 R 5931 0 R 5932 0 R 5933 0 R 5934 0 R] /Limits [(bt-pattern-get-group-by-parameter-group) (bt-sequence-get-machine)] >> endobj 6331 0 obj << /Kids [5935 0 R 5936 0 R 5937 0 R 5938 0 R 5939 0 R 5940 0 R] /Limits [(bt-sequence-get-pattern) (bt-sink-machine-new)] >> endobj 6332 0 obj << /Kids [5941 0 R 5942 0 R 5943 0 R 5944 0 R 5945 0 R 5946 0 R] /Limits [(bt-song-continue) (bt-value-group-clear-columns)] >> endobj 6333 0 obj << /Kids [5947 0 R 5948 0 R 5949 0 R 5950 0 R 5951 0 R 5952 0 R] /Limits [(bt-value-group-copy) (bt-wavetable-remember-missing-wave)] >> endobj 6334 0 obj << /Kids [5953 0 R 5954 0 R 5955 0 R 5956 0 R 5957 0 R 5958 0 R] /Limits [(bt-wavetable-remove-wave) (g-signal-connect)] >> endobj 6335 0 obj << /Kids [5959 0 R 5960 0 R 5961 0 R 5962 0 R 5963 0 R 5964 0 R] /Limits [(g-type-parent) (lstlisting.2.-13)] >> endobj 6336 0 obj << /Kids [5965 0 R 5966 0 R 5967 0 R 5968 0 R 5969 0 R 5970 0 R] /Limits [(lstlisting.2.-14) (lstlisting.2.-46)] >> endobj 6337 0 obj << /Kids [5971 0 R 5972 0 R 5973 0 R 5974 0 R 5975 0 R 5976 0 R] /Limits [(lstlisting.2.-47) (lstlisting.2.-79)] >> endobj 6338 0 obj << /Kids [5977 0 R 5978 0 R 5979 0 R 5980 0 R 5981 0 R 5982 0 R] /Limits [(lstlisting.2.-8) (lstlisting.3.-128)] >> endobj 6339 0 obj << /Kids [5983 0 R 5984 0 R 5985 0 R 5986 0 R 5987 0 R 5988 0 R] /Limits [(lstlisting.3.-129) (lstlisting.3.-164)] >> endobj 6340 0 obj << /Kids [5989 0 R 5990 0 R 5991 0 R 5992 0 R 5993 0 R 5994 0 R] /Limits [(lstlisting.3.-165) (lstlisting.3.-200)] >> endobj 6341 0 obj << /Kids [5995 0 R 5996 0 R 5997 0 R 5998 0 R 5999 0 R 6000 0 R] /Limits [(lstlisting.3.-201) (lstlisting.3.-236)] >> endobj 6342 0 obj << /Kids [6001 0 R 6002 0 R 6003 0 R 6004 0 R 6005 0 R 6006 0 R] /Limits [(lstlisting.3.-237) (lstlisting.3.-272)] >> endobj 6343 0 obj << /Kids [6007 0 R 6008 0 R 6009 0 R 6010 0 R 6011 0 R 6012 0 R] /Limits [(lstlisting.3.-273) (lstlisting.3.-308)] >> endobj 6344 0 obj << /Kids [6013 0 R 6014 0 R 6015 0 R 6016 0 R 6017 0 R 6018 0 R] /Limits [(lstlisting.3.-309) (lstlisting.3.-344)] >> endobj 6345 0 obj << /Kids [6019 0 R 6020 0 R 6021 0 R 6022 0 R 6023 0 R 6024 0 R] /Limits [(lstlisting.3.-345) (lstlisting.3.-380)] >> endobj 6346 0 obj << /Kids [6025 0 R 6026 0 R 6027 0 R 6028 0 R 6029 0 R 6030 0 R] /Limits [(lstlisting.3.-381) (lstlisting.3.-416)] >> endobj 6347 0 obj << /Kids [6031 0 R 6032 0 R 6033 0 R 6034 0 R 6035 0 R 6036 0 R] /Limits [(lstlisting.3.-417) (lstlisting.3.-452)] >> endobj 6348 0 obj << /Kids [6037 0 R 6038 0 R 6039 0 R 6040 0 R 6041 0 R 6042 0 R] /Limits [(lstlisting.3.-453) (lstlisting.4.-488)] >> endobj 6349 0 obj << /Kids [6043 0 R 6044 0 R 6045 0 R 6046 0 R 6047 0 R 6048 0 R] /Limits [(lstlisting.4.-489) (lstnumber.-104.1)] >> endobj 6350 0 obj << /Kids [6049 0 R 6050 0 R 6051 0 R 6052 0 R 6053 0 R 6054 0 R] /Limits [(lstnumber.-105.1) (lstnumber.-114.3)] >> endobj 6351 0 obj << /Kids [6055 0 R 6056 0 R 6057 0 R 6058 0 R 6059 0 R 6060 0 R] /Limits [(lstnumber.-114.4) (lstnumber.-129.11)] >> endobj 6352 0 obj << /Kids [6061 0 R 6062 0 R 6063 0 R 6064 0 R 6065 0 R 6066 0 R] /Limits [(lstnumber.-129.2) (lstnumber.-138.2)] >> endobj 6353 0 obj << /Kids [6067 0 R 6068 0 R 6069 0 R 6070 0 R 6071 0 R 6072 0 R] /Limits [(lstnumber.-139.1) (lstnumber.-151.2)] >> endobj 6354 0 obj << /Kids [6073 0 R 6074 0 R 6075 0 R 6076 0 R 6077 0 R 6078 0 R] /Limits [(lstnumber.-152.1) (lstnumber.-165.1)] >> endobj 6355 0 obj << /Kids [6079 0 R 6080 0 R 6081 0 R 6082 0 R 6083 0 R 6084 0 R] /Limits [(lstnumber.-166.1) (lstnumber.-185.4)] >> endobj 6356 0 obj << /Kids [6085 0 R 6086 0 R 6087 0 R 6088 0 R 6089 0 R 6090 0 R] /Limits [(lstnumber.-185.5) (lstnumber.-196.2)] >> endobj 6357 0 obj << /Kids [6091 0 R 6092 0 R 6093 0 R 6094 0 R 6095 0 R 6096 0 R] /Limits [(lstnumber.-196.3) (lstnumber.-21.4)] >> endobj 6358 0 obj << /Kids [6097 0 R 6098 0 R 6099 0 R 6100 0 R 6101 0 R 6102 0 R] /Limits [(lstnumber.-21.5) (lstnumber.-219.3)] >> endobj 6359 0 obj << /Kids [6103 0 R 6104 0 R 6105 0 R 6106 0 R 6107 0 R 6108 0 R] /Limits [(lstnumber.-219.4) (lstnumber.-227.1)] >> endobj 6360 0 obj << /Kids [6109 0 R 6110 0 R 6111 0 R 6112 0 R 6113 0 R 6114 0 R] /Limits [(lstnumber.-227.2) (lstnumber.-233.5)] >> endobj 6361 0 obj << /Kids [6115 0 R 6116 0 R 6117 0 R 6118 0 R 6119 0 R 6120 0 R] /Limits [(lstnumber.-234.1) (lstnumber.-244.1)] >> endobj 6362 0 obj << /Kids [6121 0 R 6122 0 R 6123 0 R 6124 0 R 6125 0 R 6126 0 R] /Limits [(lstnumber.-244.2) (lstnumber.-255.2)] >> endobj 6363 0 obj << /Kids [6127 0 R 6128 0 R 6129 0 R 6130 0 R 6131 0 R 6132 0 R] /Limits [(lstnumber.-255.3) (lstnumber.-263.2)] >> endobj 6364 0 obj << /Kids [6133 0 R 6134 0 R 6135 0 R 6136 0 R 6137 0 R 6138 0 R] /Limits [(lstnumber.-264.1) (lstnumber.-272.1)] >> endobj 6365 0 obj << /Kids [6139 0 R 6140 0 R 6141 0 R 6142 0 R 6143 0 R 6144 0 R] /Limits [(lstnumber.-272.2) (lstnumber.-284.1)] >> endobj 6366 0 obj << /Kids [6145 0 R 6146 0 R 6147 0 R 6148 0 R 6149 0 R 6150 0 R] /Limits [(lstnumber.-285.1) (lstnumber.-296.1)] >> endobj 6367 0 obj << /Kids [6151 0 R 6152 0 R 6153 0 R 6154 0 R 6155 0 R 6156 0 R] /Limits [(lstnumber.-296.2) (lstnumber.-306.1)] >> endobj 6368 0 obj << /Kids [6157 0 R 6158 0 R 6159 0 R 6160 0 R 6161 0 R 6162 0 R] /Limits [(lstnumber.-306.2) (lstnumber.-32.1)] >> endobj 6369 0 obj << /Kids [6163 0 R 6164 0 R 6165 0 R 6166 0 R 6167 0 R 6168 0 R] /Limits [(lstnumber.-32.2) (lstnumber.-330.4)] >> endobj 6370 0 obj << /Kids [6169 0 R 6170 0 R 6171 0 R 6172 0 R 6173 0 R 6174 0 R] /Limits [(lstnumber.-331.1) (lstnumber.-350.1)] >> endobj 6371 0 obj << /Kids [6175 0 R 6176 0 R 6177 0 R 6178 0 R 6179 0 R 6180 0 R] /Limits [(lstnumber.-351.1) (lstnumber.-364.1)] >> endobj 6372 0 obj << /Kids [6181 0 R 6182 0 R 6183 0 R 6184 0 R 6185 0 R 6186 0 R] /Limits [(lstnumber.-365.1) (lstnumber.-380.4)] >> endobj 6373 0 obj << /Kids [6187 0 R 6188 0 R 6189 0 R 6190 0 R 6191 0 R 6192 0 R] /Limits [(lstnumber.-380.5) (lstnumber.-389.2)] >> endobj 6374 0 obj << /Kids [6193 0 R 6194 0 R 6195 0 R 6196 0 R 6197 0 R 6198 0 R] /Limits [(lstnumber.-389.3) (lstnumber.-397.5)] >> endobj 6375 0 obj << /Kids [6199 0 R 6200 0 R 6201 0 R 6202 0 R 6203 0 R 6204 0 R] /Limits [(lstnumber.-398.1) (lstnumber.-403.3)] >> endobj 6376 0 obj << /Kids [6205 0 R 6206 0 R 6207 0 R 6208 0 R 6209 0 R 6210 0 R] /Limits [(lstnumber.-403.4) (lstnumber.-41.1)] >> endobj 6377 0 obj << /Kids [6211 0 R 6212 0 R 6213 0 R 6214 0 R 6215 0 R 6216 0 R] /Limits [(lstnumber.-410.1) (lstnumber.-420.4)] >> endobj 6378 0 obj << /Kids [6217 0 R 6218 0 R 6219 0 R 6220 0 R 6221 0 R 6222 0 R] /Limits [(lstnumber.-420.5) (lstnumber.-441.1)] >> endobj 6379 0 obj << /Kids [6223 0 R 6224 0 R 6225 0 R 6226 0 R 6227 0 R 6228 0 R] /Limits [(lstnumber.-442.1) (lstnumber.-454.6)] >> endobj 6380 0 obj << /Kids [6229 0 R 6230 0 R 6231 0 R 6232 0 R 6233 0 R 6234 0 R] /Limits [(lstnumber.-455.1) (lstnumber.-473.1)] >> endobj 6381 0 obj << /Kids [6235 0 R 6236 0 R 6237 0 R 6238 0 R 6239 0 R 6240 0 R] /Limits [(lstnumber.-473.2) (lstnumber.-483.7)] >> endobj 6382 0 obj << /Kids [6241 0 R 6242 0 R 6243 0 R 6244 0 R 6245 0 R 6246 0 R] /Limits [(lstnumber.-484.1) (lstnumber.-496.3)] >> endobj 6383 0 obj << /Kids [6247 0 R 6248 0 R 6249 0 R 6250 0 R 6251 0 R 6252 0 R] /Limits [(lstnumber.-496.4) (lstnumber.-504.22)] >> endobj 6384 0 obj << /Kids [6253 0 R 6254 0 R 6255 0 R 6256 0 R 6257 0 R 6258 0 R] /Limits [(lstnumber.-504.23) (lstnumber.-57.2)] >> endobj 6385 0 obj << /Kids [6259 0 R 6260 0 R 6261 0 R 6262 0 R 6263 0 R 6264 0 R] /Limits [(lstnumber.-58.1) (lstnumber.-8.2)] >> endobj 6386 0 obj << /Kids [6265 0 R 6266 0 R 6267 0 R 6268 0 R 6269 0 R 6270 0 R] /Limits [(lstnumber.-80.1) (lstnumber.-99.4)] >> endobj 6387 0 obj << /Kids [6271 0 R 6272 0 R 6273 0 R 6274 0 R 6275 0 R 6276 0 R] /Limits [(objecttree) (page.13)] >> endobj 6388 0 obj << /Kids [6277 0 R 6278 0 R 6279 0 R 6280 0 R 6281 0 R 6282 0 R] /Limits [(page.130) (page.162)] >> endobj 6389 0 obj << /Kids [6283 0 R 6284 0 R 6285 0 R 6286 0 R 6287 0 R 6288 0 R] /Limits [(page.163) (page.26)] >> endobj 6390 0 obj << /Kids [6289 0 R 6290 0 R 6291 0 R 6292 0 R 6293 0 R 6294 0 R] /Limits [(page.27) (page.59)] >> endobj 6391 0 obj << /Kids [6295 0 R 6296 0 R 6297 0 R 6298 0 R 6299 0 R 6300 0 R] /Limits [(page.6) (page.91)] >> endobj 6392 0 obj << /Kids [6301 0 R 6302 0 R 6303 0 R 6304 0 R 6305 0 R 6306 0 R] /Limits [(page.92) (section.3.19)] >> endobj 6393 0 obj << /Kids [6307 0 R 6308 0 R 6309 0 R] /Limits [(section.3.2) (xmlNodePtr)] >> endobj 6394 0 obj << /Kids [6310 0 R 6311 0 R 6312 0 R 6313 0 R 6314 0 R 6315 0 R] /Limits [(BT-IS-GVALUE:CAPS) (BtPersistence.other_details)] >> endobj 6395 0 obj << /Kids [6316 0 R 6317 0 R 6318 0 R 6319 0 R 6320 0 R 6321 0 R] /Limits [(BtPersistenceInterface) (BtSongInfo)] >> endobj 6396 0 obj << /Kids [6322 0 R 6323 0 R 6324 0 R 6325 0 R 6326 0 R 6327 0 R] /Limits [(BtSongInfo--author) (bt-gst-analyzer-get-waittime)] >> endobj 6397 0 obj << /Kids [6328 0 R 6329 0 R 6330 0 R 6331 0 R 6332 0 R 6333 0 R] /Limits [(bt-gst-check-core-elements) (bt-wavetable-remember-missing-wave)] >> endobj 6398 0 obj << /Kids [6334 0 R 6335 0 R 6336 0 R 6337 0 R 6338 0 R 6339 0 R] /Limits [(bt-wavetable-remove-wave) (lstlisting.3.-164)] >> endobj 6399 0 obj << /Kids [6340 0 R 6341 0 R 6342 0 R 6343 0 R 6344 0 R 6345 0 R] /Limits [(lstlisting.3.-165) (lstlisting.3.-380)] >> endobj 6400 0 obj << /Kids [6346 0 R 6347 0 R 6348 0 R 6349 0 R 6350 0 R 6351 0 R] /Limits [(lstlisting.3.-381) (lstnumber.-129.11)] >> endobj 6401 0 obj << /Kids [6352 0 R 6353 0 R 6354 0 R 6355 0 R 6356 0 R 6357 0 R] /Limits [(lstnumber.-129.2) (lstnumber.-21.4)] >> endobj 6402 0 obj << /Kids [6358 0 R 6359 0 R 6360 0 R 6361 0 R 6362 0 R 6363 0 R] /Limits [(lstnumber.-21.5) (lstnumber.-263.2)] >> endobj 6403 0 obj << /Kids [6364 0 R 6365 0 R 6366 0 R 6367 0 R 6368 0 R 6369 0 R] /Limits [(lstnumber.-264.1) (lstnumber.-330.4)] >> endobj 6404 0 obj << /Kids [6370 0 R 6371 0 R 6372 0 R 6373 0 R 6374 0 R 6375 0 R] /Limits [(lstnumber.-331.1) (lstnumber.-403.3)] >> endobj 6405 0 obj << /Kids [6376 0 R 6377 0 R 6378 0 R 6379 0 R 6380 0 R 6381 0 R] /Limits [(lstnumber.-403.4) (lstnumber.-483.7)] >> endobj 6406 0 obj << /Kids [6382 0 R 6383 0 R 6384 0 R 6385 0 R 6386 0 R 6387 0 R] /Limits [(lstnumber.-484.1) (page.13)] >> endobj 6407 0 obj << /Kids [6388 0 R 6389 0 R 6390 0 R 6391 0 R 6392 0 R 6393 0 R] /Limits [(page.130) (xmlNodePtr)] >> endobj 6408 0 obj << /Kids [6394 0 R 6395 0 R 6396 0 R 6397 0 R 6398 0 R 6399 0 R] /Limits [(BT-IS-GVALUE:CAPS) (lstlisting.3.-380)] >> endobj 6409 0 obj << /Kids [6400 0 R 6401 0 R 6402 0 R 6403 0 R 6404 0 R 6405 0 R] /Limits [(lstlisting.3.-381) (lstnumber.-483.7)] >> endobj 6410 0 obj << /Kids [6406 0 R 6407 0 R] /Limits [(lstnumber.-484.1) (xmlNodePtr)] >> endobj 6411 0 obj << /Kids [6408 0 R 6409 0 R 6410 0 R] /Limits [(BT-IS-GVALUE:CAPS) (xmlNodePtr)] >> endobj 6412 0 obj << /Dests 6411 0 R >> endobj 6413 0 obj << /Type /Catalog /Pages 5807 0 R /Outlines 5808 0 R /Names 6412 0 R /PageMode/UseOutlines/PageLabels<>5<
>]>> /OpenAction 1 0 R >> endobj 6414 0 obj << /Author()/Title(Buzztrax Bt-Core Reference Manual)/Subject()/Creator(DBLaTeX-0.3.4-3)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20151018114121+02'00') /ModDate (D:20151018114121+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 6415 0000000000 65535 f 0000000015 00000 n 0000000369 00000 n 0000000653 00000 n 0000000062 00000 n 0000000481 00000 n 0001004820 00000 n 0001004132 00000 n 0000000539 00000 n 0000000596 00000 n 0001003960 00000 n 0001005175 00000 n 0000001964 00000 n 0000001789 00000 n 0000000744 00000 n 0000001904 00000 n 0001004304 00000 n 0000003338 00000 n 0000003486 00000 n 0000003637 00000 n 0000003785 00000 n 0000003936 00000 n 0000004089 00000 n 0000004241 00000 n 0000004392 00000 n 0000004544 00000 n 0000004696 00000 n 0000004848 00000 n 0000004997 00000 n 0000005148 00000 n 0000005300 00000 n 0000005452 00000 n 0000005604 00000 n 0000005755 00000 n 0000005907 00000 n 0000006059 00000 n 0000006211 00000 n 0000006364 00000 n 0000006518 00000 n 0000006672 00000 n 0000006826 00000 n 0000006979 00000 n 0000007132 00000 n 0000008438 00000 n 0000008592 00000 n 0000008746 00000 n 0000008900 00000 n 0000007403 00000 n 0000003029 00000 n 0000002068 00000 n 0000007284 00000 n 0000007344 00000 n 0001004644 00000 n 0000012484 00000 n 0000013829 00000 n 0000014818 00000 n 0000027957 00000 n 0000028017 00000 n 0000079915 00000 n 0000085525 00000 n 0000094428 00000 n 0000130505 00000 n 0000154929 00000 n 0000170269 00000 n 0000170330 00000 n 0000182680 00000 n 0000202136 00000 n 0000264099 00000 n 0000310866 00000 n 0000371396 00000 n 0000378960 00000 n 0000389730 00000 n 0000453998 00000 n 0000491030 00000 n 0000507141 00000 n 0000521922 00000 n 0000539780 00000 n 0000565632 00000 n 0000577095 00000 n 0000009054 00000 n 0000009205 00000 n 0000009358 00000 n 0000009511 00000 n 0000009664 00000 n 0000009816 00000 n 0000009969 00000 n 0000010113 00000 n 0000010264 00000 n 0000010415 00000 n 0000010622 00000 n 0000008213 00000 n 0000007507 00000 n 0000010562 00000 n 0000647110 00000 n 0000663802 00000 n 0000678031 00000 n 0000697227 00000 n 0000720957 00000 n 0000721018 00000 n 0000750562 00000 n 0000755521 00000 n 0000762663 00000 n 0000765999 00000 n 0000767591 00000 n 0000769637 00000 n 0000773496 00000 n 0000789973 00000 n 0000011580 00000 n 0000011873 00000 n 0000011442 00000 n 0000010714 00000 n 0000011750 00000 n 0000011812 00000 n 0000012544 00000 n 0000012304 00000 n 0000011966 00000 n 0000012422 00000 n 0000014194 00000 n 0000013648 00000 n 0000012637 00000 n 0000013767 00000 n 0000013889 00000 n 0000013950 00000 n 0000014011 00000 n 0001003608 00000 n 0000014072 00000 n 0000014133 00000 n 0001005287 00000 n 0000014878 00000 n 0000014637 00000 n 0000014300 00000 n 0000014756 00000 n 0000015949 00000 n 0000016129 00000 n 0000016281 00000 n 0000016431 00000 n 0000016587 00000 n 0000016859 00000 n 0000015778 00000 n 0000014971 00000 n 0000016736 00000 n 0000016798 00000 n 0000865650 00000 n 0000079975 00000 n 0000521983 00000 n 0000019448 00000 n 0000019607 00000 n 0000019767 00000 n 0000019913 00000 n 0000020079 00000 n 0000020223 00000 n 0000020373 00000 n 0000020517 00000 n 0000020685 00000 n 0000020835 00000 n 0000020991 00000 n 0000021145 00000 n 0000021312 00000 n 0000021456 00000 n 0000021608 00000 n 0000021769 00000 n 0000021934 00000 n 0000022087 00000 n 0000022253 00000 n 0000022422 00000 n 0000022568 00000 n 0000022734 00000 n 0000022879 00000 n 0000023041 00000 n 0000023188 00000 n 0000023349 00000 n 0000023504 00000 n 0000023665 00000 n 0000023829 00000 n 0000023995 00000 n 0000024145 00000 n 0000024313 00000 n 0000024463 00000 n 0000024633 00000 n 0000024787 00000 n 0000024958 00000 n 0000025103 00000 n 0000025272 00000 n 0000025417 00000 n 0000025580 00000 n 0000025727 00000 n 0000025898 00000 n 0000026054 00000 n 0000026236 00000 n 0000026385 00000 n 0000026569 00000 n 0000026714 00000 n 0000026918 00000 n 0000027061 00000 n 0000027259 00000 n 0000027408 00000 n 0000027568 00000 n 0000027714 00000 n 0000030266 00000 n 0000030413 00000 n 0000030576 00000 n 0000030722 00000 n 0000030882 00000 n 0000031029 00000 n 0000031190 00000 n 0000031336 00000 n 0000031497 00000 n 0000031644 00000 n 0000031806 00000 n 0000031951 00000 n 0000032111 00000 n 0000032257 00000 n 0000032420 00000 n 0000032570 00000 n 0000028199 00000 n 0000018893 00000 n 0000016941 00000 n 0000027895 00000 n 0000028077 00000 n 0000028138 00000 n 0000034139 00000 n 0000034322 00000 n 0000865620 00000 n 0000034505 00000 n 0000865590 00000 n 0000037766 00000 n 0000038071 00000 n 0000865560 00000 n 0000038315 00000 n 0000865530 00000 n 0000042561 00000 n 0000042805 00000 n 0000043048 00000 n 0000043231 00000 n 0000046124 00000 n 0000046307 00000 n 0000046490 00000 n 0000865500 00000 n 0000046672 00000 n 0000049655 00000 n 0000865470 00000 n 0000050021 00000 n 0000050448 00000 n 0000053632 00000 n 0000053815 00000 n 0000053997 00000 n 0000054180 00000 n 0000057076 00000 n 0000865440 00000 n 0000057502 00000 n 0000865410 00000 n 0000060269 00000 n 0000060512 00000 n 0000865380 00000 n 0000060756 00000 n 0000865350 00000 n 0000063667 00000 n 0000064032 00000 n 0000064396 00000 n 0000067334 00000 n 0000067639 00000 n 0000865320 00000 n 0000067944 00000 n 0000032732 00000 n 0000032890 00000 n 0000033049 00000 n 0000033208 00000 n 0000033378 00000 n 0000033533 00000 n 0000033681 00000 n 0000034685 00000 n 0000029951 00000 n 0000028292 00000 n 0000033833 00000 n 0000033895 00000 n 0000033956 00000 n 0000034017 00000 n 0000034078 00000 n 0000034200 00000 n 0000034261 00000 n 0000034383 00000 n 0000034444 00000 n 0000034565 00000 n 0000034625 00000 n 0000070418 00000 n 0000070662 00000 n 0000072316 00000 n 0000072560 00000 n 0000072802 00000 n 0000865290 00000 n 0000075570 00000 n 0000075875 00000 n 0000076119 00000 n 0000079184 00000 n 0000079367 00000 n 0000079550 00000 n 0000079733 00000 n 0000865260 00000 n 0000037039 00000 n 0000037195 00000 n 0000037344 00000 n 0000037495 00000 n 0000041076 00000 n 0000038681 00000 n 0000036876 00000 n 0000034791 00000 n 0000037643 00000 n 0000037705 00000 n 0000037827 00000 n 0000037888 00000 n 0000037949 00000 n 0000038010 00000 n 0001004994 00000 n 0000038132 00000 n 0000038193 00000 n 0000038254 00000 n 0000038376 00000 n 0000038437 00000 n 0000038498 00000 n 0000038559 00000 n 0000038620 00000 n 0000865230 00000 n 0000865200 00000 n 0000041225 00000 n 0000041375 00000 n 0000041528 00000 n 0000041697 00000 n 0000041849 00000 n 0000042016 00000 n 0000042184 00000 n 0000042347 00000 n 0000043414 00000 n 0000040873 00000 n 0000038801 00000 n 0000042499 00000 n 0000042622 00000 n 0000042683 00000 n 0000042744 00000 n 0000042866 00000 n 0000042926 00000 n 0000042987 00000 n 0000043109 00000 n 0000043170 00000 n 0000043292 00000 n 0000043353 00000 n 0001003782 00000 n 0001005405 00000 n 0000865170 00000 n 0000865140 00000 n 0000865110 00000 n 0000865080 00000 n 0000865050 00000 n 0000865020 00000 n 0000045135 00000 n 0000045287 00000 n 0000045439 00000 n 0000045591 00000 n 0000045759 00000 n 0000045911 00000 n 0000046915 00000 n 0000044956 00000 n 0000043548 00000 n 0000046062 00000 n 0000046185 00000 n 0000046246 00000 n 0000046368 00000 n 0000046429 00000 n 0000046551 00000 n 0000046612 00000 n 0000046732 00000 n 0000046793 00000 n 0000046854 00000 n 0000864990 00000 n 0000048958 00000 n 0000049114 00000 n 0000049264 00000 n 0000049435 00000 n 0000050508 00000 n 0000048795 00000 n 0000047035 00000 n 0000049593 00000 n 0000049716 00000 n 0000049777 00000 n 0000049838 00000 n 0000049899 00000 n 0000049960 00000 n 0000050082 00000 n 0000050143 00000 n 0000050204 00000 n 0000050265 00000 n 0000050326 00000 n 0000050387 00000 n 0000864960 00000 n 0000864930 00000 n 0000864900 00000 n 0000052038 00000 n 0000052190 00000 n 0000052345 00000 n 0000052496 00000 n 0000052648 00000 n 0000052805 00000 n 0000052957 00000 n 0000053125 00000 n 0000053277 00000 n 0000054484 00000 n 0000051835 00000 n 0000050642 00000 n 0000053448 00000 n 0000053510 00000 n 0000053571 00000 n 0000053693 00000 n 0000053754 00000 n 0000053876 00000 n 0000053936 00000 n 0000054058 00000 n 0000054119 00000 n 0000054241 00000 n 0000054302 00000 n 0000054363 00000 n 0000054424 00000 n 0000864870 00000 n 0000864840 00000 n 0000864810 00000 n 0000864780 00000 n 0000056591 00000 n 0000056742 00000 n 0000057868 00000 n 0000056444 00000 n 0000054590 00000 n 0000056893 00000 n 0000056955 00000 n 0000057016 00000 n 0000057137 00000 n 0000057198 00000 n 0000057259 00000 n 0000057320 00000 n 0000057381 00000 n 0000057442 00000 n 0000057563 00000 n 0000057624 00000 n 0000057685 00000 n 0000057746 00000 n 0000057807 00000 n 0000059755 00000 n 0000059907 00000 n 0000060055 00000 n 0000061122 00000 n 0000059600 00000 n 0000058002 00000 n 0000060207 00000 n 0000060329 00000 n 0000060390 00000 n 0000060451 00000 n 0000060573 00000 n 0000060634 00000 n 0000060695 00000 n 0000060817 00000 n 0000060878 00000 n 0000060939 00000 n 0000061000 00000 n 0000061061 00000 n 0000063159 00000 n 0000063303 00000 n 0000063455 00000 n 0000064701 00000 n 0000063004 00000 n 0000061242 00000 n 0000063605 00000 n 0000063728 00000 n 0000063789 00000 n 0000063850 00000 n 0000063910 00000 n 0000063971 00000 n 0000064093 00000 n 0000064154 00000 n 0000064215 00000 n 0000064276 00000 n 0000064337 00000 n 0000064457 00000 n 0000064518 00000 n 0000064579 00000 n 0000064640 00000 n 0001005523 00000 n 0000864750 00000 n 0000066635 00000 n 0000066806 00000 n 0000066960 00000 n 0000067123 00000 n 0000068187 00000 n 0000066472 00000 n 0000064835 00000 n 0000067272 00000 n 0000067395 00000 n 0000067456 00000 n 0000067517 00000 n 0000067578 00000 n 0000067700 00000 n 0000067761 00000 n 0000067822 00000 n 0000067883 00000 n 0000068005 00000 n 0000068066 00000 n 0000068127 00000 n 0000864720 00000 n 0000864690 00000 n 0000864660 00000 n 0000070026 00000 n 0000070967 00000 n 0000069887 00000 n 0000068321 00000 n 0000070174 00000 n 0000070236 00000 n 0000070297 00000 n 0000070357 00000 n 0000070479 00000 n 0000070540 00000 n 0000070601 00000 n 0000070723 00000 n 0000070784 00000 n 0000070845 00000 n 0000070906 00000 n 0000073046 00000 n 0000072135 00000 n 0000071087 00000 n 0000072254 00000 n 0000072377 00000 n 0000072438 00000 n 0000072499 00000 n 0000072621 00000 n 0000072682 00000 n 0000072743 00000 n 0000072863 00000 n 0000072924 00000 n 0000072985 00000 n 0000074911 00000 n 0000075059 00000 n 0000075211 00000 n 0000075360 00000 n 0000076424 00000 n 0000074748 00000 n 0000073166 00000 n 0000075508 00000 n 0000075631 00000 n 0000075692 00000 n 0000075753 00000 n 0000075814 00000 n 0000075936 00000 n 0000075997 00000 n 0000076058 00000 n 0000076180 00000 n 0000076241 00000 n 0000076302 00000 n 0000076363 00000 n 0000864630 00000 n 0000078107 00000 n 0000078277 00000 n 0000078422 00000 n 0000078583 00000 n 0000078733 00000 n 0000078898 00000 n 0000080460 00000 n 0000077928 00000 n 0000076558 00000 n 0000079061 00000 n 0000079123 00000 n 0000079245 00000 n 0000079306 00000 n 0000079428 00000 n 0000079489 00000 n 0000079611 00000 n 0000079672 00000 n 0000079794 00000 n 0000079854 00000 n 0000080036 00000 n 0000080097 00000 n 0000080158 00000 n 0000080218 00000 n 0000080279 00000 n 0000080339 00000 n 0000080400 00000 n 0000864600 00000 n 0000085159 00000 n 0000094488 00000 n 0000085342 00000 n 0000084916 00000 n 0000082521 00000 n 0000082669 00000 n 0000082830 00000 n 0000082979 00000 n 0000083135 00000 n 0000083289 00000 n 0000083438 00000 n 0000083591 00000 n 0000083745 00000 n 0000083894 00000 n 0000084050 00000 n 0000084205 00000 n 0000087813 00000 n 0000087962 00000 n 0000088133 00000 n 0000088284 00000 n 0000088453 00000 n 0000088599 00000 n 0000088775 00000 n 0000088919 00000 n 0000085706 00000 n 0000082294 00000 n 0000080566 00000 n 0000084367 00000 n 0000084429 00000 n 0000084490 00000 n 0000084551 00000 n 0000084612 00000 n 0000084673 00000 n 0000084734 00000 n 0000084795 00000 n 0000084856 00000 n 0000084977 00000 n 0000085038 00000 n 0000085098 00000 n 0001003434 00000 n 0000085220 00000 n 0000085281 00000 n 0000085403 00000 n 0000085464 00000 n 0000085584 00000 n 0000085645 00000 n 0001005641 00000 n 0000527078 00000 n 0000864570 00000 n 0000507202 00000 n 0000090182 00000 n 0000089091 00000 n 0000089255 00000 n 0000089410 00000 n 0000090669 00000 n 0000087594 00000 n 0000085826 00000 n 0000089572 00000 n 0000089634 00000 n 0000089695 00000 n 0000089756 00000 n 0000089817 00000 n 0000089878 00000 n 0000089939 00000 n 0000090000 00000 n 0000090061 00000 n 0000090122 00000 n 0000090243 00000 n 0000090304 00000 n 0000090364 00000 n 0000090425 00000 n 0000090486 00000 n 0000090547 00000 n 0000090608 00000 n 0000093696 00000 n 0000864540 00000 n 0000093879 00000 n 0000094062 00000 n 0000094245 00000 n 0000092284 00000 n 0000092434 00000 n 0000092613 00000 n 0000092762 00000 n 0000092938 00000 n 0000093084 00000 n 0000093262 00000 n 0000093414 00000 n 0000097876 00000 n 0000098022 00000 n 0000098186 00000 n 0000098331 00000 n 0000098501 00000 n 0000098646 00000 n 0000098808 00000 n 0000098956 00000 n 0000099131 00000 n 0000099276 00000 n 0000099450 00000 n 0000099598 00000 n 0000099764 00000 n 0000099913 00000 n 0000100077 00000 n 0000100223 00000 n 0000100389 00000 n 0000100538 00000 n 0000100711 00000 n 0000100857 00000 n 0000101028 00000 n 0000101177 00000 n 0000101352 00000 n 0000101501 00000 n 0000101676 00000 n 0000101821 00000 n 0000101983 00000 n 0000102129 00000 n 0000102299 00000 n 0000102444 00000 n 0000102608 00000 n 0000102754 00000 n 0000102923 00000 n 0000103068 00000 n 0000103235 00000 n 0000103381 00000 n 0000103549 00000 n 0000103693 00000 n 0000103858 00000 n 0000104007 00000 n 0000094669 00000 n 0000092089 00000 n 0000090775 00000 n 0000093573 00000 n 0000093635 00000 n 0000093757 00000 n 0000093818 00000 n 0000093940 00000 n 0000094001 00000 n 0000094123 00000 n 0000094184 00000 n 0000094306 00000 n 0000094367 00000 n 0000094548 00000 n 0000094609 00000 n 0000108474 00000 n 0000864510 00000 n 0000110879 00000 n 0000111123 00000 n 0000113252 00000 n 0000104171 00000 n 0000104316 00000 n 0000104481 00000 n 0000104630 00000 n 0000104799 00000 n 0000104945 00000 n 0000105116 00000 n 0000105265 00000 n 0000105429 00000 n 0000105578 00000 n 0000105745 00000 n 0000105891 00000 n 0000106059 00000 n 0000106204 00000 n 0000106372 00000 n 0000106517 00000 n 0000106684 00000 n 0000106829 00000 n 0000106995 00000 n 0000107140 00000 n 0000107306 00000 n 0000107466 00000 n 0000107616 00000 n 0000107770 00000 n 0000108534 00000 n 0000097233 00000 n 0000094789 00000 n 0000107925 00000 n 0000107987 00000 n 0000108047 00000 n 0000108108 00000 n 0000108169 00000 n 0000108230 00000 n 0000108291 00000 n 0000108352 00000 n 0000108413 00000 n 0000113801 00000 n 0000113984 00000 n 0000114166 00000 n 0000115873 00000 n 0000116054 00000 n 0000116237 00000 n 0000116420 00000 n 0000116603 00000 n 0000116786 00000 n 0000118475 00000 n 0000118658 00000 n 0000118840 00000 n 0000119023 00000 n 0000119206 00000 n 0000119389 00000 n 0000120985 00000 n 0000121168 00000 n 0000121350 00000 n 0000121533 00000 n 0000121716 00000 n 0000121899 00000 n 0000123494 00000 n 0000123677 00000 n 0000123859 00000 n 0000124042 00000 n 0000124225 00000 n 0000124408 00000 n 0000129960 00000 n 0000130143 00000 n 0000130323 00000 n 0000113557 00000 n 0000864480 00000 n 0000864450 00000 n 0000110363 00000 n 0000111367 00000 n 0000110224 00000 n 0000108640 00000 n 0000110513 00000 n 0000110575 00000 n 0000110636 00000 n 0000110697 00000 n 0000110758 00000 n 0000110818 00000 n 0000110940 00000 n 0000111001 00000 n 0000111062 00000 n 0000111184 00000 n 0000111245 00000 n 0000111306 00000 n 0000113039 00000 n 0000114348 00000 n 0000112900 00000 n 0000111487 00000 n 0000113190 00000 n 0000113313 00000 n 0000113374 00000 n 0000113435 00000 n 0000113496 00000 n 0000113618 00000 n 0000113679 00000 n 0000113740 00000 n 0000113862 00000 n 0000113923 00000 n 0000114045 00000 n 0000114105 00000 n 0000114227 00000 n 0000114288 00000 n 0000116969 00000 n 0000115692 00000 n 0000114482 00000 n 0000115811 00000 n 0000115934 00000 n 0000115994 00000 n 0000116115 00000 n 0000116176 00000 n 0000116298 00000 n 0000116359 00000 n 0000116481 00000 n 0000116542 00000 n 0000116664 00000 n 0000116725 00000 n 0000116847 00000 n 0000116908 00000 n 0001005759 00000 n 0000119572 00000 n 0000118294 00000 n 0000117089 00000 n 0000118413 00000 n 0000118536 00000 n 0000118597 00000 n 0000118719 00000 n 0000118779 00000 n 0000118901 00000 n 0000118962 00000 n 0000119084 00000 n 0000119145 00000 n 0000119267 00000 n 0000119328 00000 n 0000119450 00000 n 0000119511 00000 n 0000122082 00000 n 0000120804 00000 n 0000119692 00000 n 0000120923 00000 n 0000121046 00000 n 0000121107 00000 n 0000121229 00000 n 0000121289 00000 n 0000121411 00000 n 0000121472 00000 n 0000121594 00000 n 0000121655 00000 n 0000121777 00000 n 0000121838 00000 n 0000121960 00000 n 0000122021 00000 n 0000124590 00000 n 0000123313 00000 n 0000122202 00000 n 0000123432 00000 n 0000123555 00000 n 0000123616 00000 n 0000123738 00000 n 0000123798 00000 n 0000123920 00000 n 0000123981 00000 n 0000124103 00000 n 0000124164 00000 n 0000124286 00000 n 0000124347 00000 n 0000124469 00000 n 0000124529 00000 n 0000126433 00000 n 0000126577 00000 n 0000126738 00000 n 0000126887 00000 n 0000127063 00000 n 0000127211 00000 n 0000127385 00000 n 0000127531 00000 n 0000127707 00000 n 0000127850 00000 n 0000128019 00000 n 0000128163 00000 n 0000128331 00000 n 0000128480 00000 n 0000128643 00000 n 0000128787 00000 n 0000128948 00000 n 0000129092 00000 n 0000129262 00000 n 0000129406 00000 n 0000129574 00000 n 0000129735 00000 n 0000130748 00000 n 0000126126 00000 n 0000124710 00000 n 0000129898 00000 n 0000130021 00000 n 0000130082 00000 n 0000130204 00000 n 0000130264 00000 n 0000130384 00000 n 0000130444 00000 n 0000130565 00000 n 0000130626 00000 n 0000130687 00000 n 0000134276 00000 n 0000134641 00000 n 0000136955 00000 n 0000137260 00000 n 0000137504 00000 n 0000140990 00000 n 0000141357 00000 n 0000144078 00000 n 0000144455 00000 n 0000144831 00000 n 0000147297 00000 n 0000147485 00000 n 0000133170 00000 n 0000133318 00000 n 0000133467 00000 n 0000133628 00000 n 0000134946 00000 n 0000133007 00000 n 0000130868 00000 n 0000133788 00000 n 0000133850 00000 n 0000133911 00000 n 0000133972 00000 n 0000134033 00000 n 0000134094 00000 n 0000134154 00000 n 0000134215 00000 n 0000134337 00000 n 0000134398 00000 n 0000134459 00000 n 0000134520 00000 n 0000134581 00000 n 0000134702 00000 n 0000134763 00000 n 0000134824 00000 n 0000134885 00000 n 0000864420 00000 n 0000136590 00000 n 0000136742 00000 n 0000137745 00000 n 0000136443 00000 n 0000135052 00000 n 0000136893 00000 n 0000137016 00000 n 0000137077 00000 n 0000137138 00000 n 0000137199 00000 n 0000137321 00000 n 0000137382 00000 n 0000137443 00000 n 0000137563 00000 n 0000137624 00000 n 0000137685 00000 n 0001005877 00000 n 0000140050 00000 n 0000140204 00000 n 0000140353 00000 n 0000140506 00000 n 0000140656 00000 n 0000141789 00000 n 0000139879 00000 n 0000137865 00000 n 0000140807 00000 n 0000140869 00000 n 0000140930 00000 n 0000141051 00000 n 0000141112 00000 n 0000141173 00000 n 0000141234 00000 n 0000141295 00000 n 0000141418 00000 n 0000141480 00000 n 0000141541 00000 n 0000141603 00000 n 0000141665 00000 n 0000141727 00000 n 0000864389 00000 n 0000864358 00000 n 0000143865 00000 n 0000145208 00000 n 0000143722 00000 n 0000141909 00000 n 0000144014 00000 n 0000144140 00000 n 0000144203 00000 n 0000144266 00000 n 0000144329 00000 n 0000144392 00000 n 0000144517 00000 n 0000144580 00000 n 0000144643 00000 n 0000144706 00000 n 0000144768 00000 n 0000144893 00000 n 0000144956 00000 n 0000145019 00000 n 0000145082 00000 n 0000145145 00000 n 0000147015 00000 n 0000147986 00000 n 0000146872 00000 n 0000145329 00000 n 0000147170 00000 n 0000147234 00000 n 0000147359 00000 n 0000147422 00000 n 0000147547 00000 n 0000147610 00000 n 0000147673 00000 n 0000147736 00000 n 0000147799 00000 n 0000147860 00000 n 0000147923 00000 n 0000150305 00000 n 0000150449 00000 n 0000150632 00000 n 0000150788 00000 n 0000150951 00000 n 0000151101 00000 n 0000151273 00000 n 0000151426 00000 n 0000151589 00000 n 0000151739 00000 n 0000151911 00000 n 0000152062 00000 n 0000152230 00000 n 0000152394 00000 n 0000152559 00000 n 0000152711 00000 n 0000152863 00000 n 0000153024 00000 n 0000153177 00000 n 0000153327 00000 n 0000153483 00000 n 0000153632 00000 n 0000153785 00000 n 0000153944 00000 n 0000154094 00000 n 0000154248 00000 n 0000154402 00000 n 0000154552 00000 n 0000154703 00000 n 0000156124 00000 n 0000149910 00000 n 0000148107 00000 n 0000154865 00000 n 0000154990 00000 n 0000155053 00000 n 0000155116 00000 n 0000155179 00000 n 0000155242 00000 n 0000155305 00000 n 0000155368 00000 n 0000155431 00000 n 0000155494 00000 n 0000155557 00000 n 0000155620 00000 n 0000155683 00000 n 0000155746 00000 n 0000155809 00000 n 0000155872 00000 n 0000155935 00000 n 0000155998 00000 n 0000156061 00000 n 0000159173 00000 n 0000159676 00000 n 0000864327 00000 n 0000159990 00000 n 0000163363 00000 n 0000163677 00000 n 0000165830 00000 n 0000166019 00000 n 0000202197 00000 n 0000310927 00000 n 0000379021 00000 n 0000389791 00000 n 0000454059 00000 n 0000539841 00000 n 0000565693 00000 n 0000647171 00000 n 0000663863 00000 n 0000678092 00000 n 0000697288 00000 n 0000864296 00000 n 0000158348 00000 n 0000158500 00000 n 0000158651 00000 n 0000158804 00000 n 0000158958 00000 n 0000160241 00000 n 0000158169 00000 n 0000156231 00000 n 0000159109 00000 n 0000159236 00000 n 0000159299 00000 n 0000159362 00000 n 0000159425 00000 n 0000159488 00000 n 0000159551 00000 n 0000159614 00000 n 0000159739 00000 n 0000159802 00000 n 0000159864 00000 n 0000159927 00000 n 0000160053 00000 n 0000160116 00000 n 0000160179 00000 n 0000162159 00000 n 0000162311 00000 n 0000162465 00000 n 0000162616 00000 n 0000162773 00000 n 0000162936 00000 n 0000163085 00000 n 0000163992 00000 n 0000161961 00000 n 0000160376 00000 n 0000163236 00000 n 0000163300 00000 n 0000163425 00000 n 0000163488 00000 n 0000163551 00000 n 0000163614 00000 n 0000163740 00000 n 0000163803 00000 n 0000163866 00000 n 0000163929 00000 n 0001005999 00000 n 0000165547 00000 n 0000166459 00000 n 0000165403 00000 n 0000164127 00000 n 0000165703 00000 n 0000165767 00000 n 0000165893 00000 n 0000165956 00000 n 0000166082 00000 n 0000166145 00000 n 0000166208 00000 n 0000166270 00000 n 0000166333 00000 n 0001003288 00000 n 0001003142 00000 n 0000166396 00000 n 0000168172 00000 n 0000168324 00000 n 0000168478 00000 n 0000168639 00000 n 0000168794 00000 n 0000168959 00000 n 0000169109 00000 n 0000169273 00000 n 0000169420 00000 n 0000169580 00000 n 0000169727 00000 n 0000169887 00000 n 0000170049 00000 n 0000173244 00000 n 0000173398 00000 n 0000171146 00000 n 0000167920 00000 n 0000166610 00000 n 0000170205 00000 n 0000170391 00000 n 0000170454 00000 n 0000170517 00000 n 0000170580 00000 n 0000170643 00000 n 0000170706 00000 n 0000170769 00000 n 0000170832 00000 n 0000170895 00000 n 0000170957 00000 n 0000171020 00000 n 0000171083 00000 n 0000174532 00000 n 0000175162 00000 n 0000177152 00000 n 0000177341 00000 n 0000177530 00000 n 0000177719 00000 n 0000174973 00000 n 0000173554 00000 n 0000173723 00000 n 0000173880 00000 n 0000174036 00000 n 0000174189 00000 n 0000175349 00000 n 0000173046 00000 n 0000171253 00000 n 0000174342 00000 n 0000174406 00000 n 0000174469 00000 n 0000174595 00000 n 0000174658 00000 n 0000174721 00000 n 0000174784 00000 n 0000174847 00000 n 0000174910 00000 n 0000175036 00000 n 0000175099 00000 n 0000175225 00000 n 0000175287 00000 n 0000340684 00000 n 0000180428 00000 n 0000180585 00000 n 0000180752 00000 n 0000177908 00000 n 0000176716 00000 n 0000175470 00000 n 0000176839 00000 n 0000176903 00000 n 0000176965 00000 n 0000177027 00000 n 0000177089 00000 n 0000177215 00000 n 0000177278 00000 n 0000177404 00000 n 0000177467 00000 n 0000177593 00000 n 0000177656 00000 n 0000177782 00000 n 0000177845 00000 n 0000180928 00000 n 0000181078 00000 n 0000181262 00000 n 0000181413 00000 n 0000181591 00000 n 0000181744 00000 n 0000181923 00000 n 0000182076 00000 n 0000182256 00000 n 0000182432 00000 n 0000185915 00000 n 0000184121 00000 n 0000180176 00000 n 0000178029 00000 n 0000182616 00000 n 0000182741 00000 n 0000182804 00000 n 0000182867 00000 n 0000182930 00000 n 0000182993 00000 n 0000183056 00000 n 0000183118 00000 n 0000183181 00000 n 0000183244 00000 n 0000183307 00000 n 0000183369 00000 n 0000183432 00000 n 0000183495 00000 n 0000183557 00000 n 0000183620 00000 n 0000183683 00000 n 0000183745 00000 n 0000183808 00000 n 0000183870 00000 n 0000183933 00000 n 0000183996 00000 n 0000184059 00000 n 0000864265 00000 n 0000864234 00000 n 0000186461 00000 n 0000186650 00000 n 0000186838 00000 n 0000201947 00000 n 0000186209 00000 n 0000187026 00000 n 0000185771 00000 n 0000184228 00000 n 0000186082 00000 n 0000186146 00000 n 0000186272 00000 n 0000186335 00000 n 0000186398 00000 n 0000186524 00000 n 0000186587 00000 n 0000186713 00000 n 0000186775 00000 n 0000186900 00000 n 0000186963 00000 n 0001006124 00000 n 0000864203 00000 n 0000190295 00000 n 0000190446 00000 n 0000190614 00000 n 0000190764 00000 n 0000190935 00000 n 0000191080 00000 n 0000191244 00000 n 0000191389 00000 n 0000191566 00000 n 0000191711 00000 n 0000191893 00000 n 0000192044 00000 n 0000192215 00000 n 0000192366 00000 n 0000192544 00000 n 0000192695 00000 n 0000192872 00000 n 0000193023 00000 n 0000193196 00000 n 0000193347 00000 n 0000193526 00000 n 0000193677 00000 n 0000193855 00000 n 0000194013 00000 n 0000194188 00000 n 0000194343 00000 n 0000194518 00000 n 0000194671 00000 n 0000194843 00000 n 0000195002 00000 n 0000195178 00000 n 0000195324 00000 n 0000195501 00000 n 0000195660 00000 n 0000195836 00000 n 0000195984 00000 n 0000196162 00000 n 0000196313 00000 n 0000196481 00000 n 0000196632 00000 n 0000196803 00000 n 0000196954 00000 n 0000197128 00000 n 0000197279 00000 n 0000197446 00000 n 0000197597 00000 n 0000197765 00000 n 0000197910 00000 n 0000198085 00000 n 0000198230 00000 n 0000198399 00000 n 0000198544 00000 n 0000198715 00000 n 0000198859 00000 n 0000199031 00000 n 0000199176 00000 n 0000199355 00000 n 0000199499 00000 n 0000199678 00000 n 0000199830 00000 n 0000199998 00000 n 0000200146 00000 n 0000200316 00000 n 0000200464 00000 n 0000200632 00000 n 0000200778 00000 n 0000200934 00000 n 0000201085 00000 n 0000201249 00000 n 0000201398 00000 n 0000201566 00000 n 0000201716 00000 n 0000205043 00000 n 0000205195 00000 n 0000205357 00000 n 0000205508 00000 n 0000205673 00000 n 0000205825 00000 n 0000205997 00000 n 0000206148 00000 n 0000206318 00000 n 0000206468 00000 n 0000206631 00000 n 0000206778 00000 n 0000206944 00000 n 0000207092 00000 n 0000207259 00000 n 0000207406 00000 n 0000207571 00000 n 0000207721 00000 n 0000207886 00000 n 0000208034 00000 n 0000208192 00000 n 0000208349 00000 n 0000208509 00000 n 0000208657 00000 n 0000208823 00000 n 0000208971 00000 n 0000202385 00000 n 0000189512 00000 n 0000187161 00000 n 0000201883 00000 n 0000202010 00000 n 0000202073 00000 n 0000202259 00000 n 0000202322 00000 n 0000215579 00000 n 0000215830 00000 n 0000218625 00000 n 0000218940 00000 n 0000219444 00000 n 0000222231 00000 n 0000222483 00000 n 0000222732 00000 n 0000225401 00000 n 0000225653 00000 n 0000225904 00000 n 0000264160 00000 n 0000229196 00000 n 0000229448 00000 n 0000229763 00000 n 0000232760 00000 n 0000233012 00000 n 0000233264 00000 n 0000236452 00000 n 0000236766 00000 n 0000240109 00000 n 0000240360 00000 n 0000240612 00000 n 0000242999 00000 n 0000243251 00000 n 0000243503 00000 n 0000243818 00000 n 0000246149 00000 n 0000246401 00000 n 0000246777 00000 n 0000252135 00000 n 0000253790 00000 n 0000253979 00000 n 0000254168 00000 n 0000254357 00000 n 0000254546 00000 n 0000254734 00000 n 0000209132 00000 n 0000209278 00000 n 0000209445 00000 n 0000209611 00000 n 0000209757 00000 n 0000209926 00000 n 0000210092 00000 n 0000210252 00000 n 0000210410 00000 n 0000210568 00000 n 0000210725 00000 n 0000210882 00000 n 0000214387 00000 n 0000212227 00000 n 0000204566 00000 n 0000202506 00000 n 0000211030 00000 n 0000211094 00000 n 0000211157 00000 n 0000211220 00000 n 0000211283 00000 n 0000211346 00000 n 0000211409 00000 n 0000211472 00000 n 0000211535 00000 n 0000211598 00000 n 0000211661 00000 n 0000211724 00000 n 0000211787 00000 n 0000211850 00000 n 0000211912 00000 n 0000211975 00000 n 0000212038 00000 n 0000212101 00000 n 0000212164 00000 n 0000256428 00000 n 0000256616 00000 n 0000256805 00000 n 0000256994 00000 n 0000257183 00000 n 0000257371 00000 n 0000257560 00000 n 0000259224 00000 n 0000259413 00000 n 0000259602 00000 n 0000251763 00000 n 0000259791 00000 n 0000259980 00000 n 0000260169 00000 n 0000263344 00000 n 0000864172 00000 n 0000263722 00000 n 0000247092 00000 n 0000249575 00000 n 0000864141 00000 n 0000214540 00000 n 0000214693 00000 n 0000214849 00000 n 0000215003 00000 n 0000215151 00000 n 0000215302 00000 n 0000216081 00000 n 0000214189 00000 n 0000212334 00000 n 0000215452 00000 n 0000215516 00000 n 0000215641 00000 n 0000215704 00000 n 0000215767 00000 n 0000215893 00000 n 0000215956 00000 n 0000216018 00000 n 0000864110 00000 n 0000218252 00000 n 0000218403 00000 n 0000219948 00000 n 0000218099 00000 n 0000216200 00000 n 0000218561 00000 n 0000218688 00000 n 0000218751 00000 n 0000218814 00000 n 0000218877 00000 n 0000219003 00000 n 0000219066 00000 n 0000219129 00000 n 0000219192 00000 n 0000219255 00000 n 0000219318 00000 n 0000219381 00000 n 0000219507 00000 n 0000219570 00000 n 0000219633 00000 n 0000219696 00000 n 0000219759 00000 n 0000219822 00000 n 0000219885 00000 n 0000221559 00000 n 0000221710 00000 n 0000221864 00000 n 0000222014 00000 n 0000222984 00000 n 0000221388 00000 n 0000220055 00000 n 0000222167 00000 n 0000222294 00000 n 0000222357 00000 n 0000222420 00000 n 0000222546 00000 n 0000222608 00000 n 0000222669 00000 n 0000222795 00000 n 0000222858 00000 n 0000222921 00000 n 0000224424 00000 n 0000224575 00000 n 0000224729 00000 n 0000224880 00000 n 0000225034 00000 n 0000225184 00000 n 0000226155 00000 n 0000224235 00000 n 0000223091 00000 n 0000225337 00000 n 0000225464 00000 n 0000225527 00000 n 0000225590 00000 n 0000225716 00000 n 0000225779 00000 n 0000225841 00000 n 0000225967 00000 n 0000226030 00000 n 0000226093 00000 n 0001006249 00000 n 0000228045 00000 n 0000228196 00000 n 0000228350 00000 n 0000228508 00000 n 0000228660 00000 n 0000228824 00000 n 0000228979 00000 n 0000231913 00000 n 0000230076 00000 n 0000227847 00000 n 0000226262 00000 n 0000229132 00000 n 0000229259 00000 n 0000229322 00000 n 0000229385 00000 n 0000229511 00000 n 0000229574 00000 n 0000229637 00000 n 0000229700 00000 n 0000229826 00000 n 0000229888 00000 n 0000229951 00000 n 0000230013 00000 n 0000232078 00000 n 0000232233 00000 n 0000232386 00000 n 0000232544 00000 n 0000233326 00000 n 0000231733 00000 n 0000230197 00000 n 0000232696 00000 n 0000232823 00000 n 0000232886 00000 n 0000232949 00000 n 0000233075 00000 n 0000233138 00000 n 0000233201 00000 n 0000235215 00000 n 0000235374 00000 n 0000235527 00000 n 0000235680 00000 n 0000235829 00000 n 0000235982 00000 n 0000238687 00000 n 0000238837 00000 n 0000237017 00000 n 0000235026 00000 n 0000233447 00000 n 0000236137 00000 n 0000236201 00000 n 0000236264 00000 n 0000236327 00000 n 0000236390 00000 n 0000236515 00000 n 0000236578 00000 n 0000236640 00000 n 0000236703 00000 n 0000236829 00000 n 0000236892 00000 n 0000236955 00000 n 0000238990 00000 n 0000239144 00000 n 0000239292 00000 n 0000239443 00000 n 0000239593 00000 n 0000239744 00000 n 0000239896 00000 n 0000240864 00000 n 0000238471 00000 n 0000237152 00000 n 0000240045 00000 n 0000240172 00000 n 0000240235 00000 n 0000240298 00000 n 0000240423 00000 n 0000240486 00000 n 0000240549 00000 n 0000240675 00000 n 0000240738 00000 n 0000240801 00000 n 0000864079 00000 n 0000242630 00000 n 0000242781 00000 n 0000244069 00000 n 0000242477 00000 n 0000240971 00000 n 0000242935 00000 n 0000243062 00000 n 0000243125 00000 n 0000243188 00000 n 0000243314 00000 n 0000243377 00000 n 0000243440 00000 n 0000243566 00000 n 0000243629 00000 n 0000243692 00000 n 0000243755 00000 n 0000243881 00000 n 0000243944 00000 n 0000244006 00000 n 0000248918 00000 n 0000249064 00000 n 0000249214 00000 n 0000249361 00000 n 0000247533 00000 n 0000245962 00000 n 0000244176 00000 n 0000246085 00000 n 0000246212 00000 n 0000246275 00000 n 0000246338 00000 n 0000246464 00000 n 0000246526 00000 n 0000246588 00000 n 0000246651 00000 n 0000246714 00000 n 0000246840 00000 n 0000246903 00000 n 0000246966 00000 n 0000247029 00000 n 0000247155 00000 n 0000247218 00000 n 0000247281 00000 n 0000247344 00000 n 0000247407 00000 n 0000247470 00000 n 0001006374 00000 n 0000249952 00000 n 0000248747 00000 n 0000247640 00000 n 0000249511 00000 n 0000249638 00000 n 0000249701 00000 n 0000249764 00000 n 0000249827 00000 n 0000249889 00000 n 0000251546 00000 n 0000252324 00000 n 0000251402 00000 n 0000250103 00000 n 0000251699 00000 n 0000251826 00000 n 0000251888 00000 n 0000251949 00000 n 0000252010 00000 n 0000252072 00000 n 0000252198 00000 n 0000252261 00000 n 0000254923 00000 n 0000253603 00000 n 0000252459 00000 n 0000253726 00000 n 0000253853 00000 n 0000253916 00000 n 0000254042 00000 n 0000254105 00000 n 0000254231 00000 n 0000254294 00000 n 0000254420 00000 n 0000254483 00000 n 0000254609 00000 n 0000254672 00000 n 0000254797 00000 n 0000254860 00000 n 0000257749 00000 n 0000256241 00000 n 0000255044 00000 n 0000256364 00000 n 0000256491 00000 n 0000256553 00000 n 0000256679 00000 n 0000256742 00000 n 0000256868 00000 n 0000256931 00000 n 0000257057 00000 n 0000257120 00000 n 0000257245 00000 n 0000257308 00000 n 0000257434 00000 n 0000257497 00000 n 0000257623 00000 n 0000257686 00000 n 0000260357 00000 n 0000259037 00000 n 0000257870 00000 n 0000259160 00000 n 0000259287 00000 n 0000259350 00000 n 0000259476 00000 n 0000259539 00000 n 0000259665 00000 n 0000259728 00000 n 0000259854 00000 n 0000259917 00000 n 0000260043 00000 n 0000260106 00000 n 0000260232 00000 n 0000260295 00000 n 0000262239 00000 n 0000262404 00000 n 0000262568 00000 n 0000262714 00000 n 0000262896 00000 n 0000263039 00000 n 0000267065 00000 n 0000267212 00000 n 0000267390 00000 n 0000267537 00000 n 0000267712 00000 n 0000267860 00000 n 0000268041 00000 n 0000268190 00000 n 0000268368 00000 n 0000268521 00000 n 0000268698 00000 n 0000268845 00000 n 0000269022 00000 n 0000269169 00000 n 0000269354 00000 n 0000269501 00000 n 0000269684 00000 n 0000269835 00000 n 0000270015 00000 n 0000270166 00000 n 0000270345 00000 n 0000270504 00000 n 0000270670 00000 n 0000270815 00000 n 0000270994 00000 n 0000271139 00000 n 0000271314 00000 n 0000271459 00000 n 0000271639 00000 n 0000271783 00000 n 0000271963 00000 n 0000272108 00000 n 0000264282 00000 n 0000262050 00000 n 0000260478 00000 n 0000263217 00000 n 0000263281 00000 n 0000263407 00000 n 0000263470 00000 n 0000263533 00000 n 0000263596 00000 n 0000263659 00000 n 0000263785 00000 n 0000263847 00000 n 0000263910 00000 n 0000263973 00000 n 0000264036 00000 n 0000264219 00000 n 0001006499 00000 n 0000274669 00000 n 0000277533 00000 n 0000272286 00000 n 0000272437 00000 n 0000272606 00000 n 0000272754 00000 n 0000272926 00000 n 0000273075 00000 n 0000273242 00000 n 0000273392 00000 n 0000273561 00000 n 0000273708 00000 n 0000273872 00000 n 0000275108 00000 n 0000266543 00000 n 0000264403 00000 n 0000274039 00000 n 0000274103 00000 n 0000274166 00000 n 0000274229 00000 n 0000274292 00000 n 0000274355 00000 n 0000274417 00000 n 0000274480 00000 n 0000274543 00000 n 0000274606 00000 n 0000274732 00000 n 0000274795 00000 n 0000274857 00000 n 0000274920 00000 n 0000274983 00000 n 0000275046 00000 n 0000864048 00000 n 0000278035 00000 n 0000280270 00000 n 0000280584 00000 n 0000280899 00000 n 0000283704 00000 n 0000284017 00000 n 0000284331 00000 n 0000286463 00000 n 0000286778 00000 n 0000289836 00000 n 0000290150 00000 n 0000290653 00000 n 0000292599 00000 n 0000292851 00000 n 0000293165 00000 n 0000293415 00000 n 0000295894 00000 n 0000296083 00000 n 0000296270 00000 n 0000296459 00000 n 0000310677 00000 n 0000295642 00000 n 0000277316 00000 n 0000278349 00000 n 0000277172 00000 n 0000275215 00000 n 0000277469 00000 n 0000277596 00000 n 0000277658 00000 n 0000277721 00000 n 0000277783 00000 n 0000277846 00000 n 0000277909 00000 n 0000277972 00000 n 0000278097 00000 n 0000278160 00000 n 0000278223 00000 n 0000278286 00000 n 0000280051 00000 n 0000281214 00000 n 0000279907 00000 n 0000278484 00000 n 0000280206 00000 n 0000280332 00000 n 0000280395 00000 n 0000280458 00000 n 0000280521 00000 n 0000280647 00000 n 0000280710 00000 n 0000280773 00000 n 0000280836 00000 n 0000280962 00000 n 0000281025 00000 n 0000281088 00000 n 0000281151 00000 n 0000281810 00000 n 0000281623 00000 n 0000281321 00000 n 0000281746 00000 n 0000283335 00000 n 0000283487 00000 n 0000284393 00000 n 0000283182 00000 n 0000281904 00000 n 0000283640 00000 n 0000283767 00000 n 0000283829 00000 n 0000283892 00000 n 0000283954 00000 n 0000284080 00000 n 0000284143 00000 n 0000284205 00000 n 0000284268 00000 n 0000289165 00000 n 0000287155 00000 n 0000286025 00000 n 0000284514 00000 n 0000286148 00000 n 0000286212 00000 n 0000286275 00000 n 0000286338 00000 n 0000286401 00000 n 0000286526 00000 n 0000286589 00000 n 0000286652 00000 n 0000286715 00000 n 0000286840 00000 n 0000286903 00000 n 0000286966 00000 n 0000287029 00000 n 0000287092 00000 n 0001006624 00000 n 0000289315 00000 n 0000289465 00000 n 0000289617 00000 n 0000290715 00000 n 0000288994 00000 n 0000287262 00000 n 0000289772 00000 n 0000289898 00000 n 0000289961 00000 n 0000290024 00000 n 0000290087 00000 n 0000290213 00000 n 0000290276 00000 n 0000290339 00000 n 0000290402 00000 n 0000290465 00000 n 0000290528 00000 n 0000290590 00000 n 0000864017 00000 n 0000863986 00000 n 0000293729 00000 n 0000292223 00000 n 0000290836 00000 n 0000292346 00000 n 0000292410 00000 n 0000292473 00000 n 0000292536 00000 n 0000292662 00000 n 0000292725 00000 n 0000292788 00000 n 0000292914 00000 n 0000292977 00000 n 0000293040 00000 n 0000293103 00000 n 0000293228 00000 n 0000293290 00000 n 0000293353 00000 n 0000293478 00000 n 0000293541 00000 n 0000293604 00000 n 0000293667 00000 n 0000296648 00000 n 0000295329 00000 n 0000293836 00000 n 0000295452 00000 n 0000295516 00000 n 0000295579 00000 n 0000295705 00000 n 0000295768 00000 n 0000295831 00000 n 0000295957 00000 n 0000296020 00000 n 0000296145 00000 n 0000296207 00000 n 0000296333 00000 n 0000296396 00000 n 0000296522 00000 n 0000296585 00000 n 0000299630 00000 n 0000299783 00000 n 0000299928 00000 n 0000300096 00000 n 0000300240 00000 n 0000300407 00000 n 0000300559 00000 n 0000300718 00000 n 0000300863 00000 n 0000301028 00000 n 0000301173 00000 n 0000301340 00000 n 0000301487 00000 n 0000301658 00000 n 0000301806 00000 n 0000301982 00000 n 0000302137 00000 n 0000302308 00000 n 0000302463 00000 n 0000302646 00000 n 0000302793 00000 n 0000302963 00000 n 0000303111 00000 n 0000303286 00000 n 0000303440 00000 n 0000303609 00000 n 0000303756 00000 n 0000303921 00000 n 0000304067 00000 n 0000304239 00000 n 0000304394 00000 n 0000304563 00000 n 0000304707 00000 n 0000304870 00000 n 0000305022 00000 n 0000305180 00000 n 0000305325 00000 n 0000305497 00000 n 0000305642 00000 n 0000305820 00000 n 0000305965 00000 n 0000306149 00000 n 0000306294 00000 n 0000306476 00000 n 0000306621 00000 n 0000306803 00000 n 0000306948 00000 n 0000307128 00000 n 0000307273 00000 n 0000307445 00000 n 0000307596 00000 n 0000307767 00000 n 0000307918 00000 n 0000308087 00000 n 0000308237 00000 n 0000308405 00000 n 0000308556 00000 n 0000308728 00000 n 0000308878 00000 n 0000309041 00000 n 0000309192 00000 n 0000309362 00000 n 0000309512 00000 n 0000309681 00000 n 0000309833 00000 n 0000309999 00000 n 0000310146 00000 n 0000310306 00000 n 0000310453 00000 n 0000313439 00000 n 0000313585 00000 n 0000313752 00000 n 0000313918 00000 n 0000314064 00000 n 0000314230 00000 n 0000314396 00000 n 0000314542 00000 n 0000314709 00000 n 0000311115 00000 n 0000298874 00000 n 0000296769 00000 n 0000310613 00000 n 0000310740 00000 n 0000310803 00000 n 0000310989 00000 n 0000311052 00000 n 0000316871 00000 n 0000319629 00000 n 0000320007 00000 n 0000320259 00000 n 0000323063 00000 n 0000323440 00000 n 0000323818 00000 n 0000577156 00000 n 0000327046 00000 n 0000327298 00000 n 0000330124 00000 n 0000330564 00000 n 0000333491 00000 n 0000333805 00000 n 0000334245 00000 n 0000337409 00000 n 0000337722 00000 n 0000341125 00000 n 0000341503 00000 n 0000344160 00000 n 0000344600 00000 n 0000345040 00000 n 0000347718 00000 n 0000348095 00000 n 0000350867 00000 n 0000351307 00000 n 0000354091 00000 n 0000354594 00000 n 0000357558 00000 n 0000357872 00000 n 0000358312 00000 n 0000361104 00000 n 0000361293 00000 n 0000361482 00000 n 0000314875 00000 n 0000315035 00000 n 0000315191 00000 n 0000315344 00000 n 0000315495 00000 n 0000315648 00000 n 0000315805 00000 n 0000315964 00000 n 0000317248 00000 n 0000313151 00000 n 0000311236 00000 n 0000316117 00000 n 0000316181 00000 n 0000316244 00000 n 0000316306 00000 n 0000316369 00000 n 0000316431 00000 n 0000316494 00000 n 0000316557 00000 n 0000316619 00000 n 0000316682 00000 n 0000316745 00000 n 0000316808 00000 n 0000316934 00000 n 0000316997 00000 n 0000317060 00000 n 0000317123 00000 n 0000317185 00000 n 0000364635 00000 n 0000365076 00000 n 0000371018 00000 n 0000360853 00000 n 0000863955 00000 n 0000559818 00000 n 0000565443 00000 n 0000319102 00000 n 0000319257 00000 n 0000319412 00000 n 0000320574 00000 n 0000318940 00000 n 0000317369 00000 n 0000319565 00000 n 0000319692 00000 n 0000319755 00000 n 0000319818 00000 n 0000319881 00000 n 0000319944 00000 n 0000320070 00000 n 0000320133 00000 n 0000320196 00000 n 0000320322 00000 n 0000320385 00000 n 0000320448 00000 n 0000320511 00000 n 0001006749 00000 n 0000863924 00000 n 0000322537 00000 n 0000322691 00000 n 0000322846 00000 n 0000324004 00000 n 0000322375 00000 n 0000320709 00000 n 0000322999 00000 n 0000323125 00000 n 0000323188 00000 n 0000323251 00000 n 0000323314 00000 n 0000323377 00000 n 0000323503 00000 n 0000323566 00000 n 0000323629 00000 n 0000323692 00000 n 0000323755 00000 n 0000323880 00000 n 0000323942 00000 n 0000863893 00000 n 0000326025 00000 n 0000326175 00000 n 0000326328 00000 n 0000326482 00000 n 0000326637 00000 n 0000327676 00000 n 0000325845 00000 n 0000324125 00000 n 0000326794 00000 n 0000326858 00000 n 0000326921 00000 n 0000326983 00000 n 0000327109 00000 n 0000327172 00000 n 0000327235 00000 n 0000327361 00000 n 0000327424 00000 n 0000327487 00000 n 0000327550 00000 n 0000327613 00000 n 0000329757 00000 n 0000329910 00000 n 0000332967 00000 n 0000331005 00000 n 0000329604 00000 n 0000327811 00000 n 0000330060 00000 n 0000330187 00000 n 0000330250 00000 n 0000330313 00000 n 0000330375 00000 n 0000330438 00000 n 0000330501 00000 n 0000330627 00000 n 0000330690 00000 n 0000330753 00000 n 0000330816 00000 n 0000330879 00000 n 0000330942 00000 n 0000333119 00000 n 0000333274 00000 n 0000334556 00000 n 0000332805 00000 n 0000331126 00000 n 0000333427 00000 n 0000333553 00000 n 0000333616 00000 n 0000333679 00000 n 0000333742 00000 n 0000333868 00000 n 0000333931 00000 n 0000333994 00000 n 0000334057 00000 n 0000334119 00000 n 0000334182 00000 n 0000334308 00000 n 0000334369 00000 n 0000334432 00000 n 0000334494 00000 n 0000336613 00000 n 0000336762 00000 n 0000336915 00000 n 0000337070 00000 n 0000338037 00000 n 0000336442 00000 n 0000334677 00000 n 0000337220 00000 n 0000337284 00000 n 0000337347 00000 n 0000337472 00000 n 0000337534 00000 n 0000337597 00000 n 0000337659 00000 n 0000337785 00000 n 0000337848 00000 n 0000337911 00000 n 0000337974 00000 n 0000340157 00000 n 0000340312 00000 n 0000340465 00000 n 0000341879 00000 n 0000339995 00000 n 0000338158 00000 n 0000340620 00000 n 0000340747 00000 n 0000340810 00000 n 0000340873 00000 n 0000340936 00000 n 0000340999 00000 n 0000341062 00000 n 0000341188 00000 n 0000341251 00000 n 0000341314 00000 n 0000341377 00000 n 0000341440 00000 n 0000341565 00000 n 0000341628 00000 n 0000341691 00000 n 0000341754 00000 n 0000341816 00000 n 0001006874 00000 n 0000343628 00000 n 0000343783 00000 n 0000343939 00000 n 0000345102 00000 n 0000343466 00000 n 0000342000 00000 n 0000344096 00000 n 0000344223 00000 n 0000344286 00000 n 0000344349 00000 n 0000344412 00000 n 0000344475 00000 n 0000344538 00000 n 0000344663 00000 n 0000344726 00000 n 0000344789 00000 n 0000344852 00000 n 0000344914 00000 n 0000344977 00000 n 0000863862 00000 n 0000346964 00000 n 0000347121 00000 n 0000348535 00000 n 0000346811 00000 n 0000345223 00000 n 0000347277 00000 n 0000347341 00000 n 0000347404 00000 n 0000347467 00000 n 0000347530 00000 n 0000347592 00000 n 0000347655 00000 n 0000347781 00000 n 0000347844 00000 n 0000347906 00000 n 0000347969 00000 n 0000348032 00000 n 0000348157 00000 n 0000348220 00000 n 0000348283 00000 n 0000348346 00000 n 0000348409 00000 n 0000348472 00000 n 0000350498 00000 n 0000350652 00000 n 0000351811 00000 n 0000350345 00000 n 0000348656 00000 n 0000350803 00000 n 0000350930 00000 n 0000350993 00000 n 0000351056 00000 n 0000351119 00000 n 0000351181 00000 n 0000351244 00000 n 0000351370 00000 n 0000351433 00000 n 0000351496 00000 n 0000351559 00000 n 0000351622 00000 n 0000351685 00000 n 0000351748 00000 n 0000353726 00000 n 0000353876 00000 n 0000356889 00000 n 0000354972 00000 n 0000353573 00000 n 0000351918 00000 n 0000354027 00000 n 0000354153 00000 n 0000354216 00000 n 0000354279 00000 n 0000354342 00000 n 0000354405 00000 n 0000354468 00000 n 0000354531 00000 n 0000354657 00000 n 0000354720 00000 n 0000354783 00000 n 0000354846 00000 n 0000354909 00000 n 0000357039 00000 n 0000357190 00000 n 0000357344 00000 n 0000358751 00000 n 0000356718 00000 n 0000355079 00000 n 0000357494 00000 n 0000357620 00000 n 0000357683 00000 n 0000357746 00000 n 0000357809 00000 n 0000357935 00000 n 0000357998 00000 n 0000358061 00000 n 0000358124 00000 n 0000358187 00000 n 0000358249 00000 n 0000358375 00000 n 0000358438 00000 n 0000358500 00000 n 0000358563 00000 n 0000358626 00000 n 0000358689 00000 n 0000360422 00000 n 0000360573 00000 n 0000361670 00000 n 0000360269 00000 n 0000358858 00000 n 0000360726 00000 n 0000360790 00000 n 0000360915 00000 n 0000360978 00000 n 0000361041 00000 n 0000361167 00000 n 0000361230 00000 n 0000361356 00000 n 0000361419 00000 n 0000361545 00000 n 0000361608 00000 n 0001006999 00000 n 0000363873 00000 n 0000364026 00000 n 0000364179 00000 n 0000364344 00000 n 0000365578 00000 n 0000363702 00000 n 0000361791 00000 n 0000364508 00000 n 0000364572 00000 n 0000364698 00000 n 0000364761 00000 n 0000364824 00000 n 0000364887 00000 n 0000364950 00000 n 0000365013 00000 n 0000365139 00000 n 0000365202 00000 n 0000365265 00000 n 0000365328 00000 n 0000365391 00000 n 0000365454 00000 n 0000365517 00000 n 0000368170 00000 n 0000368322 00000 n 0000368475 00000 n 0000368640 00000 n 0000368793 00000 n 0000368958 00000 n 0000369131 00000 n 0000369279 00000 n 0000369458 00000 n 0000369609 00000 n 0000369784 00000 n 0000369942 00000 n 0000370124 00000 n 0000370277 00000 n 0000370453 00000 n 0000370606 00000 n 0000370783 00000 n 0000372147 00000 n 0000367882 00000 n 0000365713 00000 n 0000370954 00000 n 0000371081 00000 n 0000371144 00000 n 0000371207 00000 n 0000371270 00000 n 0000371333 00000 n 0000371457 00000 n 0000371520 00000 n 0000371582 00000 n 0000371645 00000 n 0000371708 00000 n 0000371771 00000 n 0000371834 00000 n 0000371896 00000 n 0000371959 00000 n 0000372022 00000 n 0000372085 00000 n 0000863831 00000 n 0000375166 00000 n 0000378015 00000 n 0000378204 00000 n 0000378393 00000 n 0000378582 00000 n 0000378771 00000 n 0000375795 00000 n 0000374567 00000 n 0000374748 00000 n 0000375984 00000 n 0000374414 00000 n 0000372282 00000 n 0000374913 00000 n 0000374977 00000 n 0000375040 00000 n 0000375103 00000 n 0000375229 00000 n 0000375292 00000 n 0000375355 00000 n 0000375418 00000 n 0000375481 00000 n 0000375544 00000 n 0000375607 00000 n 0000375670 00000 n 0000375732 00000 n 0000375858 00000 n 0000375921 00000 n 0000377559 00000 n 0000377720 00000 n 0000381519 00000 n 0000381688 00000 n 0000379209 00000 n 0000377406 00000 n 0000376105 00000 n 0000377888 00000 n 0000377952 00000 n 0000378078 00000 n 0000378141 00000 n 0000378267 00000 n 0000378330 00000 n 0000378456 00000 n 0000378519 00000 n 0000378645 00000 n 0000378708 00000 n 0000378834 00000 n 0000378897 00000 n 0000379084 00000 n 0000379147 00000 n 0000383381 00000 n 0000381861 00000 n 0000382016 00000 n 0000382172 00000 n 0000383885 00000 n 0000381330 00000 n 0000379330 00000 n 0000382499 00000 n 0000382563 00000 n 0000382626 00000 n 0000382689 00000 n 0000382752 00000 n 0000382815 00000 n 0000382878 00000 n 0000382941 00000 n 0000383004 00000 n 0000383067 00000 n 0000383130 00000 n 0000383193 00000 n 0000383255 00000 n 0000383318 00000 n 0000383444 00000 n 0000383507 00000 n 0000383570 00000 n 0000383633 00000 n 0000383696 00000 n 0000383759 00000 n 0000383822 00000 n 0000382336 00000 n 0000389232 00000 n 0000389419 00000 n 0000461930 00000 n 0000385950 00000 n 0000386102 00000 n 0000386255 00000 n 0000386430 00000 n 0000386578 00000 n 0000386729 00000 n 0000386894 00000 n 0000387038 00000 n 0000387209 00000 n 0000387354 00000 n 0000387521 00000 n 0000387667 00000 n 0000387831 00000 n 0000387979 00000 n 0000388150 00000 n 0000388301 00000 n 0000388467 00000 n 0000388621 00000 n 0000388787 00000 n 0000388932 00000 n 0000392692 00000 n 0000392839 00000 n 0000393015 00000 n 0000393159 00000 n 0000393330 00000 n 0000393475 00000 n 0000393642 00000 n 0000393792 00000 n 0000393962 00000 n 0000394110 00000 n 0000394280 00000 n 0000394430 00000 n 0000394600 00000 n 0000394751 00000 n 0000394923 00000 n 0000395076 00000 n 0000395235 00000 n 0000395386 00000 n 0000395560 00000 n 0000395711 00000 n 0000395889 00000 n 0000396034 00000 n 0000396199 00000 n 0000396344 00000 n 0000396511 00000 n 0000396662 00000 n 0000389917 00000 n 0000385635 00000 n 0000383992 00000 n 0000389105 00000 n 0000389169 00000 n 0000389295 00000 n 0000389356 00000 n 0000389482 00000 n 0000389544 00000 n 0000389606 00000 n 0000389668 00000 n 0000389854 00000 n 0001007124 00000 n 0000407380 00000 n 0000407756 00000 n 0000408132 00000 n 0000411148 00000 n 0000411463 00000 n 0000414867 00000 n 0000415182 00000 n 0000415557 00000 n 0000396834 00000 n 0000396982 00000 n 0000397144 00000 n 0000397294 00000 n 0000397454 00000 n 0000397601 00000 n 0000397765 00000 n 0000397912 00000 n 0000398078 00000 n 0000398228 00000 n 0000398394 00000 n 0000398542 00000 n 0000398701 00000 n 0000398851 00000 n 0000399010 00000 n 0000399157 00000 n 0000399318 00000 n 0000399464 00000 n 0000399632 00000 n 0000399798 00000 n 0000399944 00000 n 0000400114 00000 n 0000400280 00000 n 0000400426 00000 n 0000400593 00000 n 0000400759 00000 n 0000400905 00000 n 0000401071 00000 n 0000401237 00000 n 0000401382 00000 n 0000401549 00000 n 0000401714 00000 n 0000401875 00000 n 0000404982 00000 n 0000405139 00000 n 0000405292 00000 n 0000405459 00000 n 0000405627 00000 n 0000405775 00000 n 0000402661 00000 n 0000392026 00000 n 0000390024 00000 n 0000402032 00000 n 0000402096 00000 n 0000402159 00000 n 0000402222 00000 n 0000402285 00000 n 0000402347 00000 n 0000402410 00000 n 0000402472 00000 n 0000402535 00000 n 0000402598 00000 n 0000418525 00000 n 0000418903 00000 n 0000421690 00000 n 0000422131 00000 n 0000422445 00000 n 0000425277 00000 n 0000425591 00000 n 0000425906 00000 n 0000428958 00000 n 0000429272 00000 n 0000429587 00000 n 0000433883 00000 n 0000434324 00000 n 0000437178 00000 n 0000437367 00000 n 0000437556 00000 n 0000437745 00000 n 0000437934 00000 n 0000440244 00000 n 0000440433 00000 n 0000440622 00000 n 0000440874 00000 n 0000441251 00000 n 0000444184 00000 n 0000444621 00000 n 0000453559 00000 n 0000434827 00000 n 0000405934 00000 n 0000406094 00000 n 0000406260 00000 n 0000406424 00000 n 0000406577 00000 n 0000406731 00000 n 0000406884 00000 n 0000407035 00000 n 0000408194 00000 n 0000404721 00000 n 0000402768 00000 n 0000407190 00000 n 0000407254 00000 n 0000407317 00000 n 0000407443 00000 n 0000407505 00000 n 0000407568 00000 n 0000407630 00000 n 0000407693 00000 n 0000407819 00000 n 0000407881 00000 n 0000407943 00000 n 0000408006 00000 n 0000408069 00000 n 0000863800 00000 n 0000410092 00000 n 0000410246 00000 n 0000410400 00000 n 0000410553 00000 n 0000411715 00000 n 0000409921 00000 n 0000408315 00000 n 0000410707 00000 n 0000410771 00000 n 0000410834 00000 n 0000410897 00000 n 0000410960 00000 n 0000411022 00000 n 0000411085 00000 n 0000411211 00000 n 0000411274 00000 n 0000411337 00000 n 0000411400 00000 n 0000411526 00000 n 0000411589 00000 n 0000411652 00000 n 0000413727 00000 n 0000413880 00000 n 0000414034 00000 n 0000414187 00000 n 0000414340 00000 n 0000414494 00000 n 0000414650 00000 n 0000415998 00000 n 0000413529 00000 n 0000411836 00000 n 0000414803 00000 n 0000414930 00000 n 0000414993 00000 n 0000415056 00000 n 0000415119 00000 n 0000415245 00000 n 0000415307 00000 n 0000415370 00000 n 0000415431 00000 n 0000415494 00000 n 0000415620 00000 n 0000415683 00000 n 0000415746 00000 n 0000415809 00000 n 0000415872 00000 n 0000415935 00000 n 0000417997 00000 n 0000418152 00000 n 0000418307 00000 n 0000419281 00000 n 0000417835 00000 n 0000416133 00000 n 0000418461 00000 n 0000418588 00000 n 0000418651 00000 n 0000418714 00000 n 0000418777 00000 n 0000418840 00000 n 0000418966 00000 n 0000419029 00000 n 0000419092 00000 n 0000419155 00000 n 0000419218 00000 n 0000421321 00000 n 0000421475 00000 n 0000422760 00000 n 0000421168 00000 n 0000419402 00000 n 0000421626 00000 n 0000421753 00000 n 0000421816 00000 n 0000421879 00000 n 0000421942 00000 n 0000422005 00000 n 0000422068 00000 n 0000422193 00000 n 0000422256 00000 n 0000422319 00000 n 0000422382 00000 n 0000422508 00000 n 0000422571 00000 n 0000422634 00000 n 0000422697 00000 n 0001007249 00000 n 0000424453 00000 n 0000424607 00000 n 0000424758 00000 n 0000424912 00000 n 0000425063 00000 n 0000427979 00000 n 0000426157 00000 n 0000424273 00000 n 0000422881 00000 n 0000425213 00000 n 0000425339 00000 n 0000425402 00000 n 0000425465 00000 n 0000425528 00000 n 0000425654 00000 n 0000425717 00000 n 0000425780 00000 n 0000425843 00000 n 0000425969 00000 n 0000426032 00000 n 0000426094 00000 n 0000428131 00000 n 0000428285 00000 n 0000428436 00000 n 0000428590 00000 n 0000428743 00000 n 0000432114 00000 n 0000429964 00000 n 0000427790 00000 n 0000426278 00000 n 0000428894 00000 n 0000429020 00000 n 0000429083 00000 n 0000429146 00000 n 0000429209 00000 n 0000429335 00000 n 0000429398 00000 n 0000429461 00000 n 0000429524 00000 n 0000429650 00000 n 0000429713 00000 n 0000429776 00000 n 0000429839 00000 n 0000429901 00000 n 0000432268 00000 n 0000432422 00000 n 0000432576 00000 n 0000432732 00000 n 0000432885 00000 n 0000433050 00000 n 0000433204 00000 n 0000433360 00000 n 0000433513 00000 n 0000433664 00000 n 0000434889 00000 n 0000431880 00000 n 0000430085 00000 n 0000433819 00000 n 0000433946 00000 n 0000434009 00000 n 0000434072 00000 n 0000434135 00000 n 0000434198 00000 n 0000434261 00000 n 0000434386 00000 n 0000434449 00000 n 0000434512 00000 n 0000434575 00000 n 0000434638 00000 n 0000434701 00000 n 0000434764 00000 n 0000436466 00000 n 0000436616 00000 n 0000436773 00000 n 0000438123 00000 n 0000436304 00000 n 0000435010 00000 n 0000436925 00000 n 0000436989 00000 n 0000437052 00000 n 0000437115 00000 n 0000437241 00000 n 0000437304 00000 n 0000437430 00000 n 0000437493 00000 n 0000437619 00000 n 0000437682 00000 n 0000437808 00000 n 0000437871 00000 n 0000437997 00000 n 0000438060 00000 n 0000440015 00000 n 0000441627 00000 n 0000439871 00000 n 0000438244 00000 n 0000440180 00000 n 0000440307 00000 n 0000440370 00000 n 0000440496 00000 n 0000440559 00000 n 0000440685 00000 n 0000440748 00000 n 0000440811 00000 n 0000440937 00000 n 0000441000 00000 n 0000441063 00000 n 0000441125 00000 n 0000441188 00000 n 0000441314 00000 n 0000441377 00000 n 0000441440 00000 n 0000441503 00000 n 0000441564 00000 n 0000443635 00000 n 0000443800 00000 n 0000443965 00000 n 0000445061 00000 n 0000443473 00000 n 0000441748 00000 n 0000444120 00000 n 0000444247 00000 n 0000444310 00000 n 0000444369 00000 n 0000444432 00000 n 0000444495 00000 n 0000444558 00000 n 0000444684 00000 n 0000444747 00000 n 0000444809 00000 n 0000444872 00000 n 0000444935 00000 n 0000444998 00000 n 0001007374 00000 n 0000447633 00000 n 0000447798 00000 n 0000447953 00000 n 0000448118 00000 n 0000448273 00000 n 0000448426 00000 n 0000448576 00000 n 0000448726 00000 n 0000448877 00000 n 0000449041 00000 n 0000449192 00000 n 0000449353 00000 n 0000449504 00000 n 0000449673 00000 n 0000449825 00000 n 0000449997 00000 n 0000450142 00000 n 0000450314 00000 n 0000450461 00000 n 0000450635 00000 n 0000450782 00000 n 0000450957 00000 n 0000451105 00000 n 0000451278 00000 n 0000451426 00000 n 0000451602 00000 n 0000451748 00000 n 0000451925 00000 n 0000452071 00000 n 0000452248 00000 n 0000452398 00000 n 0000452554 00000 n 0000452699 00000 n 0000452876 00000 n 0000453021 00000 n 0000453188 00000 n 0000453332 00000 n 0000456869 00000 n 0000457019 00000 n 0000457180 00000 n 0000457329 00000 n 0000457496 00000 n 0000457646 00000 n 0000457809 00000 n 0000457956 00000 n 0000458111 00000 n 0000458261 00000 n 0000454247 00000 n 0000447165 00000 n 0000445196 00000 n 0000453495 00000 n 0000453622 00000 n 0000453684 00000 n 0000453746 00000 n 0000453809 00000 n 0000453872 00000 n 0000453935 00000 n 0000454122 00000 n 0000454185 00000 n 0000465427 00000 n 0000465742 00000 n 0000466057 00000 n 0000469101 00000 n 0000469416 00000 n 0000472678 00000 n 0000472992 00000 n 0000473370 00000 n 0000477007 00000 n 0000477322 00000 n 0000480295 00000 n 0000480545 00000 n 0000480860 00000 n 0000483347 00000 n 0000458417 00000 n 0000458563 00000 n 0000458728 00000 n 0000458894 00000 n 0000459039 00000 n 0000459205 00000 n 0000459370 00000 n 0000459516 00000 n 0000459678 00000 n 0000459844 00000 n 0000459989 00000 n 0000460152 00000 n 0000460317 00000 n 0000460475 00000 n 0000460630 00000 n 0000460780 00000 n 0000460933 00000 n 0000461083 00000 n 0000462245 00000 n 0000456482 00000 n 0000454382 00000 n 0000461238 00000 n 0000461302 00000 n 0000461365 00000 n 0000461428 00000 n 0000461490 00000 n 0000461553 00000 n 0000461615 00000 n 0000461678 00000 n 0000461741 00000 n 0000461804 00000 n 0000461867 00000 n 0000461993 00000 n 0000462056 00000 n 0000462119 00000 n 0000462182 00000 n 0000483976 00000 n 0000484165 00000 n 0000484354 00000 n 0000486628 00000 n 0000486817 00000 n 0000487069 00000 n 0000487447 00000 n 0000490275 00000 n 0000490652 00000 n 0000483725 00000 n 0000863769 00000 n 0000863738 00000 n 0000464283 00000 n 0000464435 00000 n 0000464589 00000 n 0000464741 00000 n 0000464895 00000 n 0000465058 00000 n 0000465210 00000 n 0000466308 00000 n 0000464085 00000 n 0000462352 00000 n 0000465363 00000 n 0000465490 00000 n 0000465553 00000 n 0000465616 00000 n 0000465679 00000 n 0000465805 00000 n 0000465868 00000 n 0000465931 00000 n 0000465994 00000 n 0000466120 00000 n 0000466183 00000 n 0000466246 00000 n 0000468353 00000 n 0000468516 00000 n 0000468668 00000 n 0000468821 00000 n 0000469731 00000 n 0000468182 00000 n 0000466429 00000 n 0000468974 00000 n 0000469038 00000 n 0000469164 00000 n 0000469227 00000 n 0000469290 00000 n 0000469353 00000 n 0000469479 00000 n 0000469542 00000 n 0000469605 00000 n 0000469668 00000 n 0000471552 00000 n 0000471705 00000 n 0000471857 00000 n 0000472006 00000 n 0000472159 00000 n 0000472312 00000 n 0000472461 00000 n 0000473432 00000 n 0000471354 00000 n 0000469852 00000 n 0000472614 00000 n 0000472741 00000 n 0000472804 00000 n 0000472867 00000 n 0000472929 00000 n 0000473055 00000 n 0000473118 00000 n 0000473181 00000 n 0000473244 00000 n 0000473307 00000 n 0000475335 00000 n 0000475482 00000 n 0000475634 00000 n 0000475783 00000 n 0000475936 00000 n 0000476088 00000 n 0000476235 00000 n 0000476386 00000 n 0000476539 00000 n 0000477637 00000 n 0000475119 00000 n 0000473553 00000 n 0000476692 00000 n 0000476756 00000 n 0000476819 00000 n 0000476882 00000 n 0000476945 00000 n 0000477070 00000 n 0000477133 00000 n 0000477196 00000 n 0000477259 00000 n 0000477385 00000 n 0000477448 00000 n 0000477511 00000 n 0000477574 00000 n 0001007499 00000 n 0000479633 00000 n 0000479778 00000 n 0000479927 00000 n 0000480078 00000 n 0000481174 00000 n 0000479462 00000 n 0000477758 00000 n 0000480231 00000 n 0000480358 00000 n 0000480420 00000 n 0000480483 00000 n 0000480608 00000 n 0000480671 00000 n 0000480734 00000 n 0000480797 00000 n 0000480923 00000 n 0000480986 00000 n 0000481048 00000 n 0000481111 00000 n 0000482981 00000 n 0000483134 00000 n 0000484543 00000 n 0000482828 00000 n 0000481295 00000 n 0000483283 00000 n 0000483410 00000 n 0000483473 00000 n 0000483536 00000 n 0000483599 00000 n 0000483662 00000 n 0000483787 00000 n 0000483850 00000 n 0000483913 00000 n 0000484039 00000 n 0000484102 00000 n 0000484228 00000 n 0000484291 00000 n 0000484417 00000 n 0000484480 00000 n 0000486399 00000 n 0000487824 00000 n 0000486255 00000 n 0000484664 00000 n 0000486564 00000 n 0000486691 00000 n 0000486754 00000 n 0000486880 00000 n 0000486943 00000 n 0000487006 00000 n 0000487132 00000 n 0000487195 00000 n 0000487258 00000 n 0000487321 00000 n 0000487384 00000 n 0000487509 00000 n 0000487572 00000 n 0000487635 00000 n 0000487698 00000 n 0000487761 00000 n 0000489560 00000 n 0000489725 00000 n 0000489890 00000 n 0000490055 00000 n 0000493361 00000 n 0000493512 00000 n 0000491154 00000 n 0000489389 00000 n 0000487945 00000 n 0000490211 00000 n 0000490338 00000 n 0000490401 00000 n 0000490464 00000 n 0000490527 00000 n 0000490589 00000 n 0000490715 00000 n 0000490778 00000 n 0000490841 00000 n 0000490904 00000 n 0000490967 00000 n 0000491091 00000 n 0000493693 00000 n 0000493843 00000 n 0000494007 00000 n 0000494159 00000 n 0000494324 00000 n 0000494473 00000 n 0000494641 00000 n 0000494797 00000 n 0000494956 00000 n 0000495103 00000 n 0000495274 00000 n 0000495438 00000 n 0000495606 00000 n 0000495766 00000 n 0000495923 00000 n 0000496088 00000 n 0000496245 00000 n 0000497654 00000 n 0000493055 00000 n 0000491275 00000 n 0000496399 00000 n 0000496463 00000 n 0000496526 00000 n 0000496585 00000 n 0000496648 00000 n 0000496710 00000 n 0000496773 00000 n 0000496836 00000 n 0000496899 00000 n 0000496962 00000 n 0000497025 00000 n 0000497088 00000 n 0000497151 00000 n 0000497214 00000 n 0000497277 00000 n 0000497340 00000 n 0000497403 00000 n 0000497466 00000 n 0000497529 00000 n 0000497592 00000 n 0000503517 00000 n 0000503706 00000 n 0000503893 00000 n 0000500472 00000 n 0000506574 00000 n 0000506763 00000 n 0000502835 00000 n 0000506952 00000 n 0000500283 00000 n 0000863707 00000 n 0000499453 00000 n 0000499604 00000 n 0000499754 00000 n 0000502615 00000 n 0000500783 00000 n 0000499291 00000 n 0000497761 00000 n 0000499905 00000 n 0000499969 00000 n 0000500032 00000 n 0000500095 00000 n 0000500158 00000 n 0000500220 00000 n 0000500346 00000 n 0000500409 00000 n 0000500535 00000 n 0000500597 00000 n 0000500659 00000 n 0000500721 00000 n 0001007624 00000 n 0000504082 00000 n 0000502471 00000 n 0000500890 00000 n 0000502771 00000 n 0000502898 00000 n 0000502960 00000 n 0000503021 00000 n 0000503083 00000 n 0000503145 00000 n 0000503206 00000 n 0000503268 00000 n 0000503330 00000 n 0000503392 00000 n 0000503454 00000 n 0000503580 00000 n 0000503643 00000 n 0000503769 00000 n 0000503831 00000 n 0000503956 00000 n 0000504019 00000 n 0000505860 00000 n 0000506015 00000 n 0000506177 00000 n 0000506341 00000 n 0000510225 00000 n 0000510382 00000 n 0000507955 00000 n 0000505689 00000 n 0000504203 00000 n 0000506510 00000 n 0000506637 00000 n 0000506700 00000 n 0000506826 00000 n 0000506889 00000 n 0000507015 00000 n 0000507078 00000 n 0000507264 00000 n 0000507327 00000 n 0000507390 00000 n 0000507453 00000 n 0000507515 00000 n 0000507578 00000 n 0000507641 00000 n 0000507704 00000 n 0000507766 00000 n 0000507829 00000 n 0000507892 00000 n 0000511956 00000 n 0000512396 00000 n 0000512585 00000 n 0000510538 00000 n 0000510691 00000 n 0000510855 00000 n 0000511008 00000 n 0000511161 00000 n 0000511314 00000 n 0000511467 00000 n 0000512647 00000 n 0000510009 00000 n 0000508076 00000 n 0000511640 00000 n 0000511704 00000 n 0000511767 00000 n 0000511830 00000 n 0000511893 00000 n 0000512019 00000 n 0000512082 00000 n 0000512145 00000 n 0000512208 00000 n 0000512271 00000 n 0000512334 00000 n 0000512459 00000 n 0000512522 00000 n 0000515171 00000 n 0000515325 00000 n 0000515476 00000 n 0000515630 00000 n 0000515785 00000 n 0000515936 00000 n 0000516096 00000 n 0000516244 00000 n 0000516399 00000 n 0000516550 00000 n 0000516707 00000 n 0000516858 00000 n 0000517014 00000 n 0000517165 00000 n 0000517320 00000 n 0000517471 00000 n 0000517646 00000 n 0000517802 00000 n 0000517957 00000 n 0000518103 00000 n 0000518258 00000 n 0000518408 00000 n 0000518567 00000 n 0000518717 00000 n 0000518879 00000 n 0000519035 00000 n 0000519193 00000 n 0000519341 00000 n 0000519501 00000 n 0000519650 00000 n 0000519811 00000 n 0000519963 00000 n 0000520122 00000 n 0000520271 00000 n 0000520428 00000 n 0000520580 00000 n 0000520740 00000 n 0000520891 00000 n 0000521050 00000 n 0000521202 00000 n 0000521361 00000 n 0000521518 00000 n 0000522233 00000 n 0000514658 00000 n 0000512754 00000 n 0000521672 00000 n 0000521736 00000 n 0000521798 00000 n 0000521860 00000 n 0000522045 00000 n 0000522108 00000 n 0000522170 00000 n 0000526826 00000 n 0000529876 00000 n 0000530128 00000 n 0000530380 00000 n 0000533397 00000 n 0000535826 00000 n 0000536015 00000 n 0000536204 00000 n 0000536393 00000 n 0000536582 00000 n 0000536771 00000 n 0000538650 00000 n 0000538839 00000 n 0000539027 00000 n 0000539216 00000 n 0000721079 00000 n 0000539405 00000 n 0000539591 00000 n 0000533710 00000 n 0000533899 00000 n 0000524412 00000 n 0000524568 00000 n 0000524719 00000 n 0000524873 00000 n 0000525027 00000 n 0000525181 00000 n 0000525332 00000 n 0000525491 00000 n 0000525651 00000 n 0000525802 00000 n 0000525952 00000 n 0000526105 00000 n 0000527327 00000 n 0000524169 00000 n 0000522327 00000 n 0000526259 00000 n 0000526323 00000 n 0000526386 00000 n 0000526449 00000 n 0000526512 00000 n 0000526575 00000 n 0000526637 00000 n 0000526700 00000 n 0000526763 00000 n 0000526889 00000 n 0000526952 00000 n 0000527015 00000 n 0000527140 00000 n 0000527203 00000 n 0000527264 00000 n 0000528946 00000 n 0000529099 00000 n 0000529249 00000 n 0000529411 00000 n 0000530630 00000 n 0000528775 00000 n 0000527434 00000 n 0000529561 00000 n 0000529625 00000 n 0000529688 00000 n 0000529751 00000 n 0000529814 00000 n 0000529939 00000 n 0000530002 00000 n 0000530065 00000 n 0000530191 00000 n 0000530254 00000 n 0000530317 00000 n 0000530442 00000 n 0000530505 00000 n 0000530568 00000 n 0001007749 00000 n 0000532258 00000 n 0000532409 00000 n 0000532568 00000 n 0000532720 00000 n 0000532874 00000 n 0000533025 00000 n 0000533179 00000 n 0000534214 00000 n 0000532060 00000 n 0000530737 00000 n 0000533333 00000 n 0000533460 00000 n 0000533522 00000 n 0000533585 00000 n 0000533647 00000 n 0000533773 00000 n 0000533836 00000 n 0000533962 00000 n 0000534025 00000 n 0000534088 00000 n 0000534151 00000 n 0000863676 00000 n 0000536960 00000 n 0000535576 00000 n 0000534335 00000 n 0000535699 00000 n 0000535763 00000 n 0000535889 00000 n 0000535952 00000 n 0000536078 00000 n 0000536141 00000 n 0000536267 00000 n 0000536330 00000 n 0000536456 00000 n 0000536519 00000 n 0000536645 00000 n 0000536708 00000 n 0000536834 00000 n 0000536897 00000 n 0000538436 00000 n 0000543039 00000 n 0000543192 00000 n 0000543352 00000 n 0000543499 00000 n 0000543681 00000 n 0000543827 00000 n 0000544012 00000 n 0000544166 00000 n 0000544334 00000 n 0000544482 00000 n 0000544651 00000 n 0000544795 00000 n 0000544965 00000 n 0000545110 00000 n 0000539966 00000 n 0000538292 00000 n 0000537081 00000 n 0000538586 00000 n 0000538713 00000 n 0000538776 00000 n 0000538902 00000 n 0000538965 00000 n 0000539090 00000 n 0000539153 00000 n 0000539279 00000 n 0000539342 00000 n 0000539468 00000 n 0000539529 00000 n 0000539654 00000 n 0000539717 00000 n 0000539904 00000 n 0000545281 00000 n 0000545428 00000 n 0000545590 00000 n 0000545737 00000 n 0000545896 00000 n 0000546044 00000 n 0000546203 00000 n 0000546349 00000 n 0000546514 00000 n 0000546661 00000 n 0000546827 00000 n 0000546974 00000 n 0000547139 00000 n 0000547286 00000 n 0000547447 00000 n 0000547594 00000 n 0000547754 00000 n 0000547901 00000 n 0000548059 00000 n 0000548207 00000 n 0000548366 00000 n 0000548516 00000 n 0000548679 00000 n 0000548828 00000 n 0000548997 00000 n 0000549145 00000 n 0000549304 00000 n 0000549465 00000 n 0000549622 00000 n 0000549771 00000 n 0000549930 00000 n 0000550088 00000 n 0000550876 00000 n 0000542490 00000 n 0000540087 00000 n 0000550247 00000 n 0000550311 00000 n 0000550374 00000 n 0000550436 00000 n 0000550499 00000 n 0000550561 00000 n 0000550624 00000 n 0000550687 00000 n 0000550750 00000 n 0000550813 00000 n 0000552930 00000 n 0000553182 00000 n 0000553497 00000 n 0000553812 00000 n 0000556049 00000 n 0000556362 00000 n 0000556865 00000 n 0000559440 00000 n 0000559629 00000 n 0000561348 00000 n 0000561535 00000 n 0000561724 00000 n 0000561913 00000 n 0000562102 00000 n 0000562291 00000 n 0000564876 00000 n 0000565065 00000 n 0000863645 00000 n 0000565254 00000 n 0000559188 00000 n 0000552650 00000 n 0000554127 00000 n 0000552506 00000 n 0000550983 00000 n 0000552803 00000 n 0000552867 00000 n 0000552993 00000 n 0000553056 00000 n 0000553119 00000 n 0000553245 00000 n 0000553308 00000 n 0000553371 00000 n 0000553434 00000 n 0000553560 00000 n 0000553623 00000 n 0000553686 00000 n 0000553749 00000 n 0000553875 00000 n 0000553938 00000 n 0000554001 00000 n 0000554064 00000 n 0001004480 00000 n 0000557242 00000 n 0000555862 00000 n 0000554249 00000 n 0000555985 00000 n 0000556112 00000 n 0000556175 00000 n 0000556236 00000 n 0000556299 00000 n 0000556425 00000 n 0000556488 00000 n 0000556551 00000 n 0000556614 00000 n 0000556677 00000 n 0000556740 00000 n 0000556802 00000 n 0000556928 00000 n 0000556991 00000 n 0000557054 00000 n 0000557117 00000 n 0000557180 00000 n 0001007874 00000 n 0000560007 00000 n 0000558813 00000 n 0000557364 00000 n 0000558936 00000 n 0000559000 00000 n 0000559063 00000 n 0000559125 00000 n 0000559251 00000 n 0000559314 00000 n 0000559377 00000 n 0000559503 00000 n 0000559566 00000 n 0000559692 00000 n 0000559755 00000 n 0000559881 00000 n 0000559944 00000 n 0000562480 00000 n 0000561161 00000 n 0000560128 00000 n 0000561284 00000 n 0000561411 00000 n 0000561473 00000 n 0000561598 00000 n 0000561661 00000 n 0000561787 00000 n 0000561850 00000 n 0000561976 00000 n 0000562039 00000 n 0000562165 00000 n 0000562228 00000 n 0000562354 00000 n 0000562417 00000 n 0000564152 00000 n 0000564310 00000 n 0000564475 00000 n 0000564641 00000 n 0000565944 00000 n 0000563981 00000 n 0000562601 00000 n 0000564812 00000 n 0000564939 00000 n 0000565002 00000 n 0000565128 00000 n 0000565191 00000 n 0000565317 00000 n 0000565380 00000 n 0000565506 00000 n 0000565569 00000 n 0000565756 00000 n 0000565819 00000 n 0000565882 00000 n 0000569661 00000 n 0000576596 00000 n 0000576785 00000 n 0000568214 00000 n 0000568370 00000 n 0000568527 00000 n 0000568691 00000 n 0000570164 00000 n 0000568043 00000 n 0000566080 00000 n 0000568842 00000 n 0000568906 00000 n 0000568969 00000 n 0000569032 00000 n 0000569095 00000 n 0000569157 00000 n 0000569220 00000 n 0000569283 00000 n 0000569346 00000 n 0000569409 00000 n 0000569472 00000 n 0000569535 00000 n 0000569598 00000 n 0000569724 00000 n 0000569787 00000 n 0000569850 00000 n 0000569913 00000 n 0000569976 00000 n 0000570038 00000 n 0000570101 00000 n 0000572339 00000 n 0000572492 00000 n 0000572667 00000 n 0000572812 00000 n 0000572983 00000 n 0000573128 00000 n 0000573300 00000 n 0000573455 00000 n 0000573618 00000 n 0000573763 00000 n 0000573934 00000 n 0000574079 00000 n 0000574251 00000 n 0000574396 00000 n 0000574570 00000 n 0000574715 00000 n 0000574884 00000 n 0000575035 00000 n 0000575212 00000 n 0000575357 00000 n 0000575527 00000 n 0000575671 00000 n 0000575841 00000 n 0000575987 00000 n 0000576154 00000 n 0000576299 00000 n 0000580127 00000 n 0000580272 00000 n 0000580446 00000 n 0000580590 00000 n 0000580758 00000 n 0000580913 00000 n 0000581075 00000 n 0000581219 00000 n 0000581393 00000 n 0000581538 00000 n 0000581714 00000 n 0000581859 00000 n 0000582040 00000 n 0000582185 00000 n 0000582367 00000 n 0000582512 00000 n 0000582698 00000 n 0000582843 00000 n 0000583031 00000 n 0000583176 00000 n 0000583361 00000 n 0000583506 00000 n 0000583691 00000 n 0000583836 00000 n 0000584021 00000 n 0000584166 00000 n 0000584352 00000 n 0000584497 00000 n 0000584680 00000 n 0000584824 00000 n 0000585007 00000 n 0000585152 00000 n 0000585327 00000 n 0000585471 00000 n 0000585646 00000 n 0000585797 00000 n 0000585965 00000 n 0000586114 00000 n 0000586281 00000 n 0000586432 00000 n 0000577281 00000 n 0000571970 00000 n 0000570271 00000 n 0000576469 00000 n 0000576533 00000 n 0000576659 00000 n 0000576722 00000 n 0000576848 00000 n 0000576910 00000 n 0000576972 00000 n 0000577033 00000 n 0000577218 00000 n 0000591279 00000 n 0000591720 00000 n 0000592098 00000 n 0000594884 00000 n 0000595324 00000 n 0000595702 00000 n 0000598390 00000 n 0000598768 00000 n 0000602126 00000 n 0000602566 00000 n 0000602943 00000 n 0000606156 00000 n 0000586599 00000 n 0000586746 00000 n 0000586909 00000 n 0000587068 00000 n 0000587241 00000 n 0000587387 00000 n 0000587557 00000 n 0000587723 00000 n 0000587868 00000 n 0000588036 00000 n 0000588201 00000 n 0000588994 00000 n 0000579533 00000 n 0000577388 00000 n 0000588364 00000 n 0000588428 00000 n 0000588491 00000 n 0000588554 00000 n 0000588617 00000 n 0000588680 00000 n 0000588743 00000 n 0000588806 00000 n 0000588869 00000 n 0000588931 00000 n 0001007999 00000 n 0000606534 00000 n 0000609421 00000 n 0000609799 00000 n 0000610114 00000 n 0000612979 00000 n 0000613355 00000 n 0000613795 00000 n 0000616609 00000 n 0000617112 00000 n 0000619954 00000 n 0000620458 00000 n 0000620899 00000 n 0000623699 00000 n 0000624139 00000 n 0000627781 00000 n 0000628220 00000 n 0000631386 00000 n 0000631827 00000 n 0000632267 00000 n 0000635310 00000 n 0000635939 00000 n 0000639079 00000 n 0000639331 00000 n 0000639772 00000 n 0000635687 00000 n 0000590844 00000 n 0000590999 00000 n 0000592350 00000 n 0000590691 00000 n 0000589101 00000 n 0000591152 00000 n 0000591216 00000 n 0000591342 00000 n 0000591405 00000 n 0000591468 00000 n 0000591531 00000 n 0000591594 00000 n 0000591657 00000 n 0000591783 00000 n 0000591846 00000 n 0000591909 00000 n 0000591972 00000 n 0000592035 00000 n 0000592161 00000 n 0000592224 00000 n 0000592287 00000 n 0000594202 00000 n 0000594355 00000 n 0000594510 00000 n 0000594665 00000 n 0000595764 00000 n 0000594031 00000 n 0000592471 00000 n 0000594820 00000 n 0000594947 00000 n 0000595010 00000 n 0000595073 00000 n 0000595136 00000 n 0000595199 00000 n 0000595261 00000 n 0000595387 00000 n 0000595450 00000 n 0000595513 00000 n 0000595576 00000 n 0000595639 00000 n 0000597765 00000 n 0000597920 00000 n 0000601297 00000 n 0000601447 00000 n 0000599271 00000 n 0000597612 00000 n 0000595899 00000 n 0000598075 00000 n 0000598139 00000 n 0000598202 00000 n 0000598265 00000 n 0000598328 00000 n 0000598453 00000 n 0000598516 00000 n 0000598579 00000 n 0000598642 00000 n 0000598705 00000 n 0000598831 00000 n 0000598894 00000 n 0000598957 00000 n 0000599020 00000 n 0000599083 00000 n 0000599145 00000 n 0000599208 00000 n 0000601600 00000 n 0000601754 00000 n 0000601909 00000 n 0000603319 00000 n 0000601117 00000 n 0000599392 00000 n 0000602062 00000 n 0000602189 00000 n 0000602252 00000 n 0000602315 00000 n 0000602377 00000 n 0000602440 00000 n 0000602503 00000 n 0000602629 00000 n 0000602692 00000 n 0000602755 00000 n 0000602818 00000 n 0000602881 00000 n 0000603006 00000 n 0000603069 00000 n 0000603132 00000 n 0000603195 00000 n 0000603256 00000 n 0000605327 00000 n 0000605480 00000 n 0000605635 00000 n 0000605785 00000 n 0000605937 00000 n 0000606849 00000 n 0000605147 00000 n 0000603440 00000 n 0000606092 00000 n 0000606219 00000 n 0000606282 00000 n 0000606345 00000 n 0000606408 00000 n 0000606471 00000 n 0000606597 00000 n 0000606660 00000 n 0000606723 00000 n 0000606786 00000 n 0000608740 00000 n 0000608895 00000 n 0000609050 00000 n 0000609202 00000 n 0000610555 00000 n 0000608569 00000 n 0000606956 00000 n 0000609357 00000 n 0000609484 00000 n 0000609547 00000 n 0000609610 00000 n 0000609673 00000 n 0000609736 00000 n 0000609862 00000 n 0000609925 00000 n 0000609988 00000 n 0000610051 00000 n 0000610177 00000 n 0000610240 00000 n 0000610303 00000 n 0000610366 00000 n 0000610429 00000 n 0000610492 00000 n 0001008124 00000 n 0000612451 00000 n 0000612606 00000 n 0000612761 00000 n 0000613857 00000 n 0000612289 00000 n 0000610690 00000 n 0000612915 00000 n 0000613042 00000 n 0000613104 00000 n 0000613167 00000 n 0000613229 00000 n 0000613292 00000 n 0000613418 00000 n 0000613481 00000 n 0000613543 00000 n 0000613606 00000 n 0000613669 00000 n 0000613732 00000 n 0000615856 00000 n 0000616011 00000 n 0000617551 00000 n 0000615703 00000 n 0000613978 00000 n 0000616168 00000 n 0000616232 00000 n 0000616295 00000 n 0000616358 00000 n 0000616421 00000 n 0000616483 00000 n 0000616546 00000 n 0000616672 00000 n 0000616735 00000 n 0000616797 00000 n 0000616860 00000 n 0000616923 00000 n 0000616986 00000 n 0000617049 00000 n 0000617175 00000 n 0000617238 00000 n 0000617299 00000 n 0000617362 00000 n 0000617425 00000 n 0000617488 00000 n 0000619420 00000 n 0000619577 00000 n 0000619734 00000 n 0000620961 00000 n 0000619258 00000 n 0000617672 00000 n 0000619890 00000 n 0000620017 00000 n 0000620080 00000 n 0000620143 00000 n 0000620206 00000 n 0000620269 00000 n 0000620332 00000 n 0000620395 00000 n 0000620521 00000 n 0000620584 00000 n 0000620647 00000 n 0000620710 00000 n 0000620773 00000 n 0000620836 00000 n 0000622881 00000 n 0000623038 00000 n 0000624641 00000 n 0000622728 00000 n 0000621082 00000 n 0000623195 00000 n 0000623259 00000 n 0000623322 00000 n 0000623385 00000 n 0000623448 00000 n 0000623510 00000 n 0000623573 00000 n 0000623636 00000 n 0000623762 00000 n 0000623825 00000 n 0000623888 00000 n 0000623951 00000 n 0000624014 00000 n 0000624076 00000 n 0000624202 00000 n 0000624264 00000 n 0000624327 00000 n 0000624389 00000 n 0000624452 00000 n 0000624515 00000 n 0000624578 00000 n 0000625252 00000 n 0000625065 00000 n 0000624762 00000 n 0000625188 00000 n 0000627250 00000 n 0000627407 00000 n 0000627563 00000 n 0000628723 00000 n 0000627088 00000 n 0000625346 00000 n 0000627717 00000 n 0000627844 00000 n 0000627906 00000 n 0000627969 00000 n 0000628031 00000 n 0000628094 00000 n 0000628157 00000 n 0000628282 00000 n 0000628345 00000 n 0000628408 00000 n 0000628471 00000 n 0000628534 00000 n 0000628597 00000 n 0000628660 00000 n 0001008249 00000 n 0000630861 00000 n 0000631016 00000 n 0000631167 00000 n 0000632644 00000 n 0000630699 00000 n 0000628844 00000 n 0000631322 00000 n 0000631449 00000 n 0000631512 00000 n 0000631575 00000 n 0000631638 00000 n 0000631701 00000 n 0000631764 00000 n 0000631890 00000 n 0000631953 00000 n 0000632015 00000 n 0000632078 00000 n 0000632141 00000 n 0000632204 00000 n 0000632330 00000 n 0000632393 00000 n 0000632456 00000 n 0000632519 00000 n 0000632582 00000 n 0000634484 00000 n 0000634634 00000 n 0000634789 00000 n 0000634939 00000 n 0000635092 00000 n 0000636126 00000 n 0000634304 00000 n 0000632765 00000 n 0000635246 00000 n 0000635373 00000 n 0000635436 00000 n 0000635499 00000 n 0000635562 00000 n 0000635625 00000 n 0000635750 00000 n 0000635813 00000 n 0000635876 00000 n 0000636002 00000 n 0000636064 00000 n 0000638384 00000 n 0000638537 00000 n 0000638697 00000 n 0000638850 00000 n 0000640274 00000 n 0000638213 00000 n 0000636247 00000 n 0000639015 00000 n 0000639142 00000 n 0000639205 00000 n 0000639268 00000 n 0000639394 00000 n 0000639457 00000 n 0000639520 00000 n 0000639583 00000 n 0000639646 00000 n 0000639709 00000 n 0000639835 00000 n 0000639897 00000 n 0000639960 00000 n 0000640022 00000 n 0000640085 00000 n 0000640148 00000 n 0000640211 00000 n 0000642707 00000 n 0000642872 00000 n 0000643025 00000 n 0000643179 00000 n 0000643330 00000 n 0000643495 00000 n 0000643649 00000 n 0000643819 00000 n 0000643968 00000 n 0000644123 00000 n 0000644268 00000 n 0000644426 00000 n 0000644574 00000 n 0000644731 00000 n 0000644888 00000 n 0000645049 00000 n 0000645196 00000 n 0000645350 00000 n 0000645498 00000 n 0000645653 00000 n 0000645800 00000 n 0000645955 00000 n 0000646104 00000 n 0000646262 00000 n 0000646412 00000 n 0000646574 00000 n 0000646731 00000 n 0000646889 00000 n 0000649980 00000 n 0000647921 00000 n 0000642320 00000 n 0000640409 00000 n 0000647046 00000 n 0000647234 00000 n 0000647295 00000 n 0000647358 00000 n 0000647420 00000 n 0000647483 00000 n 0000647545 00000 n 0000647608 00000 n 0000647671 00000 n 0000647734 00000 n 0000647796 00000 n 0000647859 00000 n 0000863614 00000 n 0000651260 00000 n 0000651575 00000 n 0000651890 00000 n 0000655446 00000 n 0000656993 00000 n 0000655135 00000 n 0000657182 00000 n 0000657371 00000 n 0000657560 00000 n 0000657749 00000 n 0000663427 00000 n 0000663616 00000 n 0000654946 00000 n 0000650136 00000 n 0000650295 00000 n 0000650446 00000 n 0000650600 00000 n 0000650764 00000 n 0000650917 00000 n 0000652328 00000 n 0000649782 00000 n 0000648028 00000 n 0000651070 00000 n 0000651134 00000 n 0000651197 00000 n 0000651323 00000 n 0000651386 00000 n 0000651449 00000 n 0000651512 00000 n 0000651638 00000 n 0000651701 00000 n 0000651764 00000 n 0000651827 00000 n 0000651953 00000 n 0000652016 00000 n 0000652079 00000 n 0000652142 00000 n 0000652205 00000 n 0000652266 00000 n 0000667670 00000 n 0000654333 00000 n 0000654484 00000 n 0000655631 00000 n 0000654180 00000 n 0000652449 00000 n 0000654631 00000 n 0000654695 00000 n 0000654758 00000 n 0000654820 00000 n 0000654883 00000 n 0000655009 00000 n 0000655072 00000 n 0000655197 00000 n 0000655259 00000 n 0000655321 00000 n 0000655383 00000 n 0000655507 00000 n 0000655569 00000 n 0001008374 00000 n 0000657938 00000 n 0000656806 00000 n 0000655752 00000 n 0000656929 00000 n 0000657056 00000 n 0000657119 00000 n 0000657245 00000 n 0000657308 00000 n 0000657434 00000 n 0000657497 00000 n 0000657623 00000 n 0000657686 00000 n 0000657812 00000 n 0000657875 00000 n 0000660072 00000 n 0000660222 00000 n 0000660400 00000 n 0000660554 00000 n 0000660714 00000 n 0000660864 00000 n 0000661025 00000 n 0000661173 00000 n 0000661336 00000 n 0000661484 00000 n 0000661649 00000 n 0000661796 00000 n 0000661962 00000 n 0000662110 00000 n 0000662271 00000 n 0000662422 00000 n 0000662587 00000 n 0000662735 00000 n 0000662895 00000 n 0000663042 00000 n 0000663202 00000 n 0000666556 00000 n 0000664366 00000 n 0000659748 00000 n 0000658059 00000 n 0000663363 00000 n 0000663490 00000 n 0000663553 00000 n 0000663679 00000 n 0000663741 00000 n 0000663926 00000 n 0000663989 00000 n 0000664052 00000 n 0000664115 00000 n 0000664178 00000 n 0000664241 00000 n 0000664303 00000 n 0000667483 00000 n 0000670615 00000 n 0000670804 00000 n 0000670992 00000 n 0000671180 00000 n 0000671368 00000 n 0000863583 00000 n 0000677464 00000 n 0000677653 00000 n 0000677842 00000 n 0000670363 00000 n 0000666713 00000 n 0000666866 00000 n 0000667016 00000 n 0000668362 00000 n 0000666385 00000 n 0000664487 00000 n 0000667167 00000 n 0000667231 00000 n 0000667294 00000 n 0000667357 00000 n 0000667420 00000 n 0000667546 00000 n 0000667607 00000 n 0000667733 00000 n 0000667796 00000 n 0000667859 00000 n 0000667922 00000 n 0000667985 00000 n 0000668048 00000 n 0000668111 00000 n 0000668173 00000 n 0000668236 00000 n 0000668299 00000 n 0000669782 00000 n 0000669932 00000 n 0000670081 00000 n 0000671557 00000 n 0000669620 00000 n 0000668483 00000 n 0000670236 00000 n 0000670300 00000 n 0000670426 00000 n 0000670489 00000 n 0000670552 00000 n 0000670678 00000 n 0000670741 00000 n 0000670867 00000 n 0000670929 00000 n 0000671055 00000 n 0000671117 00000 n 0000671242 00000 n 0000671305 00000 n 0000671431 00000 n 0000671494 00000 n 0000673618 00000 n 0000673768 00000 n 0000673918 00000 n 0000674069 00000 n 0000674234 00000 n 0000674382 00000 n 0000674555 00000 n 0000674709 00000 n 0000674869 00000 n 0000675014 00000 n 0000675191 00000 n 0000675342 00000 n 0000675510 00000 n 0000675660 00000 n 0000675829 00000 n 0000675975 00000 n 0000676133 00000 n 0000676283 00000 n 0000676445 00000 n 0000676590 00000 n 0000676755 00000 n 0000676920 00000 n 0000677066 00000 n 0000677234 00000 n 0000680535 00000 n 0000678406 00000 n 0000673267 00000 n 0000671678 00000 n 0000677400 00000 n 0000677527 00000 n 0000677590 00000 n 0000677716 00000 n 0000677779 00000 n 0000677905 00000 n 0000677968 00000 n 0000678155 00000 n 0000678218 00000 n 0000678281 00000 n 0000678344 00000 n 0000682494 00000 n 0000682808 00000 n 0000685544 00000 n 0000685794 00000 n 0000686109 00000 n 0000689065 00000 n 0000689254 00000 n 0000689443 00000 n 0000689695 00000 n 0000696849 00000 n 0000680697 00000 n 0000680852 00000 n 0000681002 00000 n 0000681156 00000 n 0000681308 00000 n 0000681462 00000 n 0000681613 00000 n 0000681767 00000 n 0000683122 00000 n 0000680319 00000 n 0000678527 00000 n 0000681929 00000 n 0000681993 00000 n 0000682055 00000 n 0000682118 00000 n 0000682180 00000 n 0000682243 00000 n 0000682306 00000 n 0000682369 00000 n 0000682432 00000 n 0000682557 00000 n 0000682620 00000 n 0000682682 00000 n 0000682745 00000 n 0000682871 00000 n 0000682934 00000 n 0000682996 00000 n 0000683059 00000 n 0001008499 00000 n 0000688813 00000 n 0000863552 00000 n 0000685026 00000 n 0000685174 00000 n 0000685327 00000 n 0000686424 00000 n 0000684864 00000 n 0000683229 00000 n 0000685480 00000 n 0000685605 00000 n 0000685668 00000 n 0000685731 00000 n 0000685857 00000 n 0000685920 00000 n 0000685983 00000 n 0000686046 00000 n 0000686172 00000 n 0000686235 00000 n 0000686298 00000 n 0000686361 00000 n 0000688232 00000 n 0000688383 00000 n 0000688537 00000 n 0000690071 00000 n 0000688070 00000 n 0000686545 00000 n 0000688686 00000 n 0000688750 00000 n 0000688876 00000 n 0000688939 00000 n 0000689002 00000 n 0000689128 00000 n 0000689191 00000 n 0000689317 00000 n 0000689380 00000 n 0000689506 00000 n 0000689569 00000 n 0000689632 00000 n 0000689758 00000 n 0000689821 00000 n 0000689882 00000 n 0000689945 00000 n 0000690008 00000 n 0000692588 00000 n 0000692753 00000 n 0000692918 00000 n 0000693071 00000 n 0000693230 00000 n 0000693397 00000 n 0000693545 00000 n 0000693700 00000 n 0000693850 00000 n 0000694010 00000 n 0000694161 00000 n 0000694321 00000 n 0000694471 00000 n 0000694632 00000 n 0000694782 00000 n 0000694951 00000 n 0000695098 00000 n 0000695249 00000 n 0000695401 00000 n 0000695557 00000 n 0000695704 00000 n 0000695865 00000 n 0000696017 00000 n 0000696172 00000 n 0000696317 00000 n 0000696477 00000 n 0000696625 00000 n 0000699767 00000 n 0000699915 00000 n 0000700070 00000 n 0000700220 00000 n 0000697477 00000 n 0000692210 00000 n 0000690192 00000 n 0000696785 00000 n 0000696912 00000 n 0000696975 00000 n 0000697038 00000 n 0000697101 00000 n 0000697164 00000 n 0000697351 00000 n 0000697414 00000 n 0000702818 00000 n 0000706961 00000 n 0000707402 00000 n 0000707654 00000 n 0000710445 00000 n 0000710634 00000 n 0000710821 00000 n 0000712533 00000 n 0000712722 00000 n 0000712911 00000 n 0000713098 00000 n 0000713287 00000 n 0000700374 00000 n 0000700545 00000 n 0000700702 00000 n 0000700859 00000 n 0000701016 00000 n 0000701170 00000 n 0000701476 00000 n 0000701629 00000 n 0000701786 00000 n 0000703070 00000 n 0000699506 00000 n 0000697598 00000 n 0000701937 00000 n 0000702001 00000 n 0000702064 00000 n 0000702127 00000 n 0000702189 00000 n 0000702252 00000 n 0000702315 00000 n 0000702377 00000 n 0000702440 00000 n 0000702503 00000 n 0000702566 00000 n 0000702629 00000 n 0000702692 00000 n 0000701325 00000 n 0000702755 00000 n 0000702881 00000 n 0000702944 00000 n 0000703007 00000 n 0000713476 00000 n 0000713665 00000 n 0000710004 00000 n 0000710193 00000 n 0000705328 00000 n 0000705648 00000 n 0000705807 00000 n 0000705969 00000 n 0000706126 00000 n 0000706287 00000 n 0000706440 00000 n 0000706592 00000 n 0000706743 00000 n 0000707969 00000 n 0000705103 00000 n 0000703177 00000 n 0000706897 00000 n 0000707024 00000 n 0000707087 00000 n 0000707150 00000 n 0000707213 00000 n 0000707276 00000 n 0000707339 00000 n 0000705489 00000 n 0000707465 00000 n 0000707528 00000 n 0000707591 00000 n 0000707717 00000 n 0000707780 00000 n 0000707843 00000 n 0000707906 00000 n 0000709573 00000 n 0000709724 00000 n 0000711009 00000 n 0000709420 00000 n 0000708090 00000 n 0000709877 00000 n 0000709941 00000 n 0000710067 00000 n 0000710130 00000 n 0000710256 00000 n 0000710319 00000 n 0000710382 00000 n 0000710508 00000 n 0000710571 00000 n 0000710697 00000 n 0000710759 00000 n 0000710883 00000 n 0000710946 00000 n 0001008624 00000 n 0000713852 00000 n 0000712346 00000 n 0000711130 00000 n 0000712469 00000 n 0000712596 00000 n 0000712659 00000 n 0000712785 00000 n 0000712848 00000 n 0000712974 00000 n 0000713035 00000 n 0000713161 00000 n 0000713224 00000 n 0000713350 00000 n 0000713413 00000 n 0000713539 00000 n 0000713602 00000 n 0000713728 00000 n 0000713790 00000 n 0000716004 00000 n 0000716154 00000 n 0000716309 00000 n 0000716460 00000 n 0000716624 00000 n 0000716775 00000 n 0000716939 00000 n 0000717087 00000 n 0000717262 00000 n 0000717413 00000 n 0000717571 00000 n 0000717722 00000 n 0000717880 00000 n 0000718031 00000 n 0000718198 00000 n 0000718349 00000 n 0000718516 00000 n 0000718666 00000 n 0000718824 00000 n 0000718970 00000 n 0000719131 00000 n 0000719278 00000 n 0000719441 00000 n 0000719588 00000 n 0000719748 00000 n 0000719913 00000 n 0000720096 00000 n 0000720255 00000 n 0000720412 00000 n 0000720569 00000 n 0000720731 00000 n 0000721515 00000 n 0000715590 00000 n 0000713973 00000 n 0000720893 00000 n 0000721142 00000 n 0000721205 00000 n 0000721267 00000 n 0000721330 00000 n 0000721392 00000 n 0000721453 00000 n 0000726020 00000 n 0000726271 00000 n 0000729613 00000 n 0000729927 00000 n 0000730178 00000 n 0000733891 00000 n 0000734268 00000 n 0000737653 00000 n 0000747484 00000 n 0000747673 00000 n 0000747862 00000 n 0000748051 00000 n 0000738094 00000 n 0000738283 00000 n 0000738472 00000 n 0000738661 00000 n 0000741325 00000 n 0000741574 00000 n 0000745242 00000 n 0000724041 00000 n 0000724191 00000 n 0000724343 00000 n 0000724505 00000 n 0000724653 00000 n 0000724805 00000 n 0000724964 00000 n 0000725122 00000 n 0000725280 00000 n 0000725430 00000 n 0000726712 00000 n 0000723816 00000 n 0000721622 00000 n 0000725580 00000 n 0000725644 00000 n 0000725707 00000 n 0000725769 00000 n 0000725832 00000 n 0000725895 00000 n 0000725958 00000 n 0000726083 00000 n 0000726146 00000 n 0000726208 00000 n 0000726334 00000 n 0000726397 00000 n 0000726460 00000 n 0000726523 00000 n 0000726586 00000 n 0000726649 00000 n 0000750623 00000 n 0000728631 00000 n 0000728783 00000 n 0000728936 00000 n 0000729089 00000 n 0000729251 00000 n 0000729398 00000 n 0000732466 00000 n 0000732616 00000 n 0000730556 00000 n 0000728442 00000 n 0000726833 00000 n 0000729549 00000 n 0000729676 00000 n 0000729739 00000 n 0000729802 00000 n 0000729864 00000 n 0000729990 00000 n 0000730053 00000 n 0000730115 00000 n 0000730241 00000 n 0000730304 00000 n 0000730367 00000 n 0000730430 00000 n 0000730493 00000 n 0000732769 00000 n 0000732920 00000 n 0000733072 00000 n 0000733222 00000 n 0000733374 00000 n 0000733525 00000 n 0000733678 00000 n 0000734645 00000 n 0000732250 00000 n 0000730691 00000 n 0000733827 00000 n 0000733954 00000 n 0000734017 00000 n 0000734080 00000 n 0000734143 00000 n 0000734206 00000 n 0000734331 00000 n 0000734394 00000 n 0000734457 00000 n 0000734520 00000 n 0000734583 00000 n 0000736817 00000 n 0000736970 00000 n 0000737120 00000 n 0000737277 00000 n 0000737427 00000 n 0000740620 00000 n 0000740774 00000 n 0000740940 00000 n 0000739227 00000 n 0000736637 00000 n 0000734752 00000 n 0000737589 00000 n 0000737716 00000 n 0000737779 00000 n 0000737842 00000 n 0000737905 00000 n 0000737968 00000 n 0000738031 00000 n 0000738157 00000 n 0000738220 00000 n 0000738346 00000 n 0000738409 00000 n 0000738535 00000 n 0000738598 00000 n 0000738724 00000 n 0000738787 00000 n 0000738850 00000 n 0000738913 00000 n 0000738976 00000 n 0000739039 00000 n 0000739101 00000 n 0000739164 00000 n 0001008749 00000 n 0000741105 00000 n 0000741636 00000 n 0000740449 00000 n 0000739334 00000 n 0000741261 00000 n 0000741388 00000 n 0000741450 00000 n 0000741512 00000 n 0000863521 00000 n 0000743386 00000 n 0000743538 00000 n 0000743685 00000 n 0000743834 00000 n 0000743982 00000 n 0000744130 00000 n 0000744278 00000 n 0000744430 00000 n 0000744585 00000 n 0000747044 00000 n 0000747204 00000 n 0000745619 00000 n 0000743170 00000 n 0000741744 00000 n 0000744738 00000 n 0000744802 00000 n 0000744865 00000 n 0000744928 00000 n 0000744991 00000 n 0000745053 00000 n 0000745116 00000 n 0000745179 00000 n 0000745305 00000 n 0000745368 00000 n 0000745430 00000 n 0000745493 00000 n 0000745556 00000 n 0000750000 00000 n 0000750163 00000 n 0000750326 00000 n 0000748240 00000 n 0000746891 00000 n 0000745740 00000 n 0000747357 00000 n 0000747421 00000 n 0000747547 00000 n 0000747610 00000 n 0000747736 00000 n 0000747799 00000 n 0000747925 00000 n 0000747988 00000 n 0000748114 00000 n 0000748177 00000 n 0000753963 00000 n 0000751944 00000 n 0000749838 00000 n 0000748375 00000 n 0000750498 00000 n 0000750686 00000 n 0000750749 00000 n 0000750812 00000 n 0000750875 00000 n 0000750938 00000 n 0000751001 00000 n 0000751064 00000 n 0000751127 00000 n 0000751189 00000 n 0000751252 00000 n 0000751315 00000 n 0000751378 00000 n 0000751441 00000 n 0000751504 00000 n 0000751567 00000 n 0000751630 00000 n 0000751692 00000 n 0000751755 00000 n 0000751818 00000 n 0000751881 00000 n 0000755332 00000 n 0000754119 00000 n 0000754270 00000 n 0000754449 00000 n 0000754600 00000 n 0000754776 00000 n 0000754944 00000 n 0000755110 00000 n 0000758652 00000 n 0000756712 00000 n 0000753756 00000 n 0000752051 00000 n 0000755268 00000 n 0000755395 00000 n 0000755458 00000 n 0000755583 00000 n 0000755646 00000 n 0000755707 00000 n 0000755770 00000 n 0000755833 00000 n 0000755896 00000 n 0000755959 00000 n 0000756022 00000 n 0000756085 00000 n 0000756148 00000 n 0000756211 00000 n 0000756274 00000 n 0000756337 00000 n 0000756398 00000 n 0000756461 00000 n 0000756524 00000 n 0000756587 00000 n 0000756650 00000 n 0000759318 00000 n 0000759758 00000 n 0000759947 00000 n 0000758802 00000 n 0000758953 00000 n 0000759103 00000 n 0000761947 00000 n 0000760262 00000 n 0000758481 00000 n 0000756833 00000 n 0000759254 00000 n 0000759381 00000 n 0000759444 00000 n 0000759507 00000 n 0000759570 00000 n 0000759633 00000 n 0000759695 00000 n 0000759821 00000 n 0000759884 00000 n 0000760010 00000 n 0000760073 00000 n 0000760136 00000 n 0000760199 00000 n 0001008874 00000 n 0000762109 00000 n 0000762277 00000 n 0000762441 00000 n 0000765463 00000 n 0000763985 00000 n 0000761776 00000 n 0000760383 00000 n 0000762599 00000 n 0000762725 00000 n 0000762788 00000 n 0000762851 00000 n 0000762914 00000 n 0000762977 00000 n 0000763040 00000 n 0000763103 00000 n 0000763166 00000 n 0000763229 00000 n 0000763292 00000 n 0000763355 00000 n 0000763418 00000 n 0000763481 00000 n 0000763544 00000 n 0000763607 00000 n 0000763670 00000 n 0000763733 00000 n 0000763796 00000 n 0000763859 00000 n 0000763922 00000 n 0000765625 00000 n 0000765786 00000 n 0000766942 00000 n 0000765301 00000 n 0000764106 00000 n 0000765935 00000 n 0000766061 00000 n 0000766124 00000 n 0000766187 00000 n 0000766250 00000 n 0000766313 00000 n 0000766376 00000 n 0000766439 00000 n 0000766502 00000 n 0000766565 00000 n 0000766628 00000 n 0000766690 00000 n 0000766753 00000 n 0000766816 00000 n 0000766879 00000 n 0000767653 00000 n 0000767404 00000 n 0000767063 00000 n 0000767527 00000 n 0000772467 00000 n 0000769450 00000 n 0000767747 00000 n 0000769573 00000 n 0000769699 00000 n 0000769762 00000 n 0000769825 00000 n 0000769888 00000 n 0000769951 00000 n 0000770014 00000 n 0000770077 00000 n 0000770140 00000 n 0000770203 00000 n 0000770265 00000 n 0000770328 00000 n 0000770391 00000 n 0000770454 00000 n 0000770517 00000 n 0000770580 00000 n 0000770643 00000 n 0000770706 00000 n 0000770769 00000 n 0000770831 00000 n 0000770894 00000 n 0000770957 00000 n 0000771020 00000 n 0000771083 00000 n 0000771146 00000 n 0000771209 00000 n 0000771272 00000 n 0000771335 00000 n 0000771397 00000 n 0000771460 00000 n 0000771523 00000 n 0000771586 00000 n 0000771649 00000 n 0000771712 00000 n 0000771775 00000 n 0000771838 00000 n 0000771901 00000 n 0000771963 00000 n 0000772026 00000 n 0000772089 00000 n 0000772152 00000 n 0000772215 00000 n 0000772278 00000 n 0000772341 00000 n 0000772404 00000 n 0000774061 00000 n 0000773309 00000 n 0000772574 00000 n 0000773432 00000 n 0000773558 00000 n 0000773621 00000 n 0000773684 00000 n 0000773747 00000 n 0000773810 00000 n 0000773873 00000 n 0000773936 00000 n 0000773999 00000 n 0000775065 00000 n 0000774626 00000 n 0000774167 00000 n 0000774749 00000 n 0000774813 00000 n 0000774876 00000 n 0000774939 00000 n 0000775002 00000 n 0001008999 00000 n 0000777429 00000 n 0000777580 00000 n 0000777731 00000 n 0000777882 00000 n 0000778032 00000 n 0000778183 00000 n 0000778333 00000 n 0000778484 00000 n 0000778635 00000 n 0000778786 00000 n 0000778937 00000 n 0000779088 00000 n 0000779239 00000 n 0000779389 00000 n 0000779540 00000 n 0000779690 00000 n 0000779839 00000 n 0000779988 00000 n 0000780138 00000 n 0000780289 00000 n 0000780438 00000 n 0000780588 00000 n 0000780738 00000 n 0000780888 00000 n 0000781039 00000 n 0000781189 00000 n 0000781340 00000 n 0000781491 00000 n 0000781641 00000 n 0000781791 00000 n 0000781942 00000 n 0000782088 00000 n 0000782238 00000 n 0000782388 00000 n 0000782538 00000 n 0000782688 00000 n 0000782837 00000 n 0000782988 00000 n 0000783139 00000 n 0000783289 00000 n 0000783437 00000 n 0000783588 00000 n 0000783739 00000 n 0000783890 00000 n 0000784041 00000 n 0000784192 00000 n 0000784343 00000 n 0000784494 00000 n 0000784645 00000 n 0000784796 00000 n 0000784947 00000 n 0000785097 00000 n 0000785248 00000 n 0000785399 00000 n 0000785550 00000 n 0000785701 00000 n 0000785851 00000 n 0000786001 00000 n 0000786150 00000 n 0000786299 00000 n 0000786450 00000 n 0000786600 00000 n 0000786750 00000 n 0000786901 00000 n 0000787050 00000 n 0000787200 00000 n 0000787350 00000 n 0000787501 00000 n 0000787651 00000 n 0000787802 00000 n 0000787953 00000 n 0000788104 00000 n 0000788254 00000 n 0000788404 00000 n 0000788555 00000 n 0000788705 00000 n 0000788856 00000 n 0000789006 00000 n 0000789157 00000 n 0000789308 00000 n 0000789459 00000 n 0000789610 00000 n 0000789760 00000 n 0000792817 00000 n 0000790035 00000 n 0000776547 00000 n 0000775171 00000 n 0000789909 00000 n 0000792968 00000 n 0000793118 00000 n 0000793269 00000 n 0000793420 00000 n 0000793570 00000 n 0000793721 00000 n 0000793871 00000 n 0000794022 00000 n 0000794172 00000 n 0000794323 00000 n 0000794473 00000 n 0000794623 00000 n 0000794773 00000 n 0000794923 00000 n 0000795074 00000 n 0000795225 00000 n 0000795376 00000 n 0000795527 00000 n 0000795677 00000 n 0000795827 00000 n 0000795978 00000 n 0000796129 00000 n 0000796280 00000 n 0000796431 00000 n 0000796581 00000 n 0000796732 00000 n 0000796883 00000 n 0000797032 00000 n 0000797182 00000 n 0000797333 00000 n 0000797484 00000 n 0000797634 00000 n 0000797783 00000 n 0000797932 00000 n 0000798083 00000 n 0000798233 00000 n 0000798383 00000 n 0000798532 00000 n 0000798682 00000 n 0000798833 00000 n 0000798982 00000 n 0000799133 00000 n 0000799283 00000 n 0000799434 00000 n 0000799584 00000 n 0000799735 00000 n 0000799886 00000 n 0000800037 00000 n 0000800188 00000 n 0000800338 00000 n 0000800489 00000 n 0000800640 00000 n 0000800790 00000 n 0000800941 00000 n 0000801092 00000 n 0000801240 00000 n 0000801389 00000 n 0000801540 00000 n 0000801692 00000 n 0000801844 00000 n 0000801995 00000 n 0000802146 00000 n 0000802297 00000 n 0000802446 00000 n 0000802596 00000 n 0000802746 00000 n 0000802897 00000 n 0000803049 00000 n 0000803200 00000 n 0000803351 00000 n 0000803502 00000 n 0000803653 00000 n 0000803805 00000 n 0000803956 00000 n 0000804108 00000 n 0000804259 00000 n 0000804411 00000 n 0000804563 00000 n 0000804715 00000 n 0000804867 00000 n 0000805019 00000 n 0000805171 00000 n 0000805323 00000 n 0000805474 00000 n 0000805626 00000 n 0000805778 00000 n 0000805930 00000 n 0000806082 00000 n 0000806234 00000 n 0000806386 00000 n 0000806537 00000 n 0000806689 00000 n 0000806840 00000 n 0000806992 00000 n 0000807143 00000 n 0000807295 00000 n 0000807447 00000 n 0000807599 00000 n 0000807751 00000 n 0000807902 00000 n 0000808054 00000 n 0000808204 00000 n 0000808356 00000 n 0000808507 00000 n 0000808659 00000 n 0000808811 00000 n 0000808963 00000 n 0000809115 00000 n 0000809266 00000 n 0000809418 00000 n 0000809568 00000 n 0000809718 00000 n 0000809868 00000 n 0000812770 00000 n 0000810081 00000 n 0000791656 00000 n 0000790141 00000 n 0000810017 00000 n 0000812921 00000 n 0000813071 00000 n 0000813222 00000 n 0000813373 00000 n 0000813524 00000 n 0000813676 00000 n 0000813827 00000 n 0000813979 00000 n 0000814130 00000 n 0000814282 00000 n 0000814434 00000 n 0000814584 00000 n 0000814736 00000 n 0000814886 00000 n 0000815038 00000 n 0000815189 00000 n 0000815341 00000 n 0000815493 00000 n 0000815645 00000 n 0000815797 00000 n 0000815949 00000 n 0000816101 00000 n 0000816252 00000 n 0000816404 00000 n 0000816556 00000 n 0000816708 00000 n 0000816860 00000 n 0000817012 00000 n 0000817164 00000 n 0000817316 00000 n 0000817468 00000 n 0000817620 00000 n 0000817772 00000 n 0000817923 00000 n 0000818075 00000 n 0000818226 00000 n 0000818377 00000 n 0000818528 00000 n 0000818680 00000 n 0000818832 00000 n 0000818984 00000 n 0000819136 00000 n 0000819287 00000 n 0000819439 00000 n 0000819590 00000 n 0000819742 00000 n 0000819894 00000 n 0000820046 00000 n 0000820198 00000 n 0000820350 00000 n 0000820502 00000 n 0000820653 00000 n 0000820804 00000 n 0000820954 00000 n 0000821105 00000 n 0000821254 00000 n 0000821403 00000 n 0000821554 00000 n 0000821704 00000 n 0000821853 00000 n 0000822003 00000 n 0000822153 00000 n 0000822304 00000 n 0000822454 00000 n 0000822603 00000 n 0000822753 00000 n 0000822904 00000 n 0000823055 00000 n 0000823206 00000 n 0000823356 00000 n 0000823506 00000 n 0000823657 00000 n 0000823808 00000 n 0000823959 00000 n 0000824110 00000 n 0000824260 00000 n 0000824411 00000 n 0000824561 00000 n 0000824711 00000 n 0000824862 00000 n 0000825013 00000 n 0000825163 00000 n 0000825314 00000 n 0000825465 00000 n 0000825616 00000 n 0000825766 00000 n 0000825917 00000 n 0000826068 00000 n 0000826219 00000 n 0000826370 00000 n 0000826520 00000 n 0000826670 00000 n 0000826820 00000 n 0000826971 00000 n 0000827121 00000 n 0000827272 00000 n 0000827423 00000 n 0000827573 00000 n 0000827723 00000 n 0000827872 00000 n 0000828022 00000 n 0000828172 00000 n 0000828322 00000 n 0000828473 00000 n 0000828624 00000 n 0000828775 00000 n 0000828926 00000 n 0000829077 00000 n 0000829228 00000 n 0000829379 00000 n 0000829529 00000 n 0000829680 00000 n 0000829829 00000 n 0000832615 00000 n 0000830042 00000 n 0000811609 00000 n 0000810163 00000 n 0000829978 00000 n 0000832766 00000 n 0000832916 00000 n 0000833067 00000 n 0000833218 00000 n 0000833368 00000 n 0000833519 00000 n 0000833670 00000 n 0000833822 00000 n 0000833973 00000 n 0000834125 00000 n 0000834277 00000 n 0000834428 00000 n 0000834580 00000 n 0000834731 00000 n 0000834883 00000 n 0000835035 00000 n 0000835187 00000 n 0000835339 00000 n 0000835491 00000 n 0000835643 00000 n 0000835794 00000 n 0000835945 00000 n 0000836096 00000 n 0000836246 00000 n 0000836397 00000 n 0000836548 00000 n 0000836698 00000 n 0000836848 00000 n 0000836999 00000 n 0000837150 00000 n 0000837301 00000 n 0000837452 00000 n 0000837601 00000 n 0000837751 00000 n 0000837901 00000 n 0000838051 00000 n 0000838202 00000 n 0000838351 00000 n 0000838501 00000 n 0000838652 00000 n 0000838802 00000 n 0000838951 00000 n 0000839101 00000 n 0000839252 00000 n 0000839402 00000 n 0000839553 00000 n 0000839704 00000 n 0000839851 00000 n 0000840002 00000 n 0000840153 00000 n 0000840304 00000 n 0000840455 00000 n 0000840607 00000 n 0000840759 00000 n 0000840911 00000 n 0000841062 00000 n 0000841212 00000 n 0000841364 00000 n 0000841516 00000 n 0000841668 00000 n 0000841820 00000 n 0000841971 00000 n 0000842121 00000 n 0000842272 00000 n 0000842424 00000 n 0000842575 00000 n 0000842727 00000 n 0000842878 00000 n 0000843030 00000 n 0000843182 00000 n 0000843334 00000 n 0000843486 00000 n 0000843638 00000 n 0000843789 00000 n 0000843940 00000 n 0000844091 00000 n 0000844243 00000 n 0000844395 00000 n 0000844547 00000 n 0000844699 00000 n 0000844851 00000 n 0000845003 00000 n 0000845155 00000 n 0000845307 00000 n 0000845459 00000 n 0000845611 00000 n 0000845763 00000 n 0000845915 00000 n 0000846066 00000 n 0000846218 00000 n 0000846368 00000 n 0000846519 00000 n 0000846669 00000 n 0000846821 00000 n 0000846972 00000 n 0000847124 00000 n 0000847276 00000 n 0000847426 00000 n 0000847578 00000 n 0000847729 00000 n 0000847881 00000 n 0000848032 00000 n 0000848184 00000 n 0000848336 00000 n 0000848488 00000 n 0000848640 00000 n 0000848792 00000 n 0000848944 00000 n 0000849096 00000 n 0000849248 00000 n 0000849399 00000 n 0000849549 00000 n 0000849700 00000 n 0000851560 00000 n 0000849914 00000 n 0000831454 00000 n 0000830124 00000 n 0000849850 00000 n 0000851712 00000 n 0000851864 00000 n 0000852015 00000 n 0000852167 00000 n 0000852318 00000 n 0000852470 00000 n 0000852621 00000 n 0000852772 00000 n 0000852923 00000 n 0000853075 00000 n 0000853225 00000 n 0000853377 00000 n 0000853529 00000 n 0000853680 00000 n 0000853832 00000 n 0000853984 00000 n 0000854136 00000 n 0000854288 00000 n 0000854440 00000 n 0000854592 00000 n 0000854744 00000 n 0000854896 00000 n 0000855048 00000 n 0000855200 00000 n 0000855351 00000 n 0000855502 00000 n 0000855654 00000 n 0000855806 00000 n 0000855957 00000 n 0000856109 00000 n 0000856261 00000 n 0000856413 00000 n 0000856565 00000 n 0000856716 00000 n 0000856868 00000 n 0000857018 00000 n 0000857170 00000 n 0000857320 00000 n 0000857472 00000 n 0000857624 00000 n 0000857775 00000 n 0000857927 00000 n 0000858078 00000 n 0000858230 00000 n 0000858381 00000 n 0000858533 00000 n 0000858683 00000 n 0000858832 00000 n 0000858983 00000 n 0000859133 00000 n 0000859284 00000 n 0000859434 00000 n 0000859583 00000 n 0000859732 00000 n 0000859881 00000 n 0000860094 00000 n 0000850921 00000 n 0000849996 00000 n 0000860030 00000 n 0000860188 00000 n 0001013898 00000 n 0000860233 00000 n 0000860264 00000 n 0001013829 00000 n 0000860312 00000 n 0000860344 00000 n 0001013689 00000 n 0000860389 00000 n 0000860426 00000 n 0001013564 00000 n 0000860474 00000 n 0000860515 00000 n 0001013480 00000 n 0000860565 00000 n 0000860595 00000 n 0001013381 00000 n 0000860645 00000 n 0000860679 00000 n 0001013282 00000 n 0000860729 00000 n 0000860764 00000 n 0001013183 00000 n 0000860814 00000 n 0000860845 00000 n 0001013084 00000 n 0000860895 00000 n 0000860928 00000 n 0001013000 00000 n 0000860978 00000 n 0000861012 00000 n 0001012859 00000 n 0000861060 00000 n 0000861101 00000 n 0001012775 00000 n 0000861151 00000 n 0000861184 00000 n 0001012676 00000 n 0000861234 00000 n 0000861280 00000 n 0001012577 00000 n 0000861330 00000 n 0000861360 00000 n 0001012478 00000 n 0000861410 00000 n 0000861447 00000 n 0001012379 00000 n 0000861497 00000 n 0000861527 00000 n 0001012280 00000 n 0000861577 00000 n 0000861620 00000 n 0001012181 00000 n 0000861670 00000 n 0000861709 00000 n 0001012082 00000 n 0000861759 00000 n 0000861790 00000 n 0001011983 00000 n 0000861840 00000 n 0000861868 00000 n 0001011884 00000 n 0000861919 00000 n 0000861949 00000 n 0001011785 00000 n 0000862000 00000 n 0000862034 00000 n 0001011686 00000 n 0000862085 00000 n 0000862112 00000 n 0001011587 00000 n 0000862163 00000 n 0000862194 00000 n 0001011488 00000 n 0000862245 00000 n 0000862281 00000 n 0001011389 00000 n 0000862332 00000 n 0000862365 00000 n 0001011290 00000 n 0000862416 00000 n 0000862443 00000 n 0001011191 00000 n 0000862494 00000 n 0000862526 00000 n 0001011092 00000 n 0000862577 00000 n 0000862609 00000 n 0001011008 00000 n 0000862660 00000 n 0000862687 00000 n 0001010883 00000 n 0000862735 00000 n 0000862773 00000 n 0001010799 00000 n 0000862823 00000 n 0000862852 00000 n 0001010700 00000 n 0000862902 00000 n 0000862937 00000 n 0001010601 00000 n 0000862987 00000 n 0000863025 00000 n 0001010502 00000 n 0000863075 00000 n 0000863113 00000 n 0001010418 00000 n 0000863163 00000 n 0000863196 00000 n 0001010278 00000 n 0000863241 00000 n 0000863274 00000 n 0001010194 00000 n 0000863322 00000 n 0000863359 00000 n 0001010110 00000 n 0000863407 00000 n 0000863447 00000 n 0001010026 00000 n 0000863495 00000 n 0000865680 00000 n 0000865704 00000 n 0000865730 00000 n 0001002624 00000 n 0000865755 00000 n 0000866173 00000 n 0000866421 00000 n 0000866753 00000 n 0000867219 00000 n 0000867548 00000 n 0000867652 00000 n 0000868128 00000 n 0000868481 00000 n 0000869058 00000 n 0000876076 00000 n 0000876313 00000 n 0000883372 00000 n 0000883604 00000 n 0000894184 00000 n 0000894499 00000 n 0000913316 00000 n 0000913922 00000 n 0000924518 00000 n 0000924835 00000 n 0000937436 00000 n 0000937871 00000 n 0000946692 00000 n 0000947116 00000 n 0000951279 00000 n 0000951543 00000 n 0000954395 00000 n 0000954634 00000 n 0000968202 00000 n 0000968573 00000 n 0000988899 00000 n 0000989507 00000 n 0001002264 00000 n 0001009124 00000 n 0001009243 00000 n 0001009368 00000 n 0001009494 00000 n 0001009620 00000 n 0001009746 00000 n 0001009836 00000 n 0001009946 00000 n 0001014023 00000 n 0001014327 00000 n 0001014688 00000 n 0001015111 00000 n 0001015509 00000 n 0001015935 00000 n 0001016349 00000 n 0001016761 00000 n 0001017080 00000 n 0001017381 00000 n 0001017698 00000 n 0001018045 00000 n 0001018372 00000 n 0001018648 00000 n 0001018943 00000 n 0001019229 00000 n 0001019550 00000 n 0001019935 00000 n 0001020353 00000 n 0001020684 00000 n 0001020994 00000 n 0001021300 00000 n 0001021578 00000 n 0001021868 00000 n 0001022160 00000 n 0001022442 00000 n 0001022718 00000 n 0001023056 00000 n 0001023405 00000 n 0001023669 00000 n 0001023987 00000 n 0001024280 00000 n 0001024599 00000 n 0001024990 00000 n 0001025391 00000 n 0001025704 00000 n 0001026041 00000 n 0001026379 00000 n 0001026760 00000 n 0001027021 00000 n 0001027303 00000 n 0001027602 00000 n 0001027917 00000 n 0001028219 00000 n 0001028533 00000 n 0001028876 00000 n 0001029174 00000 n 0001029484 00000 n 0001029780 00000 n 0001030073 00000 n 0001030348 00000 n 0001030603 00000 n 0001030887 00000 n 0001031176 00000 n 0001031431 00000 n 0001031740 00000 n 0001032047 00000 n 0001032336 00000 n 0001032660 00000 n 0001032917 00000 n 0001033163 00000 n 0001033413 00000 n 0001033701 00000 n 0001033948 00000 n 0001034228 00000 n 0001034513 00000 n 0001034810 00000 n 0001035061 00000 n 0001035357 00000 n 0001035687 00000 n 0001036042 00000 n 0001036366 00000 n 0001036669 00000 n 0001036943 00000 n 0001037215 00000 n 0001037519 00000 n 0001037820 00000 n 0001038154 00000 n 0001038456 00000 n 0001038765 00000 n 0001039080 00000 n 0001039361 00000 n 0001039588 00000 n 0001039874 00000 n 0001040143 00000 n 0001040406 00000 n 0001040681 00000 n 0001040989 00000 n 0001041251 00000 n 0001041547 00000 n 0001041874 00000 n 0001042168 00000 n 0001042403 00000 n 0001042632 00000 n 0001042919 00000 n 0001043146 00000 n 0001043431 00000 n 0001043618 00000 n 0001043865 00000 n 0001044054 00000 n 0001044258 00000 n 0001044435 00000 n 0001044669 00000 n 0001045010 00000 n 0001045354 00000 n 0001045622 00000 n 0001045948 00000 n 0001046246 00000 n 0001046534 00000 n 0001046913 00000 n 0001047283 00000 n 0001047635 00000 n 0001048011 00000 n 0001048389 00000 n 0001048730 00000 n 0001049101 00000 n 0001049426 00000 n 0001049835 00000 n 0001050224 00000 n 0001050594 00000 n 0001050902 00000 n 0001051269 00000 n 0001051593 00000 n 0001051921 00000 n 0001052326 00000 n 0001052634 00000 n 0001052942 00000 n 0001053277 00000 n 0001053620 00000 n 0001053935 00000 n 0001054272 00000 n 0001054645 00000 n 0001054942 00000 n 0001055268 00000 n 0001055569 00000 n 0001055905 00000 n 0001056158 00000 n 0001056426 00000 n 0001056736 00000 n 0001057063 00000 n 0001057396 00000 n 0001057767 00000 n 0001058174 00000 n 0001058571 00000 n 0001058865 00000 n 0001059146 00000 n 0001059540 00000 n 0001059725 00000 n 0001059938 00000 n 0001060199 00000 n 0001060466 00000 n 0001060649 00000 n 0001060854 00000 n 0001061049 00000 n 0001061306 00000 n 0001061561 00000 n 0001061813 00000 n 0001062056 00000 n 0001062297 00000 n 0001062538 00000 n 0001062781 00000 n 0001063023 00000 n 0001063266 00000 n 0001063508 00000 n 0001063751 00000 n 0001063993 00000 n 0001064236 00000 n 0001064478 00000 n 0001064721 00000 n 0001064962 00000 n 0001065203 00000 n 0001065446 00000 n 0001065694 00000 n 0001065951 00000 n 0001066208 00000 n 0001066465 00000 n 0001066722 00000 n 0001066979 00000 n 0001067236 00000 n 0001067493 00000 n 0001067750 00000 n 0001068007 00000 n 0001068264 00000 n 0001068521 00000 n 0001068778 00000 n 0001069035 00000 n 0001069292 00000 n 0001069549 00000 n 0001069806 00000 n 0001070063 00000 n 0001070320 00000 n 0001070577 00000 n 0001070834 00000 n 0001071091 00000 n 0001071348 00000 n 0001071605 00000 n 0001071862 00000 n 0001072119 00000 n 0001072376 00000 n 0001072633 00000 n 0001072890 00000 n 0001073147 00000 n 0001073404 00000 n 0001073661 00000 n 0001073918 00000 n 0001074175 00000 n 0001074432 00000 n 0001074689 00000 n 0001074946 00000 n 0001075203 00000 n 0001075460 00000 n 0001075717 00000 n 0001075974 00000 n 0001076231 00000 n 0001076488 00000 n 0001076745 00000 n 0001077002 00000 n 0001077259 00000 n 0001077516 00000 n 0001077773 00000 n 0001078030 00000 n 0001078287 00000 n 0001078544 00000 n 0001078801 00000 n 0001079058 00000 n 0001079315 00000 n 0001079572 00000 n 0001079829 00000 n 0001080086 00000 n 0001080343 00000 n 0001080600 00000 n 0001080857 00000 n 0001081114 00000 n 0001081371 00000 n 0001081628 00000 n 0001081885 00000 n 0001082142 00000 n 0001082390 00000 n 0001082639 00000 n 0001082888 00000 n 0001083137 00000 n 0001083386 00000 n 0001083635 00000 n 0001083884 00000 n 0001084131 00000 n 0001084380 00000 n 0001084629 00000 n 0001084878 00000 n 0001085127 00000 n 0001085374 00000 n 0001085623 00000 n 0001085872 00000 n 0001086124 00000 n 0001086373 00000 n 0001086620 00000 n 0001086869 00000 n 0001087118 00000 n 0001087367 00000 n 0001087616 00000 n 0001087861 00000 n 0001088110 00000 n 0001088359 00000 n 0001088608 00000 n 0001088852 00000 n 0001089096 00000 n 0001089345 00000 n 0001089594 00000 n 0001089843 00000 n 0001090087 00000 n 0001090329 00000 n 0001090578 00000 n 0001090825 00000 n 0001091074 00000 n 0001091321 00000 n 0001091570 00000 n 0001091819 00000 n 0001092068 00000 n 0001092317 00000 n 0001092566 00000 n 0001092813 00000 n 0001093062 00000 n 0001093311 00000 n 0001093560 00000 n 0001093809 00000 n 0001094053 00000 n 0001094299 00000 n 0001094548 00000 n 0001094797 00000 n 0001095037 00000 n 0001095283 00000 n 0001095532 00000 n 0001095781 00000 n 0001096030 00000 n 0001096279 00000 n 0001096528 00000 n 0001096768 00000 n 0001097014 00000 n 0001097263 00000 n 0001097512 00000 n 0001097761 00000 n 0001098010 00000 n 0001098259 00000 n 0001098508 00000 n 0001098749 00000 n 0001098998 00000 n 0001099247 00000 n 0001099496 00000 n 0001099745 00000 n 0001099994 00000 n 0001100243 00000 n 0001100492 00000 n 0001100738 00000 n 0001100984 00000 n 0001101233 00000 n 0001101482 00000 n 0001101731 00000 n 0001101980 00000 n 0001102225 00000 n 0001102474 00000 n 0001102723 00000 n 0001102972 00000 n 0001103221 00000 n 0001103461 00000 n 0001103710 00000 n 0001103959 00000 n 0001104208 00000 n 0001104457 00000 n 0001104706 00000 n 0001104955 00000 n 0001105196 00000 n 0001105445 00000 n 0001105694 00000 n 0001105943 00000 n 0001106192 00000 n 0001106441 00000 n 0001106683 00000 n 0001106929 00000 n 0001107178 00000 n 0001107421 00000 n 0001107670 00000 n 0001107919 00000 n 0001108168 00000 n 0001108417 00000 n 0001108666 00000 n 0001108910 00000 n 0001109148 00000 n 0001109397 00000 n 0001109646 00000 n 0001109895 00000 n 0001110144 00000 n 0001110388 00000 n 0001110634 00000 n 0001110883 00000 n 0001111132 00000 n 0001111378 00000 n 0001111618 00000 n 0001111867 00000 n 0001112116 00000 n 0001112365 00000 n 0001112614 00000 n 0001112858 00000 n 0001113107 00000 n 0001113356 00000 n 0001113605 00000 n 0001113847 00000 n 0001114096 00000 n 0001114341 00000 n 0001114590 00000 n 0001114839 00000 n 0001115088 00000 n 0001115333 00000 n 0001115582 00000 n 0001115831 00000 n 0001116077 00000 n 0001116323 00000 n 0001116572 00000 n 0001116821 00000 n 0001117067 00000 n 0001117311 00000 n 0001117560 00000 n 0001117809 00000 n 0001118058 00000 n 0001118307 00000 n 0001118556 00000 n 0001118805 00000 n 0001119050 00000 n 0001119299 00000 n 0001119548 00000 n 0001119797 00000 n 0001120046 00000 n 0001120295 00000 n 0001120544 00000 n 0001120788 00000 n 0001121023 00000 n 0001121272 00000 n 0001121521 00000 n 0001121770 00000 n 0001122019 00000 n 0001122268 00000 n 0001122517 00000 n 0001122766 00000 n 0001123015 00000 n 0001123261 00000 n 0001123510 00000 n 0001123759 00000 n 0001124008 00000 n 0001124257 00000 n 0001124506 00000 n 0001124753 00000 n 0001125002 00000 n 0001125251 00000 n 0001125498 00000 n 0001125747 00000 n 0001125996 00000 n 0001126243 00000 n 0001126492 00000 n 0001126741 00000 n 0001126990 00000 n 0001127234 00000 n 0001127483 00000 n 0001127732 00000 n 0001127981 00000 n 0001128230 00000 n 0001128471 00000 n 0001128720 00000 n 0001128967 00000 n 0001129216 00000 n 0001129465 00000 n 0001129714 00000 n 0001129963 00000 n 0001130212 00000 n 0001130459 00000 n 0001130708 00000 n 0001130957 00000 n 0001131206 00000 n 0001131453 00000 n 0001131702 00000 n 0001131951 00000 n 0001132200 00000 n 0001132449 00000 n 0001132689 00000 n 0001132935 00000 n 0001133187 00000 n 0001133444 00000 n 0001133700 00000 n 0001133957 00000 n 0001134213 00000 n 0001134470 00000 n 0001134722 00000 n 0001134964 00000 n 0001135199 00000 n 0001135434 00000 n 0001135664 00000 n 0001135899 00000 n 0001136131 00000 n 0001136366 00000 n 0001136598 00000 n 0001136833 00000 n 0001137067 00000 n 0001137302 00000 n 0001137537 00000 n 0001137772 00000 n 0001138008 00000 n 0001138192 00000 n 0001138377 00000 n 0001138560 00000 n 0001138745 00000 n 0001138927 00000 n 0001139109 00000 n 0001139294 00000 n 0001139477 00000 n 0001139662 00000 n 0001139845 00000 n 0001140030 00000 n 0001140213 00000 n 0001140398 00000 n 0001140581 00000 n 0001140766 00000 n 0001140948 00000 n 0001141125 00000 n 0001141296 00000 n 0001141466 00000 n 0001141641 00000 n 0001141816 00000 n 0001141993 00000 n 0001142168 00000 n 0001142345 00000 n 0001142519 00000 n 0001142693 00000 n 0001142870 00000 n 0001143045 00000 n 0001143222 00000 n 0001143397 00000 n 0001143574 00000 n 0001143742 00000 n 0001143947 00000 n 0001144145 00000 n 0001144347 00000 n 0001144552 00000 n 0001144749 00000 n 0001144948 00000 n 0001145089 00000 n 0001145247 00000 n 0001145422 00000 n 0001145578 00000 n 0001145726 00000 n 0001145883 00000 n 0001146030 00000 n 0001146175 00000 n 0001146326 00000 n 0001146463 00000 n 0001146605 00000 n 0001146753 00000 n 0001146883 00000 n 0001147015 00000 n 0001147160 00000 n 0001147304 00000 n 0001147445 00000 n 0001147584 00000 n 0001147740 00000 n 0001147892 00000 n 0001148052 00000 n 0001148216 00000 n 0001148360 00000 n 0001148506 00000 n 0001148661 00000 n 0001148803 00000 n 0001148934 00000 n 0001149068 00000 n 0001149202 00000 n 0001149336 00000 n 0001149472 00000 n 0001149608 00000 n 0001149744 00000 n 0001149880 00000 n 0001150016 00000 n 0001150152 00000 n 0001150288 00000 n 0001150424 00000 n 0001150560 00000 n 0001150696 00000 n 0001150831 00000 n 0001150965 00000 n 0001151100 00000 n 0001151234 00000 n 0001151368 00000 n 0001151502 00000 n 0001151636 00000 n 0001151770 00000 n 0001151903 00000 n 0001152036 00000 n 0001152170 00000 n 0001152304 00000 n 0001152438 00000 n 0001152572 00000 n 0001152706 00000 n 0001152840 00000 n 0001152974 00000 n 0001153108 00000 n 0001153242 00000 n 0001153375 00000 n 0001153508 00000 n 0001153642 00000 n 0001153776 00000 n 0001153910 00000 n 0001154044 00000 n 0001154178 00000 n 0001154312 00000 n 0001154445 00000 n 0001154579 00000 n 0001154713 00000 n 0001154847 00000 n 0001154981 00000 n 0001155115 00000 n 0001155249 00000 n 0001155384 00000 n 0001155518 00000 n 0001155649 00000 n 0001155781 00000 n 0001155900 00000 n 0001156018 00000 n 0001156135 00000 n 0001156251 00000 n 0001156366 00000 n 0001156487 00000 n 0001156583 00000 n 0001156729 00000 n 0001156863 00000 n 0001157011 00000 n 0001157173 00000 n 0001157316 00000 n 0001157452 00000 n 0001157588 00000 n 0001157721 00000 n 0001157854 00000 n 0001157988 00000 n 0001158122 00000 n 0001158256 00000 n 0001158381 00000 n 0001158501 00000 n 0001158637 00000 n 0001158772 00000 n 0001158864 00000 n 0001158966 00000 n 0001159006 00000 n 0001159176 00000 n trailer << /Size 6415 /Root 6413 0 R /Info 6414 0 R /ID [<96FB30F105C0581B5D70082799F14EFF> <96FB30F105C0581B5D70082799F14EFF>] >> startxref 1159524 %%EOF buzztrax-0.10.2/docs/reference/bt-core/buzztrax-core-docs.xml0000644042355400116100000001703612640575004024504 0ustar00ensoniceng00000000000000 %version-entities; ]> Buzztrax Bt-Core Reference Manual for Buzztrax &BT_VERSION;. The latest version of this documentation can be found on-line at http://www.buzztrax.org/files/apidocs/bt-core/. Introduction Buzztrax aims to be a successor of the freeware music tracker called Buzz with a focus on Linux. The development of Buzz for windows had been discontinued as the author lost all his source-codes. Buzztrax is only related to Buzz in the concepts, Buzztraxs source code is written from scratch. The homepage of the buzztrax project can be found at www.buzztrax.org. It is a social site containing forums, a wiki and bug tracker and many other resoures. Overview Conventions During the API docs some conventions are used to avoid duplication and improve precision. It is never valid to supply NULL for an object reference, unless it is explicitly said so. Methods do checking of preconditions using g_return_if_fail() or g_return_val_if_fail(). Therefore watch for the glib log messages indicating wrong API usage. All methods that return a pointer to an object, increase the reference counter. Therefore you should do release this reference by calling g_object_unref() when you are done with the object. When a return value is marked as const e.g. const gchar * or const BtObjectName * then this is a static reference. You must not call g_free() or g_object_unref() on it. API Reference libbuzztrax-core is the main library for the buzztrax software system. This library contains all classes needed for the components of a song like machines, patterns, wires and so on. It further defines bases classes for common operations such as song input/output. The synthesis engine and the low-level parts of the sequencer are built into GStreamer. Please make sure you have read section conventions before reading further. All data structures are encapsulated in objects based on GObject. Central starting points are BtApplication and BtSong. All the objects that belong to a song have their song-instance as their member. Likewise all objects that belong to the applications have their application instance as a member. Core Class Reference Song Class Reference Song IO Reference Appendix Object Hierarchy API Index Index of deprecated API Index of new API in 0.3 Index of new API in 0.5 Index of new API in 0.6 Index of new API in 0.7 buzztrax-0.10.2/docs/reference/bt-core/Makefile.am0000644042355400116100000000511612461664612022252 0ustar00ensoniceng00000000000000## Process this file with automake to produce Makefile.in # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE=buzztrax-core # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR=$(top_srcdir)/src/lib/core # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS=--type-init-func="gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. # --rebuild-types requires gtk-doc 1.8 SCAN_OPTIONS=--deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS=--sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ \ --extra-dir=.. # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB=$(top_srcdir)/src/lib/core/*.h $(top_srcdir)/src/lib/core/songio/*/*.h CFILE_GLOB=$(top_srcdir)/src/lib/core/*.c $(top_srcdir)/src/lib/core/songio/*/*.c # Header files to ignore when scanning. IGNORE_HFILES=core_private.h marshal.h version.h \ bsl.h song-io-buzz-private.h # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbuzztrax-core.la \ $(top_builddir)/libbtbsl.la \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) # include generic part include $(top_srcdir)/gtk-doc.make # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += $(DOC_MODULE).types # Comment this out if you want your docs-status tested during 'make check' if ENABLE_GTK_DOC TESTS_ENVIRONMENT = \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) TESTS = $(GTKDOC_CHECK) endif buzztrax-0.10.2/docs/reference/bt-core/buzztrax-core-overrides.txt0000644042355400116100000000000012144654422025555 0ustar00ensoniceng00000000000000buzztrax-0.10.2/docs/reference/bt-core/Makefile.in0000644042355400116100000012452712640575013022266 0ustar00ensoniceng00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 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@ # -*- mode: makefile -*- #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \ $(srcdir)/buzztrax-core.types.in $(top_srcdir)/test-driver subdir = docs/reference/bt-core ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/orc.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac 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 = buzztrax-core.types CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ ALSA_DEPS_CFLAGS = @ALSA_DEPS_CFLAGS@ ALSA_DEPS_LIBS = @ALSA_DEPS_LIBS@ ALSA_DOC_SECTIONS = @ALSA_DOC_SECTIONS@ ALSA_DOC_TYPES = @ALSA_DOC_TYPES@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ ASPELL = @ASPELL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASE_DEPS_CFLAGS = @BASE_DEPS_CFLAGS@ BASE_DEPS_LIBS = @BASE_DEPS_LIBS@ BMLHOST_CCASFLAGS = @BMLHOST_CCASFLAGS@ BMLHOST_CFLAGS = @BMLHOST_CFLAGS@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BT_CFLAGS = @BT_CFLAGS@ BT_DISABLE_DEPRECATED = @BT_DISABLE_DEPRECATED@ BT_INCLUDEDIR = @BT_INCLUDEDIR@ BT_LDFLAGS = @BT_LDFLAGS@ BT_LIBDIR = @BT_LIBDIR@ BT_LIBS = @BT_LIBS@ BT_MAJORMINOR = @BT_MAJORMINOR@ BT_MAJOR_VERSION = @BT_MAJOR_VERSION@ BT_MICRO_VERSION = @BT_MICRO_VERSION@ BT_MINOR_VERSION = @BT_MINOR_VERSION@ BT_RELEASE_DATE = @BT_RELEASE_DATE@ BT_RELEASE_YEAR = @BT_RELEASE_YEAR@ BT_VERSION = @BT_VERSION@ BT_VERSION_INFO = @BT_VERSION_INFO@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@ FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIRDIR = @GIRDIR@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@ GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@ GREP = @GREP@ GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GSF_DEPS_CFLAGS = @GSF_DEPS_CFLAGS@ GSF_DEPS_LIBS = @GSF_DEPS_LIBS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ GST_PLUGIN_CFLAGS = @GST_PLUGIN_CFLAGS@ GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ GST_PLUGIN_LIBS = @GST_PLUGIN_LIBS@ GST_PREFIX = @GST_PREFIX@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_PREFIX = @GTK_PREFIX@ GUDEV_DEPS_CFLAGS = @GUDEV_DEPS_CFLAGS@ GUDEV_DEPS_LIBS = @GUDEV_DEPS_LIBS@ GUDEV_DOC_SECTIONS = @GUDEV_DOC_SECTIONS@ GUDEV_DOC_TYPES = @GUDEV_DOC_TYPES@ GUI_DEPS_CFLAGS = @GUI_DEPS_CFLAGS@ GUI_DEPS_LIBS = @GUI_DEPS_LIBS@ G_IR_COMPILER = @G_IR_COMPILER@ G_IR_GENERATE = @G_IR_GENERATE@ G_IR_SCANNER = @G_IR_SCANNER@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LINUX_INPUT_DOC_SECTIONS = @LINUX_INPUT_DOC_SECTIONS@ LINUX_INPUT_DOC_TYPES = @LINUX_INPUT_DOC_TYPES@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ ORC_LIBS = @ORC_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_ORIGIN = @PACKAGE_ORIGIN@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SCROLLKEEPER_BUILD_REQUIRED = @SCROLLKEEPER_BUILD_REQUIRED@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TYPELIBDIR = @TYPELIBDIR@ UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ UPDATE_ICON_CACHE = @UPDATE_ICON_CACHE@ UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ XFONT_PATH = @XFONT_PATH@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bcov_path = @bcov_path@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ lcov_path = @lcov_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ scrollkeeper_config = @scrollkeeper_config@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ valgrind_path = @valgrind_path@ with_desktop_dir = @with_desktop_dir@ xvfb_path = @xvfb_path@ # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # The name of the module, e.g. 'glib'. DOC_MODULE = buzztrax-core # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. DOC_SOURCE_DIR = $(top_srcdir)/src/lib/core # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS = --type-init-func="gst_init(&argc,&argv)" # Extra options to supply to gtkdoc-scan. # --rebuild-types requires gtk-doc 1.8 SCAN_OPTIONS = --deprecated-guards="BT_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS = --sgml-mode # Extra options to supply to gtkdoc-fixref. Not normally needed. FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/ \ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html/ \ --extra-dir=.. # Used for dependencies. The docs will be rebuilt if any of these change. HFILE_GLOB = $(top_srcdir)/src/lib/core/*.h $(top_srcdir)/src/lib/core/songio/*/*.h CFILE_GLOB = $(top_srcdir)/src/lib/core/*.c $(top_srcdir)/src/lib/core/songio/*/*.c # Header files to ignore when scanning. IGNORE_HFILES = core_private.h marshal.h version.h \ bsl.h song-io-buzz-private.h # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. GTKDOC_CFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_builddir) \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) GTKDOC_LIBS = \ $(top_builddir)/libbuzztrax-core.la \ $(top_builddir)/libbtbsl.la \ $(top_builddir)/libbuzztrax-ic.la \ $(BASE_DEPS_LIBS) \ $(BT_LIBS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt # include generic part # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) $(DOC_MODULE).types DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test @GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # Comment this out if you want your docs-status tested during 'make check' @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) @ENABLE_GTK_DOC_TRUE@TESTS = $(GTKDOC_CHECK) all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(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) --foreign docs/reference/bt-core/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/reference/bt-core/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_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): buzztrax-core.types: $(top_builddir)/config.status $(srcdir)/buzztrax-core.types.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am @ENABLE_GTK_DOC_FALSE@all-local: all-am: Makefile all-local installdirs: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: check-am install-am install-strip .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool clean-local cscopelist-am ctags-am \ dist-hook distclean distclean-generic distclean-libtool \ distclean-local distdir 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 maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags-am uninstall uninstall-am uninstall-local gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc @ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs @HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" @HAVE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local 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: buzztrax-0.10.2/common.mak0000644042355400116100000000261311772126226015754 0ustar00ensoniceng00000000000000## common makefile targets .PHONY: todo stats splint help # make todo -- generate a list of TODO items in the form of gcc error/warnings/notes" todo:: @find . \( -name "*.c" -o -name "*.h" \) -exec grep -Hno "FIXME([a-z]*): .*" {} \; | sed "s/FIXME([a-z]*)/error:/" @find . \( -name "*.c" -o -name "*.h" \) -exec grep -Hno "TODO([a-z]*): .*" {} \; | sed "s/TODO([a-z]*)/warning:/" @find . \( -name "*.c" -o -name "*.h" \) -exec grep -Hno "IDEA([a-z]*): .*" {} \; | sed "s/IDEA([a-z]*)/note:/" # make stats -- run source code stats stats:: ctags @echo "files by byte size:" @find . \( -name "*.c" -o -name "*.h" \) -printf "%s %p\n" | sort -rn @echo @echo "files by line size:" @find . \( -name "*.c" -o -name "*.h" \) -exec wc -l {} \; | sort -rn @echo @echo "files by tag entries:" @for file in *.c; do size=`grep $${file} tags | wc -l`;echo $${size} $${file}; done | sort -rn ## need all -I -D flags ## ideally we use a gcc wrapper to dump the cpp flags for each file we compile ## and use that, that'd be also useful for clang-check # make splint -- check sources using splint splint:: @globs=`find src -name "*.c" -printf "%h/*.c %h/*.h\n" | sort | uniq | xargs echo`; \ iflags=`grep -o -e '\-I[a-zA-Z0-9/.-]* ' Makefile | xargs echo`; \ splint +posixlib -weak $$iflags $$globs; # make help -- this list help:: @grep -e "^# make .*" Makefile | cut -c3- buzztrax-0.10.2/org.buzztrax.gschema.xml0000644042355400116100000001703012470456235020602 0ustar00ensoniceng00000000000000 0 Version number for that the user has seen the news Tracks for which application version the user has seen the news already. '' List of missing machines to ignore Comma separated list of machine names, that we will not warn about on startup, if they are missing. '' List of tip-numbers that were shown already Comma separated list of tip-of-the-day numbers, that the user has seen. true Show tips on startup Should the tip-of-the-day dialog be shown everytime the application starts. false Hide main toolbar Should the main application toolbar be hidden. false Hide bottom statusbar Should the main application statusbar be hidden. false Hide main page tabs Should the main application notebook pages tabs be hidden. 'low' Machine view grid detail level How dense the app should draw the grid lines shown in machine view: (off,low,medium,high) -1 window-xpos Last application window x-position. -1 window-ypos Last application window y-position. -1 window-width Last application window width. -1 window-height Last application window height. '' Which audiosink to use Which gstreamer audiosink element should buzztrax applications use. '' Which audiosink device to use Which audio output device should buzztrax applications use. 44100 Which sample-rate to use Which sample rate should be used for the generated audio. 2 How many audio channels to use How many audio channels should be used for the generated audio. 30 Target audio latency in ms What audio latency should the audio engine be configured for. false Activate Coherence UPnP based playback controller Allows to remote control buzztrax via upnp together by using the coherence backend. 7654 Socket port for the Coherence UPnP based playback controller The port number for the communication with the coherence backend. false Sync other jack clients to buzztrax playback state Allows to remote control jack applications from buzztrax. false Sync buzztrax to the playback state other jack clients Allows to remote control buzztrax via jack transport. false Activate interaction controller library based playback controller Allows to remote control buzztrax via interaction controls. '' List of device and control names Which device to use and the mapping of control to command. '' Default directory for songs Default directory for filechoosers, when loading existing or saving new songs. '' Default directory for recordings Default directory song recordings. '' Default directory for digital waveforms Default directory for the sample browser in the wavetable view. false Use dark theme variant Use the dark theme variant when set to true. false Use dense theme variant for small screens Use the dense theme variant when set to true. buzztrax-0.10.2/config.rpath0000754042355400116100000003521711702054461016301 0ustar00ensoniceng00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2003 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 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 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. # # 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. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $CC in icc|ecc) wl='-Wl,' ;; ccc) wl='-Wl,' ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi4*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then hardcode_direct=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10* | hpux11*) if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=no ;; ia64*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; *) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4.2uw2*) hardcode_direct=yes hardcode_minus_L=no ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) ;; sysv5*) hardcode_libdir_flag_spec= ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi4*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; freebsd*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case "$host_cpu" in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; netbsd*) ;; newsos6) ;; nto-qnx) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; sco3.2v5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ;; sysv4*MP*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < Thomas Wabner Krzysztof Foltman Patric Schmitz Tom Mast Tommi Sakari Uimonen Thomas Klausner Red Dwarf Marc Broekhuis Henri Valta Adrian Bunk Toni Graffy The Gitter Badger Sven Herzberg Sebastian Rasmussen Sebastian Dröge Samuel Cormier-Iijima Lionel Landwerlin Joe Pea Dave F Carl-Anton Ingmarsson Antonio Ospite src/lib/dllwrapper is based on the work of various authors of the winelib and xine projects buzztrax-0.10.2/test-driver0000754042355400116100000001027712364226021016164 0ustar00ensoniceng00000000000000#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2013-07-13.22; # UTC # Copyright (C) 2011-2013 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: buzztrax-0.10.2/intltool-extract.in0000644042355400116100000000000012637755561017635 0ustar00ensoniceng00000000000000buzztrax-0.10.2/README.md0000644042355400116100000000654612640575004015257 0ustar00ensoniceng00000000000000# Buzztrax [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Buzztrax/buzztrax?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ## quick info Please turn you browser to http://www.buzztrax.org to learn what this project is about. Buzztrax is free software and distributed under the LGPL. ## build status We are running continuous integration on drone.io [![Build Status](https://drone.io/github.com/Buzztrax/buzztrax/status.png)](https://drone.io/github.com/Buzztrax/buzztrax/latest) ## intro Buzztrax is a music composer similar to tracker applications. It is roughly modelled after the windows only, closed source application called Buzz. ## requirements * gstreamer >= 1.2 and its plugins (gstreamer, gst-plugins-base and gst-plugins-good). * glib, gsf and libxml2 for the core libraries. * clutter-gtk and gtk+ for the UI ## optional packages * gst-plugins-ugly: for the use of mp3 recording * gst-plugins-bad: extra audio effects * gudev and libasound: for interaction controller support * orc: for plugin acceleration * fluidsynth: to build a relates gstreamer wrapper * check: for unit tests ## building from git To build use autogen.sh instead of configure. This accept the same options like configure. Later one can use autoregen.sh to rerun the bootstrapping. To build from git one needs to have gtk-doc and cvs (for autopoint from gettext) installed. ## directories * docs : design ideas and API reference * po : gettext i18n catalogs * src : the project sources * ui * cmd : buzztrax tool for the command line * edit : buzztrax editor (gtk based ui) * lib * core : logic, e.g. connections framework, file i/o, ... * ic : interaction controller * tests : unit tests (same directory structure as src) ## installing locally Use following options for ./autogen.sh or ./configure --prefix=$HOME/buzztrax --with-gconf-source=xml::/home/ensonic/.gconf/ --with-desktop-dir=/home/ensonic/.gnome2/vfolders/ when installing the package to e.g. $HOME/buzztrax remember to set these environment variables: # libraries: export LD_LIBRARY_PATH=$HOME/buzztrax/lib:$LD_LIBRARY_PATH # online help: (as root) export OMF_DIR="$OMF_DIR:$HOME/buzztrax/share/omf" scrollkeeper-update # devhelp: export DEVHELP_SEARCH_PATH="$DEVHELP_SEARCH_PATH:$HOME/buzztrax/share/gtk-doc/html" # pkg-config: export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$HOME/buzztrax/lib/pkgconfig" # gstreamer export GST_PLUGIN_PATH_1.0="$HOME/buzztrax/lib/gstreamer-1.0" # mime-database & icon-themes: export XDG_DATA_DIRS="$XDG_DATA_DIRS:$HOME/buzztrax/share" update-mime-database $HOME/buzztrax/share/mime/ ## installing in /usr/local The default value for the --prefix configure option is /usr/local. Also in that case the variables mentioned in the last example need to be exported. ## running the apps cd $HOME/buzztrax/bin ./buzztrax-cmd --command=info --input-file=../share/buzztrax/songs/melo1.xml ./buzztrax-cmd --command=play --input-file=../share/buzztrax/songs/melo1.xml ./buzztrax-cmd --command=encode --input-file=../share/buzztrax/songs/melo1.xml --output-file=./melo1.ogg ./buzztrax-edit --command=load --input-file=../share/buzztrax/songs/melo1.xml ## running unit tests run all the tests: make check select tests to run: BT_CHECKS="test_bt_edit_app*" make bt_edit.check buzztrax-0.10.2/mkinstalldirs0000754042355400116100000000370412637755556016620 0ustar00ensoniceng00000000000000#! /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 buzztrax-0.10.2/configure.ac0000644042355400116100000005417312640575004016265 0ustar00ensoniceng00000000000000dnl Initialise autoconf/automake/libtool AC_PREREQ([2.69]) AC_INIT([buzztrax],[0.10.2],[buzztrax-devel@buzztrax.org]) AC_CANONICAL_TARGET([]) # we can't do -Werror, because # - we use gnu make extensions # - we override uninstallcheck var AM_INIT_AUTOMAKE([-Wall 1.14 check-news std-options foreign tar-ustar subdir-objects]) AC_CONFIG_SRCDIR([README.md]) AC_CONFIG_HEADERS(config.h) AC_CONFIG_MACRO_DIR(m4) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) LT_PREREQ([2.2]) LT_INIT # Support silent build rules, requires at least automake-1.11. Disable by # either passing --disable-silent-rules to configure or passing V=1 to make m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) dnl dependencies REQ_GLIB=2.32.0 REQ_GTK=3.4 REQ_GST=1.1.0 dnl dnl current : the interface : MAJOR + MINOR dnl revision : of the same interface : MICRO dnl age : MINOR dnl dnl 1: when releasing a changed version : MICRO++ dnl 2: when the interface has changed (adding functions) : MINOR++, MICRO=0 dnl 3: when the interface has changed (removing functions) : MAJOR++, MINOR=0, MICRO=0 dnl BT_MAJOR_VERSION=1 BT_MINOR_VERSION=1 BT_MICRO_VERSION=0 BT_VERSION=$BT_MAJOR_VERSION.$BT_MINOR_VERSION.$BT_MICRO_VERSION BT_VERSION_INFO=`expr $BT_MAJOR_VERSION + $BT_MINOR_VERSION`:$BT_MICRO_VERSION:$BT_MINOR_VERSION BT_MAJORMINOR=$BT_MAJOR_VERSION.$BT_MINOR_VERSION AC_DEFINE_UNQUOTED(BT_MAJORMINOR, "$BT_MAJORMINOR", [buzztrax series]) AC_SUBST(BT_MAJORMINOR) dnl that is needed to figure the directory name, where the plugin goes to GST_MAJORMINOR=1.0 AC_DEFINE_UNQUOTED(GST_MAJORMINOR, "$GST_MAJORMINOR", [gstreamer series]) AC_SUBST(GST_MAJORMINOR) dnl release year and date BT_RELEASE_YEAR=`date +%Y` BT_RELEASE_DATE=`date +%Y-%m-%d` AC_SUBST(BT_MAJOR_VERSION) AC_SUBST(BT_MINOR_VERSION) AC_SUBST(BT_MICRO_VERSION) AC_SUBST(BT_VERSION) AC_SUBST(BT_VERSION_INFO) AC_SUBST(BT_RELEASE_YEAR) AC_SUBST(BT_RELEASE_DATE) AC_DEFINE_UNQUOTED(BT_VERSION, "$BT_VERSION", [library version as string]) AC_DEFINE_UNQUOTED(PACKAGE_VERSION_NUMBER, 900, [version as a number]) dnl Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MKDIR_P AC_PROG_SED AM_PROG_AS AM_PROG_CC_C_O IT_PROG_INTLTOOL PKG_PROG_PKG_CONFIG dnl Initialise gettext AM_GNU_GETTEXT_VERSION(0.12.1) AM_GNU_GETTEXT([external]) localedir='${datadir}/locale' AC_SUBST(localedir) GETTEXT_PACKAGE="buzztrax-$PACKAGE_VERSION" AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Package Name for Gettext]) dnl check if we build from vcs or tarball AC_MSG_CHECKING(if this is a development or release build) if test -f autogen.sh; then dev_build=yes rel_build=no AC_DEFINE(DEV_BUILD, [1], [defined when building from version control system]) AC_MSG_RESULT(development) else dev_build=no rel_build=yes AC_MSG_RESULT(release) fi dnl enable runtime debugging code AC_MSG_CHECKING(whether to enable runtime debugging code) AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug],[enable runtime debugging code (default=no)]), , [enable_debug=no]) AC_MSG_RESULT($enable_debug) if test "x$enable_debug" = "xyes"; then AC_DEFINE(USE_DEBUG, [1], [enable runtime debugging code]) DEBUG_CFLAGS="-O0 -Wall -Werror -g" DEBUG_LDFLAGS="-Wl,--warn-common" else AC_DEFINE(G_DISABLE_ASSERT, [1], [if no runtime debugging, do not enable g_asserts]) AC_DEFINE(G_DISABLE_CHECKS, [1], [if no runtime debugging, do not enable g_return_if_fail variants]) AC_DEFINE(G_DISABLE_CAST_CHECKS, [1], [if no runtime debugging, do not enable dynamic type checks]) DEBUG_CFLAGS="" DEBUG_LDFLAGS="" fi AM_CONDITIONAL(USE_DEBUG, test "x$enable_debug" = "xyes") dnl compile with disable-deprecated switches AC_MSG_CHECKING([whether to disable deprecated glib/gtk+/gst/etc. features]) AC_ARG_ENABLE([deprecated], AS_HELP_STRING([--disable-deprecated],[disable deprecated glib/gtk+/gst/etc. features]), , [enable_deprecated=$rel_build] ) AC_MSG_RESULT($enable_deprecated) if test "x$enable_deprecated" = "xno"; then # ATK_DISABLE_DEPRECATED BT_DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGST_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED" else BT_DISABLE_DEPRECATED="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DGDK_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS" fi AC_SUBST(BT_DISABLE_DEPRECATED) dnl enable coverage analysis AC_MSG_CHECKING(whether to enable coverage analysis) AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage],[enable coverage analysis (default=no)]), , [enable_coverage=no]) AC_MSG_RESULT($enable_coverage) COVERAGE_CFLAGS="" COVERAGE_LIBS="" if test "x$enable_coverage" = "xyes"; then bcov_path="no" lcov_path="no" dnl bcov isn't ready yet AC_PATH_PROG(bcov_path, [bcov], [no]) if test "x$bcov_path" != "xno" ; then coverage_tool="bcov" else AC_PATH_PROG(lcov_path, [lcov], [no]) if test "x$lcov_path" != "xno" ; then LCOV_VERSION=`lcov --version|head -n 1| $SED 's/^.* version //'` LCOV_MAJOR=`echo $LCOV_VERSION | cut -d. -f1 | $SED s/[a-zA-Z\-].*//g` LCOV_MINOR=`echo $LCOV_VERSION | cut -d. -f2 | $SED s/[a-zA-Z\-].*//g` if [[ "$LCOV_MAJOR" -lt "1" ]]; then AC_MSG_WARN([lcov >= 1.6 is required, you have $LCOV_VERSION]) lcov_path="no" elif [[ "$LCOV_MAJOR" -eq "1" ]] && \ [[ "$LCOV_MINOR" -lt "6" ]]; then AC_MSG_WARN([lcov >= 1.6 is required, you have $LCOV_VERSION]) lcov_path="no" fi if test "x$lcov_path" != "xno" ; then coverage_tool="gcov + lcov" COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" COVERAGE_LIBS="-lgcov" fi fi fi fi AM_CONDITIONAL(USE_BCOV, test "x$bcov_path" != "xno") AM_CONDITIONAL(USE_LCOV, test "x$lcov_path" != "xno") dnl valgrind integration for tests AC_PATH_PROG(valgrind_path, [valgrind], [no]) if test "x$valgrind_path" != "xno"; then valgrind_path=`dirname $valgrind_path` VALGRIND=`dirname $valgrind_path` have_valgrind="yes" else VALGRIND="no" have_valgrind="no" fi AC_SUBST(VALGRIND) AM_CONDITIONAL(USE_VALGRIND, test "x$VALGRIND" != "xno") dnl xvfb for hidden ui tests AC_PATH_PROG(xvfb_path, [Xvfb], [no]) if test "x$xvfb_path" != "xno" ; then have_xvfb="yes" AC_DEFINE_UNQUOTED(XVFB_PATH, "$xvfb_path", [Path of Xvfb executable to be used to run gui unit tests under]) XFONT_PATH=`xset q | grep fonts | sed 's/^\ *//'` if test "x$XFONT_PATH" != "x"; then AC_DEFINE_UNQUOTED(XFONT_PATH, "$XFONT_PATH", [X font path]) fi else have_xvfb="no" fi AC_SUBST(xvfb_path) AC_SUBST(XFONT_PATH) dnl define custom path for desktop files AC_MSG_CHECKING(where to install desktop files) AC_ARG_WITH( desktop_dir, AS_HELP_STRING([--with-desktop-dir],[install desktop files to DIR/applications (default=$prefix/share/)]), , [with_desktop_dir="$prefix/share/"]) AC_MSG_RESULT($with_desktop_dir) AC_SUBST(with_desktop_dir) dnl check if we have 32-bit headers installed ac_cppflags_save="$CPPFLAGS" CPPFLAGS="-m32" AC_CHECK_HEADERS([features.h], [ have_x32_h=yes ], [ have_x32_h=no ] ) CPPFLAGS="$ac_cppflags_save" dnl check target cpu architecture BMLHOST_CFLAGS="" BMLHOST_CCASFLAGS="" case "x${target_cpu}" in xi?86 | k?) HAVE_X86=yes CALLING_MODE=direct ;; xx86_64|xamd64) dnl switch 'xyes' to 'yes' to build it for 32bit using the ipc wrapper if test "$have_x32_h" = "xno"; then HAVE_X86=yes BMLHOST_CFLAGS="-m32" BMLHOST_CCASFLAGS="-m32" CALLING_MODE=ipc else HAVE_X86=no CALLING_MODE=void fi ;; *) HAVE_X86=no CALLING_MODE=void ;; esac AC_MSG_CHECKING(whether to include the emulation for buzzmachine dlls) AC_ARG_ENABLE( dllwrapper, AS_HELP_STRING([--enable-dllwrapper],[enable emulation for buzzmachine dlls (default=auto)]), , [enable_dllwrapper="auto"]) if test "$enable_dllwrapper" != "no"; then if test "x$HAVE_X86" = "xno"; then enable_dllwrapper="no" else enable_dllwrapper="yes" fi fi AC_MSG_RESULT($enable_dllwrapper) if test "$enable_dllwrapper" = "yes"; then AC_DEFINE(USE_DLLWRAPPER, 1, [Defined if emulation for buzzmachine dlls is enabled]) fi if test "$CALLING_MODE" = "direct"; then AC_DEFINE(USE_DLLWRAPPER_DIRECT, 1, [Defined if emulation for buzzmachine dlls is using direct calls]) fi if test "$CALLING_MODE" = "ipc"; then AC_DEFINE(USE_DLLWRAPPER_IPC, 1, [Defined if emulation for buzzmachine dlls is using ipc]) fi AM_CONDITIONAL(USE_DLLWRAPPER, test x$enable_dllwrapper = xyes) AM_CONDITIONAL(USE_DLLWRAPPER_DIRECT, test x$CALLING_MODE = xdirect) AM_CONDITIONAL(USE_DLLWRAPPER_IPC, test x$CALLING_MODE = xipc) dnl Checks for libraries. dnl mandarory deps PKG_CHECK_MODULES(BASE_DEPS, \ glib-2.0 >= $REQ_GLIB gobject-2.0 >= $REQ_GLIB gthread-2.0 >= $REQ_GLIB \ gmodule-2.0 >= $REQ_GLIB gio-2.0 >= $REQ_GLIB \ libxml-2.0 >= 2.6.0 \ gstreamer-1.0 >= $REQ_GST gstreamer-controller-1.0 >= $REQ_GST \ gstreamer-base-1.0 >= $REQ_GST \ gstreamer-plugins-base-1.0 >= $REQ_GST \ gstreamer-audio-1.0 >= $REQ_GST \ gstreamer-fft-1.0 >= $REQ_GST \ ) PKG_CHECK_MODULES(GUI_DEPS, \ clutter-1.0 clutter-gtk-1.0 gtk+-3.0 >= $REQ_GTK \ ) PKG_CHECK_MODULES(ALSA_DEPS, alsa, [ AC_DEFINE(USE_ALSA, [1], [Define to 1 if we can use alsa libraries]) BASE_DEPS_CFLAGS="$BASE_DEPS_CFLAGS $ALSA_DEPS_CFLAGS" BASE_DEPS_LIBS="$BASE_DEPS_LIBS $ALSA_DEPS_LIBS" use_alsa=yes ALSA_DOC_TYPES= ALSA_DOC_SECTIONS= ],[ use_alsa=no ALSA_DOC_TYPES=% ALSA_DOC_SECTIONS=# ] ) AM_CONDITIONAL(USE_ALSA, test "x$use_alsa" == "xyes") AC_SUBST(ALSA_DOC_TYPES) AC_SUBST(ALSA_DOC_SECTIONS) PKG_CHECK_MODULES(GUDEV_DEPS, gudev-1.0, [ AC_DEFINE(USE_GUDEV, [1], [Define to 1 if we can use gudev libraries]) BASE_DEPS_CFLAGS="$BASE_DEPS_CFLAGS $GUDEV_DEPS_CFLAGS" BASE_DEPS_LIBS="$BASE_DEPS_LIBS $GUDEV_DEPS_LIBS" use_gudev=yes GUDEV_DOC_TYPES= GUDEV_DOC_SECTIONS= ],[ use_gudev=no GUDEV_DOC_TYPES=% GUDEV_DOC_SECTIONS=# ] ) AM_CONDITIONAL(USE_GUDEV, test "x$use_gudev" == "xyes") AC_SUBST(GUDEV_DOC_TYPES) AC_SUBST(GUDEV_DOC_SECTIONS) PKG_CHECK_MODULES(GSF_DEPS, libgsf-1, [ AC_DEFINE(USE_GSF, [1], [Define to 1 if we can use gsf libraries]) BASE_DEPS_CFLAGS="$BASE_DEPS_CFLAGS $GSF_DEPS_CFLAGS" BASE_DEPS_LIBS="$BASE_DEPS_LIBS $GSF_DEPS_LIBS" use_gsf=yes ],[ use_gsf=no ] ) AM_CONDITIONAL(USE_GSF, test "x$use_gsf" == "xyes") GLIB_GSETTINGS # GObject Introspection AC_ARG_ENABLE([introspection], AS_HELP_STRING([--enable-introspection], [enable introspection for this build (default=auto)]), , [enable_introspection=auto]) case "x${enable_introspection}" in xyes|xauto) PKG_CHECK_MODULES(GOBJECT_INTROSPECTION, [gobject-introspection-1.0],[ G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` AC_SUBST(G_IR_SCANNER) G_IR_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` AC_SUBST(G_IR_COMPILER) G_IR_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` AC_SUBST(G_IR_GENERATE) GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` AC_SUBST(GIRDIR) TYPELIBDIR=`$PKG_CONFIG --variable=typelibdir gobject-introspection-1.0` AC_SUBST(TYPELIBDIR) enable_gir="yes" ],[ enable_gir="no" ] ) ;; *) enable_gir="no" ;; esac AM_CONDITIONAL(USE_GIR, test "x$enable_gir" == "xyes") GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" GTK_PREFIX="`$PKG_CONFIG --variable=prefix gtk+-3.0`" GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-1.0`" AC_SUBST(GLIB_PREFIX) AC_SUBST(GTK_PREFIX) AC_SUBST(GST_PREFIX) dnl check for pending gtk+ addditions dnl ac_libs_save="$LIBS" dnl AC_CHECK_LIB( gtk-x11-2.0, gtk_tree_view_column_set_wrap_header_widget, \ dnl AC_DEFINE(HAVE_GTK_TREE_VIEW_COLUMN_PATCH, [1], [Define to 1 if we have the pending gtk+ patch applied]) \ dnl ) dnl LIBS="$ac_libs_save" dnl check for gstreamer devel additions #ac_cflags_save="$CFLAGS" #ac_cppflags_save="$CPPFLAGS" #ac_libs_save="$LIBS" #CFLAGS="$CFLAGS $BASE_DEPS_CFLAGS" #CPPFLAGS="$CPPFLAGS $BASE_DEPS_CFLAGS" #LIBS="$LIBS $BASE_DEPS_LIBS" #AC_CHECK_HEADERS(gst/gstpreset.h) #AC_CHECK_FUNCS(gst_element_factory_can_sink_any_caps) #LIBS="$ac_libs_save" #CFLAGS="$ac_cflags_save" #CPPFLAGS="$ac_cppflags_save" #LIBS="$ac_libs_save" # TODO(ensonic: remove when we require gst-1.6 ac_libs_save="$LIBS" AC_CHECK_LIB( gstcontroller-1.0, gst_direct_control_binding_new_absolute, \ AC_DEFINE(HAVE_GST_CONTROL_BINDING_ABS, [1], [Define to 1 if we have abs direct control binding]) \ ) AM_CONDITIONAL(BUILD_GST_CONTROL_BINDING_ABS, test "x$ac_cv_lib_gstcontroller_1_0_gst_direct_control_binding_new_absolute" == "xno") LIBS="$ac_libs_save" dnl Add additional libraries BASE_DEPS_LIBS="$LIBINTL $BASE_DEPS_LIBS" dnl test for availability of check unittest package (with a relative new function) dnl @todo: if we configure without --enable-debug most tests wont work PKG_CHECK_MODULES(CHECK, check >= 0.9.2, [ have_check=yes ],[ have_check=no ] ) AM_CONDITIONAL(BUILD_CHECK_TESTS, test "x$have_check" == "xyes") dnl existing plugins are here (this might be outside of $prefix) GST_PLUGINS_DIR="`$PKG_CONFIG --variable=pluginsdir gstreamer-1.0`" AC_SUBST(GST_PLUGINS_DIR) dnl GStreamer plugin build plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR" AC_SUBST(plugindir) GST_PLUGIN_CFLAGS="$DEBUG_CFLAGS $COVERAGE_CFLAGS" AC_SUBST(GST_PLUGIN_CFLAGS) GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '[_]*(gst_|bt_|Bt|BT_).*' $COVERAGE_LIBS" AC_SUBST(GST_PLUGIN_LDFLAGS) GST_PLUGIN_LIBS="$COVERAGE_LIBS" AC_SUBST(GST_PLUGIN_LIBS) dnl check for oil runtime compiler ORC_CHECK([0.4.6]) dnl check for FluidSynth PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, have_fluidsynth=yes, have_fluidsynth=no) AC_SUBST(FLUIDSYNTH_CFLAGS) AC_SUBST(FLUIDSYNTH_LIBS) AM_CONDITIONAL(FLUIDSYNTH_SUPPORT, test "x$have_fluidsynth" = "xyes") dnl set license and copyright notice AC_DEFINE(PACKAGE_ORIGIN, "http://www.buzztrax.org", [Plugin package origin]) AC_SUBST(PACKAGE_ORIGIN) dnl Check for gtk-doc. m4_ifdef([GTK_DOC_CHECK], [ GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) ],[ AM_CONDITIONAL([ENABLE_GTK_DOC], false) ]) AC_ARG_ENABLE(man, [AS_HELP_STRING([--enable-man], [regenerate man pages from Docbook [default=no]])],enable_man=yes, enable_man=no) AC_PATH_PROG([XSLTPROC], [xsltproc]) AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno) dnl Check for scrollkeeper AC_PATH_PROG(scrollkeeper_config, scrollkeeper-config, no) if test x$scrollkeeper_config = xno; then have_scrollkeeper=no AC_MSG_WARN([Couldn't find scrollkeeper-config, please install the scrollkeeper package]) dnl if test x$xsltproc = xno; then dnl AC_MSG_WARN([Couldn't find xsltproc, please install the libxml/libxslt package]) dnl fi else have_scrollkeeper=yes fi AM_CONDITIONAL(ENABLE_SCROLLKEEPER, test x$scrollkeeper_config != xno) SCROLLKEEPER_BUILD_REQUIRED=0.3.5 AC_SUBST(SCROLLKEEPER_BUILD_REQUIRED) dnl Check for aspell (spellcheck the docs) AC_CHECK_PROGS(ASPELL,[aspell],[]) AM_CONDITIONAL(WITH_ASPELL,[test "x$ASPELL" != "x"]) dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS( \ alloca.h assert.h dirent.h kstat.h malloc.h \ sys/mman.h sys/time.h sys/times.h \ X11/Xlocale.h \ ) AC_CHECK_HEADERS([linux/input.h], [ have_linux_input_h=yes LINUX_INPUT_DOC_TYPES= LINUX_INPUT_DOC_SECTIONS= ], [ have_linux_input_h=no LINUX_INPUT_DOC_TYPES=% LINUX_INPUT_DOC_SECTIONS=# ] ) AC_SUBST(LINUX_INPUT_DOC_TYPES) AC_SUBST(LINUX_INPUT_DOC_SECTIONS) AM_CONDITIONAL(USE_LINUX_INPUT, test x$have_linux_input_h == xyes) AC_CHECK_DECL(sysi86,[ AC_DEFINE(HAVE_SYSI86,1,[Define this if the 'sysi86' function is declared in sys/sysi86.h]) ],,[ #include ]) dnl check for SSE intrisics ARCH_CFLAGS="" ARCH_CPPFLAGS="" case "x${target_cpu}" in xi?86|k?|xx86_64|xamd64) # seems to cause "CPU you selected does not support x86-64 instruction set" on some targets #ARCH_CFLAGS="-march=native" ARCH_CPPFLAGS="-D__SSE__ -D__MMX__" AC_CHECK_HEADERS([xmmintrin.h]) ;; esac dnl check for libraries LT_LIB_M AC_SUBST(LIBM) ACX_PTHREAD AC_CHECK_LIB([rt], [main]) dnl Checks for library functions. dnl libc functions AC_CHECK_FUNCS(sched_setscheduler) AC_CHECK_FUNCS(mlockall) AC_CHECK_FUNCS(getrusage) AC_CHECK_FUNCS(setrlimit) AC_CHECK_FUNCS([vsscanf clock_gettime]) AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL,1,[We can use libdl functions])], [AC_CHECK_LIB(dl, dlopen, [ DL_LIBS=-ldl AC_DEFINE(HAVE_LIBDL,1,[We can use libdl functions]) ], []) ]) dnl Check for -Bsymbolic-functions linker flag used to avoid dnl intra-library PLT jumps, if available. AC_ARG_ENABLE(Bsymbolic, [AS_HELP_STRING([--disable-Bsymbolic], [avoid linking with -Bsymbolic])],, [SAVED_LDFLAGS="${LDFLAGS}" AC_MSG_CHECKING([for -Bsymbolic-functions linker flag]) LDFLAGS=-Wl,-Bsymbolic-functions AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])], [AC_MSG_RESULT(yes) enable_Bsymbolic=yes], [AC_MSG_RESULT(no) enable_Bsymbolic=no]) LDFLAGS="${SAVED_LDFLAGS}"]) dnl Extra vars BT_INCLUDEDIR='-I${includedir}' dnl -Wl,--as-needed # can be put into CFLAGS to drop all unused libs BT_CFLAGS="$ARCH_CFLAGS $ARCH_CPPFLAGS $DEBUG_CFLAGS $COVERAGE_CFLAGS $BT_DISABLE_DEPRECATED" BT_LIBDIR='-L${libdir}' BT_LIBS="$COVERAGE_LIBS" BT_LDFLAGS="$DEBUG_LDFLAGS" if test "x${enable_Bsymbolic}" == "xyes"; then BT_LDFLAGS="$BT_LDFLAGS -Wl,-Bsymbolic-functions" fi BML_CFLAGS="$DEBUG_CFLAGS $COVERAGE_CFLAGS" # the -Wno-non-virtual-dtor is needed to suppress : virtual methods with no virtual destructor BML_CXXFLAGS="$DEBUG_CFLAGS $COVERAGE_CFLAGS -Wno-non-virtual-dtor" BML_LIBS="$COVERAGE_LIBS $DL_LIBS" dnl check for desktop and mimetype utilities AC_ARG_ENABLE(update-mime, AS_HELP_STRING([--disable-update-mime],[don't run update-mime-database utility (useful for packages) ])) AM_CONDITIONAL(WITH_UPDATE_MIME, test "$enable_update_mime" != "no") AC_ARG_ENABLE(update-desktop, AS_HELP_STRING([--disable-update-desktop],[don't run update-desktop-database utility (useful for packages) ])) AM_CONDITIONAL(WITH_UPDATE_DESKTOP, test "$enable_update_desktop" != "no") AC_ARG_ENABLE(update-icon-cache, AS_HELP_STRING([--disable-update-icon-cache],[don't run gtk-update-icon-cache utility (useful for packages) ])) AM_CONDITIONAL(WITH_UPDATE_ICON_CACHE, test "$enable_update_icon_cache" != "no") AC_PATH_PROG(UPDATE_MIME_DATABASE, update-mime-database) AC_PATH_PROG(UPDATE_DESKTOP_DATABASE, update-desktop-database) AC_PATH_PROG(UPDATE_ICON_CACHE, gtk-update-icon-cache-3.0) dnl Substitutes AC_SUBST(BT_INCLUDEDIR) AC_SUBST(BT_CFLAGS) AC_SUBST(BT_LIBDIR) AC_SUBST(BT_LIBS) AC_SUBST(BT_LDFLAGS) AC_SUBST(BASE_DEPS_LIBS) AC_SUBST(BASE_DEPS_CFLAGS) AC_SUBST(GUI_DEPS_LIBS) AC_SUBST(GUI_DEPS_CFLAGS) AC_SUBST(BML_CFLAGS) AC_SUBST(BML_CXXFLAGS) AC_SUBST(BML_LIBS) AC_SUBST(BMLHOST_CFLAGS) AC_SUBST(BMLHOST_CCASFLAGS) AC_SUBST(ARCH_CFLAGS) AC_SUBST(ARCH_CCASFLAGS) AC_CONFIG_FILES(Makefile \ docs/version.entities \ docs/help/bt-edit/Makefile \ docs/help/bt-edit/C/Makefile \ docs/help/bt-edit/C/buzztrax-edit-C.omf \ docs/reference/bt-cmd/Makefile \ docs/reference/bt-core/Makefile \ docs/reference/bt-core/buzztrax-core.types \ docs/reference/bt-edit/Makefile \ docs/reference/bt-gst/Makefile \ docs/reference/bt-ic/Makefile \ docs/reference/bt-ic/buzztrax-ic.types \ docs/reference/bt-ic/buzztrax-ic-sections.txt \ po/Makefile.in \ src/lib/buzztrax.xml \ src/lib/bml/libbml.pc \ src/lib/core/libbuzztrax-core.pc \ src/lib/core/version.h \ src/lib/gst/libbuzztrax-gst.pc \ src/lib/ic/libbuzztrax-ic.pc \ src/lib/ic/version.h \ tests/bt-cfg.sh \ tests/lib/core/songio/bsl/bt-cfg.sh \ ) AC_OUTPUT if test "x${coverage_tool}" != "x"; then using_coverage_tool="(using ${coverage_tool})" fi echo " Configuration Version : ${PACKAGE_VERSION} Source code location : ${srcdir} Prefix : ${prefix} Compiler : ${CC} Documentation (API) : ${enable_gtk_doc} Documentation (Man) : ${enable_man} Documentation (User) : ${have_scrollkeeper} Bindings Metadata (GIR) : ${enable_gir} Alsa seq. for interaction ctrl. : ${use_alsa} GUdev for interaction ctrl. : ${use_gudev} Linux HID for interaction ctrl. : ${have_linux_input_h} FluidSynth support : ${have_fluidsynth} Zipped Song file support (bzt) : ${use_gsf} x86 win32 buzzmachines : ${enable_dllwrapper} Debug : ${enable_debug} Coverage profiling : ${enable_coverage} ${using_coverage_tool} UI tests on Xvfb : ${have_xvfb} Use of deprecated API : ${enable_deprecated} Check based unit tests : ${have_check} Use valgrind on the tests : ${have_valgrind} " if test "x${use_gudev}" = "xno" -o "x${use_gsf}" = "xno" -o "x${have_fluidsynth}" = "xno" ; then echo " Some features are not built. If you like to have them built, please check that you have the required -devel packages installed and that they can be found in your PKG_CONFIG_PATH ($PKG_CONFIG_PATH). " fi if test ! `echo "$PKG_CONFIG_PATH:/usr" | tr \: \\n | grep $prefix` ; then echo " You are installing buzztrax libraries into a location that is not yet known to system. In order for other buzztrax modules to find them and the application to work with all features please register the location (see README.md for details): export LD_LIBRARY_PATH=$prefix/lib:\$LD_LIBRARY_PATH export MANPATH=\$MANPATH:$prefix/share/man export DEVHELP_SEARCH_PATH="\$DEVHELP_SEARCH_PATH:$prefix/share/gtk-doc/html" export PKG_CONFIG_PATH="\$PKG_CONFIG_PATH:$prefix/lib/pkgconfig" export GST_PLUGIN_PATH_1_0="\$GST_PLUGIN_PATH:$prefix/lib/gstreamer-1.0" export XDG_DATA_DIRS="\$XDG_DATA_DIRS:$prefix/share" export GI_TYPELIB_PATH="\$GI_TYPELIB_PATH:$prefix/lib/girepository" " fi ORC_OUTPUT buzztrax-0.10.2/INSTALL0000644042355400116100000003633211702054470015022 0ustar00ensoniceng00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. 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 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. Running `configure' might take a while. 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, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. 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. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. 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=c99 CFLAGS=-g 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 can use 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 `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer 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. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' 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. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= 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'. 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. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common 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 option `--target=TYPE' 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 causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--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. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. buzztrax-0.10.2/ChangeLog0000644042355400116100000075467112140270546015561 0ustar00ensoniceng000000000000002011-12-25 Stefan Sauer * NEWS: Releasing. 2011-12-23 Stefan Sauer * docs/reference/bt-ic/buzztrax-ic.types.in: Fix leftover -methods.h file references. 2011-12-22 Stefan Sauer * NEWSLETTER: Collect NEWS. 2011-12-22 Stefan Sauer * src/ui/edit/ruler.c: Experiments with log rulers. 2011-12-20 Stefan Sauer * po/LINGUAS: * po/zh_CN.po: * po/zh_CN.po (added): Add new translation. 2011-12-19 Stefan Sauer * configure.ac: * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: * src/ui/cmd/Makefile.am: * src/ui/dec/Makefile.am: * src/ui/edit/Makefile.am: * tests/Makefile.am: Add LIBM check and link it where needed. 2011-12-14 Stefan Sauer * configure.ac: * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: * src/ui/cmd/Makefile.am: * src/ui/edit/Makefile.am: * tests/Makefile.am: Split BT_LIBS into BT_LDFLAGS and BT_LIBS. Sanitize link order. 2011-12-12 Stefan Sauer * src/lib/core/settings.c: Fix choosing a default audiosink. First we were leaking strings. Next we were copying the feature to the name. Also make the procedure smarter - if the plugin in the settings does not exists or is incompatible, disregard it. This improves the situation that might happen after a distro upgrade. 2011-12-12 Stefan Sauer * tests/lib/core/t-sink-machine.c: Add two more tests. 2011-12-08 Stefan Sauer * src/ui/edit/sequence-view.c: Remove leftover define. 2011-12-08 Stefan Sauer * src/lib/core/song.c: Check the right var in g_return_if_fail(). * src/ui/edit/main-toolbar.c: Stop the playback-pos timer when song is stopped. 2011-12-08 Stefan Sauer * src/ui/edit/machine-properties-dialog.c: Don't unref the weak pointer if the object is gone already. 2011-12-08 Stefan Sauer * src/ui/edit/main-statusbar.c: Check the result, to handle the case where we load a new song while playing and we still get some signal emitted for the old song. 2011-12-08 Stefan Sauer * src/lib/core/pattern.c: Fix the enum blending logic even more. 2011-12-08 Stefan Sauer * src/lib/core/persistence.c: * src/ui/edit/main-page-patterns.c: Support the enum note type. 2011-12-08 Stefan Sauer * src/lib/core/libbuzztrax-core/childproxy.h: Whitespace. 2011-12-08 Stefan Sauer * src/lib/ic/control.c: * src/ui/edit/main-page-patterns.c: Use new enums from gst-buzztrax. 2011-12-07 Stefan Sauer * src/lib/core/machine.c: Some elements (like ladspa) don't use "src" and "sink" as pad-names. Scanning the pads lists in that case. 2011-12-07 Stefan Sauer * src/ui/edit/pattern-editor.c: Map keypad numbers to regular numbers. 2011-12-07 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * docs/reference/bt-edit/buzztrax-edit.types: Add the ruler widget to the docs. * src/ui/edit/Makefile.am: * src/ui/edit/panorama-popup.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/ruler.c: * src/ui/edit/ruler.h: * src/ui/edit/signal-analysis-dialog.c: * src/ui/edit/volume-popup.c: * src/ui/edit/vruler.c (deleted): * src/ui/edit/vruler.h (deleted): * src/ui/edit/hruler.c (deleted): * src/ui/edit/hruler.h (deleted): Remove the {h,v}ruler front-ends and add _new method to ruler. 2011-12-06 Stefan Sauer * src/ui/edit/ruler.c: * src/ui/edit/ruler.h: Remember backing-store width and height - no need to used deprecated gdk api to fetch it. 2011-12-06 Stefan Sauer * src/ui/edit/ruler.c: Cleanup the drawing code and add more docs. 2011-12-06 Stefan Sauer * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/signal-analysis-dialog.c: Use gtk_widget_add_events instead of calling set+get. 2011-12-06 Stefan Sauer * src/ui/edit/panorama-popup.c: * src/ui/edit/ruler.c: * src/ui/edit/ruler.h: * src/ui/edit/signal-analysis-dialog.c: * src/ui/edit/volume-popup.c: Add a draw-pos property in our own ruler to get rid of the class method hack. Use the new property to only show the pos-marker in spectrum-view. Clean up the metrics to deal with out unit-range. 2011-12-05 Stefan Sauer * src/ui/edit/sequence-view.c: Improve positioning of the playline to avoid cairo spreading the line over pixel boundaries. Also make invalidation area 1 pixel taller to fix left-over lines when seeking backwards. 2011-12-04 Stefan Sauer * src/ui/cmd/bt-cmd.c: * src/ui/edit/bt-edit.c: * tests/m-bt-cmd.c: * tests/m-bt-core.c: * tests/m-bt-edit.c: * tests/m-bt-ic.c: Enclose deprecated g_thread api in ifdefs. 2011-12-04 Stefan Sauer * design/gobject/gobjectnotify.c: * design/hal/halwatch.c: Update test apps. g_thread_init() is deprecated in glib 2.31 and was already commented out in the examples. 2011-12-04 Stefan Sauer * src/ui/edit/sequence-view.c: Use the right window for the overlay lines. 2011-12-04 Stefan Sauer * src/ui/edit/tools.h: And commit the replacement api. 2011-12-04 Stefan Sauer * src/ui/edit/settings-page-audiodevices.c: Replace more deprecated combo_box test api. 2011-12-04 Stefan Sauer * src/ui/edit/sequence-view.c: Convert from gdk to cairo. 2011-12-04 Stefan Sauer * src/ui/edit/ruler.c: Fix the widgets. 2011-12-04 Stefan Sauer * src/ui/edit/Makefile.am: * src/ui/edit/gtkvumeter.c: * src/ui/edit/hruler.c: * src/ui/edit/hruler.h: * src/ui/edit/panorama-popup.c: * src/ui/edit/ruler.c: * src/ui/edit/ruler.h: * src/ui/edit/signal-analysis-dialog.c: * src/ui/edit/volume-popup.c: * src/ui/edit/vruler.c: * src/ui/edit/vruler.h: * src/ui/edit/hruler.h (svn:keywords, svn:eol-style): * src/ui/edit/vruler.h (svn:keywords, svn:eol-style): * src/ui/edit/hruler.c (svn:keywords, svn:eol-style): * src/ui/edit/vruler.c (svn:keywords, svn:eol-style): * src/ui/edit/ruler.c (svn:keywords, svn:eol-style): * src/ui/edit/ruler.h (svn:keywords, svn:eol-style): * src/ui/edit/ruler.h (added): * src/ui/edit/vruler.c (added): * src/ui/edit/vruler.h (added): * src/ui/edit/hruler.c (added): * src/ui/edit/hruler.h (added): * src/ui/edit/ruler.c (added): Add a copy of gtk's former ruler widget. 2011-12-04 Stefan Sauer * src/ui/edit/panorama-popup.c: * src/ui/edit/tools.h: My editors save-all is broekn, great. Too more files belonging to the commit two down below. 2011-12-04 Stefan Sauer * src/ui/edit/volume-popup.c: Fix wrong gtk_widget_hide_all() replacement. 2011-12-04 Stefan Sauer * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-window.c: * src/ui/edit/panorama-popup.c: * src/ui/edit/render-dialog.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/signal-analysis-dialog.c: * src/ui/edit/tools.h: * src/ui/edit/volume-popup.c: Replace more deprecated API (mainly combobox-text). 2011-12-03 Stefan Sauer * configure.ac: Fix deprecation flags. 2011-12-03 Stefan Sauer * src/ui/edit/about-dialog.c: And two more deprecated functions replaced. 2011-12-03 Stefan Sauer * src/ui/edit/about-dialog.c: * src/ui/edit/crash-recover-dialog.c: * src/ui/edit/tip-dialog.c: Remove 3 function that got deprecated without replacement in gtk 2.24. 2011-12-03 Stefan Sauer * po/cs.po: * po/da.po: * po/de.po: * po/fi.po: * po/fr.po: * po/id.po: * po/nl.po: * po/nn.po: * po/vi.po: Update translations from translationproject.org 2011-12-02 Stefan Sauer * NEWSLETTER: Wrote and send newsletter. 2011-12-02 Stefan Sauer * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: * tests/Makefile.am: Fix left over files (make distcheck warnings). 2011-12-01 Stefan Sauer * configure.ac: * docs/reference/bt-ic/Makefile.am: * docs/reference/bt-ic/buzztrax-ic-docs.sgml: * docs/reference/bt-ic/buzztrax-ic-sections.txt.in: * src/lib/ic/Makefile.am: * docs/reference/bt-ic/buzztrax-ic-sections.txt.in (added): * docs/reference/bt-ic/buzztrax-ic-sections.txt (deleted): Make doc sections fully conditional. 2011-12-01 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: Doc maintenance. 2011-12-01 Stefan Sauer * po/POTFILES.in: * src/ui/edit/Makefile.am: Fix desktop file handling (again). 2011-12-01 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-sections.txt: Doc maintenance. 2011-12-01 Stefan Sauer * tests/bt-edit-cli.sh: * tests/xmlvalid.sh: Test script cleanups. 2011-12-01 Stefan Sauer * src/lib/core/libbuzztrax-core/song.h: Forgot to save the file. This belongs to last commit. 2011-12-01 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/song.c: The xml pipeline stuff is deprecated upstream and removed in 0.11. Its also of limited use, so remove it too. 2011-12-01 Stefan Sauer * src/lib/core/setup.c: Add a ref to a commit that helps us a bit. * tests/lib/core/e-network.c: Split the dynamic linking tests. 2011-11-29 Stefan Sauer * docs/help/bt-edit/C/buzztrax-edit.xml: Small doc update. 2011-11-29 Stefan Sauer * design/gst/dynlink3.c: * design/gst/dynlink3.sh: Add more checks for return values. 2011-11-27 Stefan Sauer * src/lib/core/machine.c: * src/lib/core/wire.c: Fix warnings about droping const. 2011-11-25 Stefan Sauer * design/input/gstinput.c: Make fake input toy more flexible. 2011-11-25 Stefan Sauer * design/gst/dynlink3.c: 0.11 porting. 2011-11-15 Stefan Sauer * design/gst/dynlink3.c: * design/input/gstinput.c: * design/input/uinput.c: * src/lib/core/setup.c: * src/lib/core/sink-bin.c: * design/input/uinput.c (added): * design/input/gstinput.c (added): More examples. 2011-11-08 Stefan Sauer * src/lib/ic/input-device.c: Add a missing cast to avoid reinterpreting the values in a wrong way (caused skips in controller movements). 2011-11-02 Stefan Sauer * design/gst/tonematrix.c: Add tempo and scale controls. 2011-11-02 Stefan Sauer * design/gst/tonematrix.c: More de-crufting. 2011-11-02 Stefan Sauer * design/gst/tonematrix.c: Remove some cruft and add more comments. 2011-11-02 Stefan Sauer * design/gst/tonematrix.c: * design/gst/tonematrix.c (added): Add a toy example. 2011-10-28 Stefan Sauer * src/lib/core/setup.c: More debug logging. 2011-10-28 Stefan Sauer * src/lib/core/setup.c: Refactor updating play_seek_event, remove dead code. 2011-10-26 Stefan Sauer * src/lib/core/song.c: Update comments. 2011-10-26 Stefan Sauer * design/gst/controller.c: * design/gst/dynlink2.c: * design/gst/dynlink3.c: * design/gst/dynlink4.c: * design/gst/dynlink4.sh: * design/gst/seekinit.c: * design/gst/dynlink4.sh (svn:executable): * design/gst/seekinit.c (added): * design/gst/dynlink4.sh (added): * design/gst/dynlink4.c (added): More test apps and cleanups in the others. 2011-10-20 Stefan Sauer * design/gst/dynlink3.sh: * design/gst/dynlink3.sh (svn:executable): * design/gst/dynlink3.sh (added): * design/gst/dynlink2.sh (added): * design/gst/dynlink.sh (deleted): It is easier to have two scripts. 2011-10-20 Stefan Sauer * design/gst/dynlink.sh: * design/gst/dynlink2.c: * design/gst/dynlink3.c: * design/gst/dynlink.sh (added): * design/gst/dynlink3.c (added): * design/gst/dynlink2.sh (deleted): More test code. 2011-10-19 Stefan Sauer * src/lib/core/song.c: * src/ui/edit/signal-analysis-dialog.c: Comments and logging. 2011-10-19 Stefan Sauer * src/lib/core/wire.c: Lower latency. 2011-10-13 Stefan Sauer * src/lib/core/sink-bin.c: Add (commented out) hack to record in realtime. * src/ui/edit/render-progress.c: Actually return the proper code on EOS to not always remove the file. 2011-10-13 Stefan Sauer * src/ui/edit/render-progress.c: Improve error handling. Delete partial output files on error. 2011-10-13 Stefan Sauer * src/lib/core/sink-bin.c: Add a queue in record+play mode to play branch as well. 2011-10-13 Stefan Sauer * src/lib/core/song.c: Also stop if pipeline is not in NULL state. This helps to stop in error cases. 2011-10-13 Stefan Sauer * src/lib/core/machine.c: Ensure unique machine names. * tests/lib/core/t-machine.c: Add a test for renaming failure. 2011-10-13 Stefan Sauer * design/gst/dynlink2.c: Check more return codes. Cleanup the signal watch. Do a seek to kickstart the pipeline. 2011-10-13 Stefan Sauer * design/gst/dynlink2.c: Turn printf into locking. * design/gst/dynlink2.sh: * design/gst/dynlink2.sh (svn:executable): * design/gst/dynlink2.sh (added): Add starter for convenience. 2011-10-13 Stefan Sauer reviewed by: patch by: * design/gst/dynlink2.c: * po/cs.po: * po/da.po: * po/de.po: * po/fi.po: * po/fr.po: * po/id.po: * po/nl.po: * po/nn.po: * po/vi.po: * src/lib/core/setup.c: 2011-10-12 Stefan Sauer * design/gst/dynlink.c: Cleanups. * design/gst/dynlink2.c: * design/gst/dynlink2.c (added): Another test program. 2011-10-07 Stefan Sauer * AUTHORS: * src/ui/edit/about-dialog.c: More translation preps. 2011-10-07 Stefan Sauer * README: Update README. * src/ui/edit/crash-recover-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/signal-analysis-dialog.c: * src/ui/edit/tip-dialog.c: Spell check ui strings. 2011-10-07 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/core.c: * src/lib/core/libbuzztrax-core/core.h: * src/lib/core/tools.c: * tests/m-bt-cmd.c: * tests/m-bt-core.c: * tests/m-bt-edit.c: Improve valgrinding experience in the tests by explicitly cleaning up at the end of tests. 2011-10-07 Stefan Sauer * buzztrax.supp: Add a test function to the suppressions. 2011-10-07 Stefan Sauer * src/lib/core/setup.c: Cleanup docs and comments. Fix the graph depth for wires. 2011-10-04 Stefan Sauer * src/lib/core/setup.c: Improve pad_block handling. 2011-10-04 Stefan Sauer * src/lib/core/wave.c: Don't leak the pipeline. 2011-10-04 Stefan Sauer * src/lib/core/machine.c: * src/lib/core/wire.c: Add assert to ensure that we don't create existing objects and leak the previous instances. 2011-10-04 Stefan Sauer * tests/lib/core/t-source-machine.c: Fix bogus test. 2011-10-04 Stefan Sauer * NEWSLETTER: Wrote and sent NEWS. * TODO: Update TODO. 2011-10-04 Stefan Sauer * tests/songs/melo5.xml: Also commit song that I forgot to save. 2011-10-04 Stefan Sauer * buzztrax.supp: Update the suppression file. 2011-10-04 Stefan Sauer * tests/Makefile.am: * tests/songs/buzz1.xml: * tests/songs/buzz2.xml: * tests/songs/buzz3.xml: * tests/songs/buzz4.xml: * tests/songs/buzz5.xml: * tests/songs/buzz9.xml: * tests/songs/combi1.xml: * tests/songs/combi2.xml: * tests/songs/combi3.xml: * tests/songs/melo2.xml: * tests/songs/melo5.xml: * tests/songs/melo6.xml: * tests/songs/melo6.xml (added): Tune the demo songs a bit. Replace some binary only buzz machines with ported machines. 2011-10-04 Stefan Sauer * src/ui/edit/main-window.c: Don't deref song==NULL. Add a todo comment. 2011-09-29 Stefan Sauer * tests/lib/core/e-song-io-native.c: Don't leak the wavelevel from the test. 2011-09-29 Stefan Sauer * src/lib/core/song.c: Also kill the timeout when stopping the stop. * tests/lib/core/t-network.c: * tests/lib/core/t-song.c: Stop the song in the tests. 2011-09-28 Stefan Sauer * tests/lib/core/e-song-io-native.c: More logging. 2011-09-28 Stefan Sauer * src/lib/core/wire.c: Don't do pad_blocking for deactive wires when add/remove wire- analyzers. Fixes #29 2011-09-28 Stefan Sauer * src/lib/core/setup.c: Disable locking src-pads when removing elements. That is not needed, as we stop the elements anyway and also remove them. 2011-09-26 Stefan Sauer * tests/lib/core/e-song-io-native.c: No need to create an extra test sample. 2011-09-26 Stefan Sauer * src/lib/core/setup.c: A better fix for the lockup in when dynamically editing a song. The locked_state order did not help and eventually made it worse. The key is to not block the pad if it is flushing. 2011-09-23 Stefan Kost * src/lib/core/setup.c: * tests/lib/core/e-network.c: Add more logging. Fix oder of changing the element state and locking to prevent lockup. 2011-09-22 Stefan Sauer * src/ui/edit/main-menu.c: Don't leak recent_info. 2011-09-21 Stefan Sauer * NEWSLETTER: Start writing down what we did this month. * buzztrax.supp: Update suppression file. 2011-09-21 Stefan Sauer * src/ui/edit/main-page-sequence.c: * src/ui/edit/sequence-grid-model.c: Don't leak strings in the model and filters. 2011-09-20 Stefan Sauer * src/lib/core/pattern.c: * src/ui/edit/edit-application.c: Some logging cleanup. * tests/Makefile.am: Small valgrind test tweaks. 2011-09-20 Stefan Sauer * src/ui/edit/pattern-list-model.c: Fix leak of pattern ref. 2011-09-20 Stefan Sauer * src/ui/edit/main-window.c: Don't leak "since" string for unsaved-changes warning message. 2011-09-16 Stefan Sauer * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/processor-machine.c: * src/lib/core/sequence.c: * src/lib/core/setup.c: * src/lib/core/sink-machine.c: * src/lib/core/song.c: * src/lib/core/source-machine.c: * src/lib/core/wire.c: * src/ui/edit/edit-application.c: * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: Unify logging of ref_ct more to easy grepping. 2011-09-16 Stefan Sauer * src/ui/edit/main-pages.c: * src/ui/edit/tools.c: * src/ui/edit/tools.h: Add an env-var that allows us in debug mode to configure a few things in the UI for easier testing. 2011-09-16 Stefan Sauer * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/main-page-sequence.c: Unify logging of ref_ct more to easy grepping. 2011-09-16 Stefan Sauer * src/lib/core/machine.c: Make debugging code more clearly. * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/ui-resources.c: * src/ui/edit/wire-canvas-item.c: Unify logging of ref_ct more to easy grepping. 2011-09-16 Stefan Sauer * src/ui/edit/change-log.c: But also don't use an invalidated filename. 2011-09-16 Stefan Sauer * src/ui/edit/change-log.c: Don't overwrite (and leak) the ptr array. 2011-09-16 Stefan Sauer * src/ui/edit/pattern-editor.c: Chain-up in unrealize() to not leak the gdk_window. 2011-09-16 Stefan Sauer * src/ui/edit/machine-list-model.c: Don't leak pixbufs. 2011-09-15 Stefan Sauer * src/ui/edit/main-menu.c: Use change_log from instance instead of getting a new one. 2011-09-15 Stefan Sauer * src/ui/edit/machine-list-model.c: * src/ui/edit/pattern-list-model.c: Remove weak pointers in dispose. 2011-09-15 Stefan Sauer * src/lib/core/song.c: Also disconnect signal handler on async done. 2011-09-15 Stefan Sauer * src/lib/ic/abs-range-control.c: * src/lib/ic/input-device.c: * src/lib/ic/libbuzztrax-ic/abs-range-control.h: Use long for the parameters. Makes valgrind happy on 64 bit too. 2011-09-15 Stefan Sauer * configure.ac: Improve valgrind detection. 2011-09-15 Stefan Sauer * tests/bt-check.c: Raise the memory limmit for the tests from 256Mb to 1Gb. That fixes the tests on 64bit. * tests/m-bt-cmd.c: * tests/m-bt-core.c: * tests/m-bt-edit.c: * tests/m-bt-ic.c: Cleanup the tests. 2011-09-15 Stefan Sauer * docs/help/bt-edit/C/aspell.pws: * docs/help/bt-edit/C/buzztrax-edit.xml: Spell check docs. 2011-09-15 Stefan Sauer * src/ui/edit/main-page-info.c: Disconnect on_song_changed in dispose. Fixes the tests even more. 2011-09-15 Stefan Sauer * NEWSLETTER: Sent news. 2011-09-14 Stefan Kost * src/ui/edit/main-page-sequence.c: Disconnect on_song_changed in dispose. Fixes the tests. 2011-09-14 Stefan Kost * po/POTFILES.in: Add new file. 2011-09-07 Stefan Sauer * tests/lib/core/e-sequence.c: Disable a failing test and explain. * tests/m-bt-edit.c: Move g_set_appname() so that we don't call it multiple times when running with fork disabled. 2011-08-31 Stefan Sauer * src/ui/edit/main-page-machines.c: Cache the setup in the instance to avoid lots of lookups. 2011-08-30 Stefan Sauer * src/ui/edit/main-page-machines.c: Implement 'unmute all'. 2011-08-30 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-canvas-item.h: * src/ui/edit/wire-canvas-item.c: Add more properties to make the dialog state trackable. 2011-08-30 Stefan Sauer * src/ui/edit/main-page-patterns.c: Fix newlines in changelog after column edits. 2011-08-30 Stefan Sauer * src/ui/edit/main-page-patterns.c: Undo/redo for wire-params on wire-removal. 2011-08-30 Stefan Sauer * src/ui/edit/main-page-machines.c: No need to log position on removal as we track position now. 2011-08-30 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/main-page-machines.c: * src/ui/edit/wire-canvas-item.c: * src/ui/edit/wire-canvas-item.h: Undo/Redo for machine property window and wire analyzer window. 2011-08-29 Stefan Sauer * src/ui/edit/main-page-machines.c: Fix ',' -> '.' bug in sources. Dunno how this ever worked. 2011-08-29 Stefan Sauer * src/ui/edit/main-page-machines.c: Prepare to handle more machine/wire state for undo/redo. 2011-08-29 Stefan Sauer * src/ui/edit/sequence-grid-model.c: Log improvements. 2011-08-29 Stefan Sauer * src/lib/core/marshal.list: * src/lib/core/sequence.c: Add track-{added,removed} signals. * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Rework undo redo for machine-removed. After a lot of experiments, leave a big comment in bt_main_page_machines_delete_machine() and explain the troubles. Use signal handler blocking as a solution until we have a better idea. 2011-08-29 Stefan Sauer * src/ui/edit/main-page-patterns.c: Remove new lines in changelog caused by single pattern edits. 2011-08-29 Stefan Sauer patch by: davef1@users.sourceforge.net * src/lib/ic/ic_private.h: Fix the build. 2011-08-27 Stefan Sauer * docs/help/bt-edit/C/buzztrax-edit.xml: Improve user-docs on sequence editing (labels and patterns). * src/ui/edit/main-page-sequence.c: Expand sequence on edit (like we did for labels). 2011-08-27 Stefan Sauer * docs/reference/bt-core/Makefile.am: * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/lib/core/libbuzztrax-core/childproxy.h: * src/lib/core/libbuzztrax-core/core.h: * src/lib/core/libbuzztrax-core/machine.h: * src/lib/core/libbuzztrax-core/persistence.h: * src/lib/core/libbuzztrax-core/version.h.in: * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/settings.c: * src/lib/core/setup.c: * src/lib/core/song-info.c: * src/lib/core/song.c: * src/lib/core/wire-pattern.c: * src/ui/edit/change-log.c: * src/ui/edit/change-logger.c: * src/ui/edit/machine-list-model.c: * src/ui/edit/main-page-info.c: * src/ui/edit/object-list-model.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-list-model.c: * src/ui/edit/sequence-grid-model.c: Improve and fix API docs. 2011-08-26 Stefan Sauer * src/ui/edit/Makefile.am: * src/ui/edit/about-dialog.h: * src/ui/edit/bt-edit.h: * src/ui/edit/change-log.h: * src/ui/edit/change-logger.h: * src/ui/edit/crash-recover-dialog.h: * src/ui/edit/edit-application.h: * src/ui/edit/interaction-controller-learn-dialog.h: * src/ui/edit/interaction-controller-menu.h: * src/ui/edit/machine-canvas-item.h: * src/ui/edit/machine-list-model.h: * src/ui/edit/machine-menu.h: * src/ui/edit/machine-preferences-dialog.h: * src/ui/edit/machine-preset-properties-dialog.h: * src/ui/edit/machine-properties-dialog.h: * src/ui/edit/machine-rename-dialog.h: * src/ui/edit/main-menu.h: * src/ui/edit/main-page-info.h: * src/ui/edit/main-page-machines.h: * src/ui/edit/main-page-patterns.h: * src/ui/edit/main-page-sequence.h: * src/ui/edit/main-page-waves.h: * src/ui/edit/main-pages.h: * src/ui/edit/main-statusbar.h: * src/ui/edit/main-toolbar.h: * src/ui/edit/main-window.h: * src/ui/edit/missing-framework-elements-dialog.h: * src/ui/edit/missing-song-elements-dialog.h: * src/ui/edit/object-list-model.h: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-list-model.h: * src/ui/edit/pattern-properties-dialog.h: * src/ui/edit/playback-controller-socket.h: * src/ui/edit/render-dialog.h: * src/ui/edit/render-progress.h: * src/ui/edit/sequence-grid-model.h: * src/ui/edit/sequence-view.h: * src/ui/edit/settings-dialog.h: * src/ui/edit/settings-page-audiodevices.h: * src/ui/edit/settings-page-directories.h: * src/ui/edit/settings-page-interaction-controller.h: * src/ui/edit/settings-page-playback-controller.h: * src/ui/edit/settings-page-shortcuts.h: * src/ui/edit/signal-analysis-dialog.h: * src/ui/edit/tip-dialog.h: * src/ui/edit/ui-resources.h: * src/ui/edit/wire-canvas-item.h: * src/ui/edit/machine-preset-properties-dialog-methods.h (deleted): * src/ui/edit/interaction-controller-learn-dialog-methods.h (deleted): * src/ui/edit/machine-preferences-dialog-methods.h (deleted): * src/ui/edit/machine-menu-methods.h (deleted): * src/ui/edit/settings-page-directories-methods.h (deleted): * src/ui/edit/tip-dialog-methods.h (deleted): * src/ui/edit/about-dialog-methods.h (deleted): * src/ui/edit/machine-list-model-methods.h (deleted): * src/ui/edit/wire-canvas-item-methods.h (deleted): * src/ui/edit/settings-page-audiodevices-methods.h (deleted): * src/ui/edit/render-dialog-methods.h (deleted): * src/ui/edit/sequence-view-methods.h (deleted): * src/ui/edit/render-progress-methods.h (deleted): * src/ui/edit/main-menu-methods.h (deleted): * src/ui/edit/settings-dialog-methods.h (deleted): * src/ui/edit/interaction-controller-menu-methods.h (deleted): * src/ui/edit/pattern-properties-dialog-methods.h (deleted): * src/ui/edit/settings-page-playback-controller-methods.h (deleted): * src/ui/edit/main-pages-methods.h (deleted): * src/ui/edit/main-page-machines-methods.h (deleted): * src/ui/edit/missing-song-elements-dialog-methods.h (deleted): * src/ui/edit/main-window-methods.h (deleted): * src/ui/edit/main-page-sequence-methods.h (deleted): * src/ui/edit/settings-page-interaction-controller-methods.h (deleted): * src/ui/edit/machine-canvas-item-methods.h (deleted): * src/ui/edit/sequence-grid-model-methods.h (deleted): * src/ui/edit/signal-analysis-dialog-methods.h (deleted): * src/ui/edit/playback-controller-socket-methods.h (deleted): * src/ui/edit/change-logger-methods.h (deleted): * src/ui/edit/change-log-methods.h (deleted): * src/ui/edit/machine-rename-dialog-methods.h (deleted): * src/ui/edit/pattern-list-model-methods.h (deleted): * src/ui/edit/edit-application-methods.h (deleted): * src/ui/edit/main-statusbar-methods.h (deleted): * src/ui/edit/main-page-patterns-methods.h (deleted): * src/ui/edit/missing-framework-elements-dialog-methods.h (deleted): * src/ui/edit/main-page-waves-methods.h (deleted): * src/ui/edit/main-toolbar-methods.h (deleted): * src/ui/edit/machine-properties-dialog-methods.h (deleted): * src/ui/edit/crash-recover-dialog-methods.h (deleted): * src/ui/edit/settings-page-shortcuts-methods.h (deleted): * src/ui/edit/object-list-model-methods.h (deleted): * src/ui/edit/ui-resources-methods.h (deleted): * src/ui/edit/main-page-info-methods.h (deleted): Get rid of extra header files (part 4). 2011-08-26 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: Sort entries. * docs/reference/bt-core/buzztrax-core.types.in: Add missing class. 2011-08-26 Stefan Sauer * src/lib/ic/libbuzztrax-ic/abs-range-control.h: * src/lib/ic/libbuzztrax-ic/control.h: * src/lib/ic/libbuzztrax-ic/device.h: * src/lib/ic/libbuzztrax-ic/gudev-discoverer.h: * src/lib/ic/libbuzztrax-ic/hal-discoverer.h: * src/lib/ic/libbuzztrax-ic/ic.h: * src/lib/ic/libbuzztrax-ic/input-device.h: * src/lib/ic/libbuzztrax-ic/midi-device.h: * src/lib/ic/libbuzztrax-ic/registry.h: * src/lib/ic/libbuzztrax-ic/trigger-control.h: Remove some less helpful comments. 2011-08-26 Stefan Sauer * src/lib/core/libbuzztrax-core/song-io-native.h: Re-add extern in one place. * src/ui/cmd/bt-cmd.h: Add missing include change from last commit. 2011-08-26 Stefan Sauer * src/ui/cmd/Makefile.am: * src/ui/cmd/cmd-application.h: * src/ui/cmd/cmd-application-methods.h (deleted): Get rid of extra header files (part 3). 2011-08-26 Stefan Sauer * docs/reference/bt-core/Makefile.am: Skip one more header. 2011-08-26 Stefan Sauer * src/lib/core/Makefile.am: * src/lib/core/libbuzztrax-core/Makefile.am: * src/lib/core/libbuzztrax-core/application.h: * src/lib/core/libbuzztrax-core/childproxy.h: * src/lib/core/libbuzztrax-core/core.h: * src/lib/core/libbuzztrax-core/gconf-settings.h: * src/lib/core/libbuzztrax-core/machine.h: * src/lib/core/libbuzztrax-core/pattern.h: * src/lib/core/libbuzztrax-core/persistence.h: * src/lib/core/libbuzztrax-core/plainfile-settings.h: * src/lib/core/libbuzztrax-core/processor-machine.h: * src/lib/core/libbuzztrax-core/sequence.h: * src/lib/core/libbuzztrax-core/settings.h: * src/lib/core/libbuzztrax-core/setup.h: * src/lib/core/libbuzztrax-core/sink-machine.h: * src/lib/core/libbuzztrax-core/song-info.h: * src/lib/core/libbuzztrax-core/song-io-native-bzt.h: * src/lib/core/libbuzztrax-core/song-io-native-xml.h: * src/lib/core/libbuzztrax-core/song-io-native.h: * src/lib/core/libbuzztrax-core/song-io.h: * src/lib/core/libbuzztrax-core/song.h: * src/lib/core/libbuzztrax-core/source-machine.h: * src/lib/core/libbuzztrax-core/wave.h: * src/lib/core/libbuzztrax-core/wavelevel.h: * src/lib/core/libbuzztrax-core/wavetable.h: * src/lib/core/libbuzztrax-core/wire-pattern.h: * src/lib/core/libbuzztrax-core/wire.h: * src/lib/core/libbuzztrax-core/gconf-settings-methods.h (deleted): * src/lib/core/libbuzztrax-core/wavelevel-methods.h (deleted): * src/lib/core/libbuzztrax-core/song-io-native-xml-methods.h (deleted): * src/lib/core/libbuzztrax-core/song-io-native-methods.h (deleted): * src/lib/core/libbuzztrax-core/settings-methods.h (deleted): * src/lib/core/libbuzztrax-core/plainfile-settings-methods.h (deleted): * src/lib/core/libbuzztrax-core/wave-methods.h (deleted): * src/lib/core/libbuzztrax-core/application-methods.h (deleted): * src/lib/core/libbuzztrax-core/song-methods.h (deleted): * src/lib/core/libbuzztrax-core/wire-methods.h (deleted): * src/lib/core/libbuzztrax-core/sink-machine-methods.h (deleted): * src/lib/core/libbuzztrax-core/sequence-methods.h (deleted): * src/lib/core/libbuzztrax-core/wavetable-methods.h (deleted): * src/lib/core/libbuzztrax-core/song-io-methods.h (deleted): * src/lib/core/libbuzztrax-core/pattern-methods.h (deleted): * src/lib/core/libbuzztrax-core/song-io-native-bzt-methods.h (deleted): * src/lib/core/libbuzztrax-core/song-info-methods.h (deleted): * src/lib/core/libbuzztrax-core/setup-methods.h (deleted): * src/lib/core/libbuzztrax-core/source-machine-methods.h (deleted): * src/lib/core/libbuzztrax-core/machine-methods.h (deleted): * src/lib/core/libbuzztrax-core/sink-bin-methods.h (deleted): * src/lib/core/libbuzztrax-core/processor-machine-methods.h (deleted): * src/lib/core/libbuzztrax-core/wire-pattern-methods.h (deleted): * src/lib/core/libbuzztrax-core/persistence-methods.h (deleted): * src/lib/core/libbuzztrax-core/childproxy-methods.h (deleted): Get rid of extra header files (part 2). 2011-08-25 Stefan Sauer * src/lib/ic/Makefile.am: * src/lib/ic/libbuzztrax-ic/Makefile.am: * src/lib/ic/libbuzztrax-ic/abs-range-control.h: * src/lib/ic/libbuzztrax-ic/device.h: * src/lib/ic/libbuzztrax-ic/gudev-discoverer.h: * src/lib/ic/libbuzztrax-ic/hal-discoverer.h: * src/lib/ic/libbuzztrax-ic/ic.h: * src/lib/ic/libbuzztrax-ic/input-device.h: * src/lib/ic/libbuzztrax-ic/learn.h: * src/lib/ic/libbuzztrax-ic/midi-device.h: * src/lib/ic/libbuzztrax-ic/registry.h: * src/lib/ic/libbuzztrax-ic/trigger-control.h: * src/lib/ic/libbuzztrax-ic/input-device-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/device-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/learn-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/hal-discoverer-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/registry-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/abs-range-control-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/gudev-discoverer-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/midi-device-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/control-methods.h (deleted): * src/lib/ic/libbuzztrax-ic/trigger-control-methods.h (deleted): Get rid of extra header files (part 1). 2011-08-25 Stefan Sauer * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-core/Makefile.am: * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-edit/Makefile.am: * docs/reference/bt-ic/Makefile.am: * src/ui/edit/edit-application.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/sequence-grid-model.h: Update API docs. 2011-08-25 Stefan Sauer * src/ui/edit/main-page-info.c: Clamp beat and tpb values to the paramspec bounds. 2011-08-25 Stefan Sauer * docs/help/bt-edit/C/buzztrax-edit.xml: Explain extra sequence header combo boxes. 2011-08-24 Stefan Sauer * src/lib/core/song-info.c: Improve description. 2011-08-24 Stefan Sauer * src/ui/edit/main-page-sequence.c: * src/ui/edit/sequence-grid-model.c: * src/ui/edit/sequence-grid-model.h: Add a beats position format. 2011-08-24 Stefan Sauer * src/lib/core/sequence.c: Add comments. Remove commented out code. 2011-08-24 Stefan Sauer * docs/help/bt-edit/C/buzztrax-edit.xml: Document the pos-format and label switcher header columns. 2011-08-24 Stefan Sauer * src/ui/edit/main-page-sequence.c: Fix sequence length updates. Before the cursor could get stuck at the end and not be able to expand. 2011-08-24 Stefan Sauer * src/ui/edit/pattern-list-model.c: Fix null ptr access. 2011-08-24 Stefan Sauer * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: Fix GValue type for flip operation. 2011-08-24 Stefan Sauer * docs/help/bt-edit/C/buzztrax-edit.xml: Mention note-off key (1) in manual. 2011-08-23 Stefan Sauer * src/ui/edit/btmemoryaudiosrc.c: Remove "samplesperbuffer" property - not used. * src/ui/edit/machine-preferences-dialog.c: No more need to supress "samplesperbuffer" properties. 2011-08-22 Stefan Sauer * src/ui/edit/machine-preferences-dialog.c: Update the skip_property filter to hide more stuff from base classes and interfaces. 2011-08-22 Stefan Sauer * src/lib/core/sink-bin.c: * src/ui/edit/main-toolbar.c: Fix master-volume synch between toolbar and master properties window. Spotted by waffel. 2011-08-22 Stefan Sauer * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: Also set the tooltips on the label. 2011-08-21 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/song-methods.h: * src/lib/core/song-io.c: * src/lib/core/song.c: * src/ui/edit/change-log.c: * src/ui/edit/edit-application.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/render-progress.c: * tests/lib/core/e-song.c: * tests/ui/edit/e-bt-edit-application.c: Big refactoring moving the unsaved state out of the core library to the application. This avoids such state tracking in the library, which might need to be done differently for different apps. 2011-08-21 Stefan Sauer * src/lib/core/wave.c: * src/lib/core/wavetable.c: * src/ui/edit/main-page-waves.c: Move flagging wave related changes to UI. Flag more changes to be able to save afterwards. Add notes for undo/redo. Avoid signal loops. Fixes bug #21. 2011-08-21 Stefan Sauer * src/ui/edit/main-page-info.c: Small todo planning update. 2011-08-21 Stefan Sauer * src/ui/edit/main-page-info.c: Store song_info in instance to avoid lookup for each edit. * src/ui/edit/main-page-sequence.c: May on song_change code more robust for sequence ref in instance. 2011-08-21 Stefan Sauer * src/lib/core/song-info.c: * src/ui/edit/main-page-info.c: Move flagging info fields to the UI. 2011-08-21 Stefan Sauer * src/lib/core/sequence.c: * src/ui/edit/main-toolbar.c: Move flagging loop related changes to the UI. 2011-08-21 Stefan Sauer * src/lib/core/machine.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-sequence.c: Move flagging machine::state changes to the UI. 2011-08-21 Stefan Sauer * src/ui/edit/main-window.c: Only warn about unsaved songs when having things in the undo/redo stack. 2011-08-21 Stefan Sauer * src/ui/edit/main-page-patterns.c: Fix NULL ptr access when removing last pattern for a machine. 2011-08-21 Stefan Sauer * src/ui/edit/main-page-machines.c: Fix grouping of undo/redo for new machines. 2011-08-21 Stefan Sauer * src/lib/core/machine.c: * src/lib/core/sequence.c: * src/lib/core/setup.c: * src/lib/core/wire-pattern.c: Remove more song_set_set_unsaved() calls. 2011-08-21 Stefan Sauer * NEWSLETTER: * TODO: Collect NEWS. More planning comments. 2011-08-21 Stefan Sauer * src/ui/edit/main-page-sequence.c: Take new grid-model into use. 2011-08-21 Stefan Sauer * src/lib/core/sequence.c: Add a rows-changed signal to notify of edits. * src/ui/edit/main-page-sequence.c: #ifdef out more of the refreshing code. * src/ui/edit/sequence-grid-model.c: Use the new signal. 2011-08-20 Stefan Sauer * ChangeLog-0.1: * ChangeLog-0.2: * ChangeLog-0.3: * ChangeLog-0.4: * ChangeLog-0.5: * ChangeLog-0.1 (added): * ChangeLog-0.2 (added): * ChangeLog-0.3 (added): * ChangeLog-0.4 (added): * ChangeLog-0.5 (added): Split ChangeLog 2011-08-20 Stefan Sauer * src/ui/edit/main-page-sequence.c: Add more #ifdefs for list_store access. 2011-08-20 Stefan Sauer * src/ui/edit/sequence-grid-model.c: Handle pattern=NULL when updating after pattern renames. 2011-08-20 Stefan Sauer * src/ui/edit/tip-dialog.c: Add the missing ',' for tips entries. 2011-08-20 Stefan Sauer * src/ui/edit/tip-dialog.c: Add more tips. 2011-08-20 Stefan Sauer * src/ui/edit/main-page-patterns.c: Remember machine and pattern when saving a song. 2011-08-20 Stefan Sauer * src/lib/core/machine.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-page-machines.c: Undo/redo for renaming the machine. Also be more cautios on flagging the song as dirty on canvas scroll events. 2011-08-20 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-machines-methods.h: * src/ui/edit/main-page-machines.c: Move the machine-rename dialog handling to mchine page for undo/redo handling. 2011-08-19 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/edit-application-methods.h: * src/ui/edit/edit-application.c: A convenience method for marking the song as dirty. Avoids getting the song first and help us to later move the flag. * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-sequence.c: Call the new method. 2011-08-19 Stefan Sauer * src/lib/core/song.c: * src/ui/edit/change-logger.h: Add more comments, docs and planning. 2011-08-19 Stefan Sauer * src/lib/core/pattern.c: Don't mark the song as dirty here anymore (more such changes needed). * src/ui/edit/edit-application.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: Merge the song::unsaved + change-log::can-undo. This way we can and a change and the song is clean again. 2011-08-19 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * docs/reference/bt-edit/buzztrax-edit.types: * docs/reference/bt-ic/buzztrax-ic-sections.txt: * src/lib/core/libbuzztrax-core/sequence-methods.h: * src/lib/core/sequence.c: * src/lib/ic/learn.c: * src/ui/edit/btmemoryaudiosrc.h: * src/ui/edit/change-logger.h: * src/ui/edit/edit-application-methods.h: Update the API docs. 2011-08-19 Stefan Sauer * src/ui/edit/main-page-patterns.c: Don't chomp undo/redo strings as the whitespace matters. 2011-08-18 Stefan Sauer * src/ui/edit/pattern-editor.c: Add a ',' to font-names to make sure the last word is not tried to be interpreted as size. 2011-08-16 Stefan Sauer * src/ui/edit/main-page-sequence.c: Small rename for consistency. 2011-08-16 Stefan Sauer * src/lib/core/machine.c: * src/lib/core/setup.c: Fix property description. * src/lib/core/sequence.c: Add a properties hashtable to sequence as well. * src/ui/edit/main-page-machines.c: Add todo. * src/ui/edit/main-page-sequence.c: Remember step-filter and position-format with song. 2011-08-16 Stefan Sauer * src/ui/edit/change-log.c: Add more todo/design comments. 2011-08-16 Stefan Sauer * src/lib/ic/input-device.c: Fix two "variable set but not used [-Werror=unused-but-set-variable]" warnings. 2011-08-16 Stefan Sauer * src/lib/core/sequence.c: TODO comments. * src/ui/edit/main-page-sequence.c: * src/ui/edit/sequence-grid-model.c: Improvements on the grid-model use. Replace extra label-menu-model with a filtered model on the sequence-{list-store,grid-model}. Split refresh code into model and view (column) refresh. 2011-08-11 Stefan Sauer * src/ui/edit/main-page-machines.c: Emit position-changed signal after undo of machine movement to update the wire-line. Fixes #6 2011-08-11 Stefan Sauer * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-sequence.c: Fix synchronisation of mute/solo/bypass state between machine and sequence view. 2011-08-11 Stefan Sauer * src/lib/core/machine.c: Assume state=NORMAL if not present. Don't parse NULL and crash. 2011-08-11 Stefan Sauer * src/lib/core/machine.c: Save machine state with song. Fixes #14. 2011-08-10 Stefan Sauer * src/ui/edit/machine-properties-dialog.c: Remember the state of the preset-pane. Fixes #8. 2011-08-10 Stefan Sauer * src/ui/edit/main-page-patterns.c: Track base-octave settings per machine and also save with the song. Fixes #16. 2011-08-10 Stefan Sauer * src/ui/edit/Makefile.am: Add missing makefile changes from last commit. * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-shortcuts.c: More planning. 2011-08-10 Stefan Sauer * src/ui/edit/bt-edit.h: * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-shortcuts-methods.h: * src/ui/edit/settings-page-shortcuts.c: * src/ui/edit/settings-page-shortcuts.h: * src/ui/edit/settings-page-shortcuts.c (added): * src/ui/edit/settings-page-shortcuts.h (added): * src/ui/edit/settings-page-shortcuts-methods.h (added): Add empty settings page for planning. 2011-08-10 Stefan Sauer * src/ui/edit/settings-page-directories.c: Remove some left-overs from copying that file. 2011-08-09 Stefan Sauer * src/lib/ic/device.c: * src/lib/ic/gudev-discoverer.c: Swap the name-lookup order. Otherwise we seem to end up with two variants of names. * src/lib/ic/learn.c: Fix typo in log message * src/ui/edit/interaction-controller-menu.c: Ensure we don't register signal handler twice. 2011-08-09 Stefan Sauer * src/ui/edit/main-window.c: * tests/bt-check.c: Comments. 2011-08-09 Stefan Sauer * src/ui/edit/main-page-machines.c: * src/ui/edit/ui-resources.c: More logging for startup time analysis. 2011-08-09 Stefan Sauer * src/ui/edit/interaction-controller-menu.c: Also update menu when we plug/unplug devices. 2011-08-09 Stefan Sauer * src/ui/edit/interaction-controller-menu.c: Switch menu insensitive if we don't have controllers. Also don't create and add an empty submenu in that case. 2011-08-09 Stefan Sauer * src/lib/ic/gudev-discoverer.c: * src/lib/ic/input-device.c: Add a access check to skip device-nodes we can't read from earlier. Tweak logging and comments. 2011-08-09 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/settings.c: * src/lib/core/tools.c: * src/ui/edit/machine-menu.c: * src/ui/edit/settings-page-audiodevices.c: Add a variant of the registry filter helper that gives us a list of factories instead of factory names. We need the factories anyway for further filtering and this way avoid the lookups. 2011-08-09 Stefan Sauer * src/ui/edit/main-page-sequence.c: * src/ui/edit/sequence-grid-model.c: Improve the sequence grid model and take it conditionally into use (off by default). 2011-08-07 Stefan Sauer * design/gui/initfocus.c: * design/gui/initfocus.c (added): Small focus test program. 2011-08-07 Stefan Sauer * src/ui/edit/machine-properties-dialog.c: Set focus on the first parameter, when we show the window. 2011-08-05 Stefan Sauer * src/ui/edit/main-page-sequence.c: * src/ui/edit/sequence-grid-model.c: Prepare using the new sequence grid model. 2011-08-05 Stefan Sauer * src/ui/edit/main-page-sequence.c: Remove fetching and releasing the song here (not used). 2011-08-05 Stefan Sauer * tests/bt-check.c: * tests/bt-check.h: * tests/ui/edit/e-bt-edit-application.c: Improve the screenshot code. We now have match flags and also can match by containing label widgets. Also refactor the code more and add drop-shadow generation. No need to run external scripts anymore. 2011-08-04 Stefan Sauer * tests/bt-check.c: * tests/bt-check.h: * tests/ui/edit/e-bt-edit-application.c: Cleanup the screenshot implementation and add a first version of annotated screenshots. 2011-08-04 Stefan Sauer * src/lib/ic/gudev-discoverer.c: Logging cleanup. 2011-08-04 Stefan Sauer * configure.ac: Add more more optional dependency, that people would probably still rather have than miss. 2011-08-03 Stefan Sauer * src/lib/ic/midi-device.c: Logging cleanup. 2011-08-03 Stefan Sauer * configure.ac: Show if we are going to run the tests using Xvfb. 2011-08-02 Stefan Sauer * NEWSLETTER: Sent NEWS. 2011-08-02 Stefan Sauer * docs/reference/bt-cmd/tmpl/.cvsignore (deleted): * docs/reference/bt-edit/tmpl/.cvsignore (deleted): * docs/reference/bt-core/tmpl/.cvsignore (deleted): * docs/reference/bt-ic/tmpl/.cvsignore (deleted): Remove more files we don't need anymore. 2011-08-02 Stefan Sauer * docs/reference/bt-cmd/tmpl/_dummy.sgml (deleted): * docs/reference/bt-edit/tmpl/_dummy.sgml (deleted): * docs/reference/bt-core/tmpl/_dummy.sgml (deleted): * docs/reference/bt-ic/tmpl/_dummy.sgml (deleted): Remove files we don't need anymore. 2011-08-01 Stefan Sauer * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/pattern-properties-dialog.c: Use api from gtk-2.20 if we have it. 2011-08-01 Stefan Sauer * src/ui/edit/interaction-controller-learn-dialog.c: Make okay insensitive unless we have detected a control. Add a label telling people what to do. 2011-08-01 Stefan Sauer * src/lib/ic/learn.c: Change the device name in *all* the places where it matters. 2011-08-01 Stefan Sauer * src/lib/ic/learn.c: Fix the mkdir call for creating the controller-maps dir. Improve the file naming by chopping off the protocol prefix. 2011-08-01 Stefan Sauer reviewed by: patch by: * NEWSLETTER: * src/lib/core/sink-bin.c: * src/lib/ic/learn.c: 2011-08-01 Stefan Sauer * TODO: * src/ui/edit/change-log.c: Undo/redo documentation updates. * src/ui/edit/main-page-patterns.c: Implement voice add/remove. * src/ui/edit/main-page-sequence.c: Undo/redo planning. 2011-08-01 Stefan Sauer * docs/reference/bt-ic/buzztrax-ic-sections.txt: * src/lib/ic/abs-range-control.c: * src/lib/ic/control.c: * src/lib/ic/device.c: * src/lib/ic/input-device.c: * src/lib/ic/learn.c: * src/lib/ic/libbuzztrax-ic/abs-range-control-methods.h: * src/lib/ic/libbuzztrax-ic/device-methods.h: * src/lib/ic/libbuzztrax-ic/learn-methods.h: * src/lib/ic/libbuzztrax-ic/trigger-control-methods.h: * src/lib/ic/midi-device.c: * src/lib/ic/trigger-control.c: Implement cache for learned controls. Refactor the code base to have the controller hashtables in the device base-class. 2011-07-28 Stefan Sauer * src/lib/core/song.c: Reset song-info:change-dts on first change to unsaved. This fixes us showing huge timespan of unsaved edits when loading a song and changing it. 2011-07-28 Stefan Sauer * TODO: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Collect remaining undo/redo tasks. 2011-07-27 Stefan Sauer * src/ui/edit/machine-list-model.c: Disconnect signal handlers when destroying model. 2011-07-27 Stefan Sauer * src/ui/edit/machine-list-model.c: Fix the comparison, return values are not -1,0,1, but <=> 0 2011-07-27 Stefan Sauer * src/ui/edit/machine-list-model.c: * src/ui/edit/pattern-list-model.c: Add more logging. 2011-07-27 Stefan Sauer * src/ui/edit/pattern-list-model.c: Fix a NULL ptr deref. 2011-07-25 Stefan Sauer * src/lib/core/song.c: Commenting and downgrade some logging again. 2011-07-25 Stefan Sauer * TODO: * src/lib/core/sink-bin.c: * src/ui/edit/settings-page-audiodevices.c: Planning. 2011-07-25 Stefan Sauer * src/ui/edit/main-page-patterns.c: Use correct type to fix a crash on 64bit. 2011-07-24 Stefan Sauer * design/gst/loop2.c: * design/gst/loop3.c: * design/gst/loop3.c (added): Improve the tests. We're getting closer. 2011-07-22 Stefan Sauer * docs/reference/bt-cmd/buzztrax-cmd-docs.sgml: * docs/reference/bt-core/buzztrax-core-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-ic/buzztrax-ic-docs.sgml: Update the introduction. 2011-07-21 Stefan Sauer * src/lib/core/tools.c: Make the element check a bit safer. 2011-07-18 Stefan Sauer * design/gst/loop2.c: Add comments. * src/lib/core/sink-bin.c: Put some ifdef'ed testing code back. 2011-07-18 Stefan Sauer * src/ui/edit/main-toolbar.c: Tune the scrubbing values a bit and add a define for the max-rate. 2011-07-18 Stefan Sauer * src/ui/edit/settings-page-audiodevices.c: And also hide sinks with RANK_NONE (e.g. hides apexsink). 2011-07-18 Stefan Kost * src/ui/edit/settings-page-audiodevices.c: Hide sinks not derived from BaseAudioSink (e.g. hides sfsink). 2011-07-18 Stefan Kost * design/gst/loop2.c: Add more notes to the test. * src/lib/core/sink-bin.c: Add/update some comments. 2011-07-16 Stefan Kost * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/sequence-grid-model-methods.h: * src/ui/edit/sequence-grid-model.c: * src/ui/edit/sequence-grid-model.h: * src/ui/edit/sequence-grid-model-methods.h (added): * src/ui/edit/sequence-grid-model.c (added): * src/ui/edit/sequence-grid-model.h (added): Add start of new data model. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-sequence.c: Remove unused variable. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-sequence.c: Fix typo in log. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-sequence.c: Take out log to warning changes that are only meant to be temporal. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-patterns.c: Added comment with idea about the remaining undo/redo issue. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-patterns.c: Remove unneeded updates. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-patterns.c: Added some logging to check for double updates. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-patterns.c: Update selected item in pattern-menu on model changes. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-patterns.c: We need to make a copy of the treepath when changing it. 2011-07-11 Stefan Sauer * src/ui/edit/main-page-machines.c: Update comments. 2011-07-11 Stefan Sauer * src/lib/core/sequence.c: Swap an _unref with an _unuse. 2011-07-11 Stefan Sauer * src/lib/ic/learn.c: * src/ui/edit/settings-page-playback-controller.c: Planning. 2011-07-09 Stefan Sauer * docs/help/bt-edit/C/buzztrax-edit.xml: Small doc update for machine section. 2011-07-09 Stefan Sauer * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-patterns.c: Remove obsolete warning dialogs (as we now have undo/redo). 2011-07-09 Stefan Sauer * src/lib/core/sequence.c: Remove listening for pattern removal. We'll have to handle that from the app. * src/ui/edit/main-page-sequence.c: Update the sequence on pattern removal. 2011-07-08 Stefan Sauer * src/ui/edit/main-page-sequence.c: Implemented the undo/redo for pattern removal and added a comment, why its not effective. 2011-07-08 Stefan Sauer * design/gst/loop2.c: Make the example more complex, still we can't demo the issue here. 2011-07-08 Stefan Sauer * docs/help/bt-edit/C/buzztrax-edit.xml: Fix xml validity warnings. 2011-07-08 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/sequence-methods.h: * src/lib/core/sequence.c: Add a new method for iterating patterns of a track. 2011-07-08 Stefan Sauer * design/gobject/gsignalorder.c: * design/gst/loop2.c: * design/gobject/gsignalorder.c (added): * design/gst/loop2.c (added): Add test code. 2011-07-08 Stefan Sauer * src/lib/core/libbuzztrax-core/sequence-methods.h: * src/lib/core/sequence.c: Allow to iterate the tracks, by passing a start position. * src/ui/edit/main-page-sequence.c: Use new method. Sketch out pattern-remove undo/redo. 2011-07-08 Stefan Sauer * src/ui/edit/main-page-machines.c: Comment update. 2011-07-08 Stefan Sauer * src/ui/edit/change-log.c: Improve api docs. 2011-07-08 Stefan Sauer * src/lib/ic/learn.c: Planning. 2011-07-08 Stefan Sauer * src/lib/core/pattern.c: Notify voice changes. 2011-07-07 Stefan Sauer * src/ui/edit/render-dialog.c: Make enter activate the default dialog action. 2011-07-07 Stefan Sauer * src/ui/edit/pattern-properties-dialog.c: Make enter activate the default dialog action. 2011-07-07 Stefan Sauer * src/ui/edit/main-page-patterns.c: Fix gvalue checks to not access unset gvalues. 2011-07-07 Stefan Sauer * src/ui/edit/interaction-controller-learn-dialog.c: Add comments. Select the suggested name and make enter activate the default dialog action. 2011-07-06 Stefan Sauer * src/lib/ic/device.c: Sort control list by name. 2011-07-06 Stefan Sauer * src/ui/edit/interaction-controller-menu.c: Update menu after learn. 2011-07-06 Stefan Sauer * src/lib/core/pattern.c: Add missing 'static' keyword to signal handler. 2011-07-06 Stefan Sauer * src/ui/edit/main-page-patterns.c: Rename misnamed enums. 2011-07-06 Stefan Sauer * src/ui/edit/main-page-patterns.c: Use the new api to use appropriate no-values in pattern-editor. 2011-07-06 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/machine-methods.h: * src/lib/core/machine.c: Expose two methods to get parameter no-values. We'll need that for the pattern editor to use them for clearing cells. 2011-07-06 Stefan Sauer * src/ui/edit/main-page-patterns.c: Don't trigger no-values. 2011-07-06 Stefan Sauer * src/lib/ic/device.c: Add a notify when changing the control-list. * src/ui/edit/interaction-controller-menu.c: Better logging. Add todo comments for the menu-updating. 2011-07-06 Stefan Sauer * src/ui/edit/main-page-sequence.c: Improve saving data when tracks get removed. 2011-07-06 Stefan Sauer * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/sequence-methods.h: * src/lib/core/sequence.c: Export a function to be able to loop over tracks. 2011-07-06 Stefan Sauer * src/lib/ic/input-device.c: Add more logging. * src/ui/edit/interaction-controller-menu.c: Add a missing ref. 2011-07-05 Stefan Sauer * src/ui/edit/main-page-sequence.c: Add undo/redo for multi-column del and fix a off by one for label column undo/redo. 2011-07-04 Stefan Sauer * src/ui/edit/main-page-sequence.c: Add undo/redo for multi-column ins. 2011-07-03 Stefan Sauer * src/ui/edit/main-page-sequence.c: Handle undo/redo for single columns ins/del. 2011-07-01 Stefan Sauer * src/ui/edit/main-page-sequence.c: Handle undo/redo for label edits. 2011-07-01 Stefan Sauer * NEWSLETTER: Sent News. 2011-07-01 Stefan Sauer * NEWS: Mention keyboard shortcuts among the doc updates. 2011-07-01 Stefan Sauer * src/ui/edit/main-page-sequence.c: Implement undo/redo of the sequence data on length changes. For that also handled undo/redo for the label column. 2011-07-01 Stefan Sauer * src/ui/edit/main-page-sequence.c: Factor out sequence_region serialisation code. 2011-07-01 Stefan Sauer * NEWSLETTER: Write news. 2011-07-01 Stefan Sauer * src/ui/edit/main-page-sequence.c: Factor out common code. 2011-06-30 Stefan Sauer * src/ui/edit/main-page-sequence.c: Implement undo/redo for sequence loop-start/end and length. 2011-06-30 Stefan Sauer * src/ui/edit/main-page-patterns.c: Remove obsolete comment. 2011-06-29 Stefan Sauer * src/ui/edit/main-page-sequence.c: Implement undo/redo for single pattern edits in sequence. 2011-06-29 Stefan Sauer * src/ui/edit/main-page-sequence.c: More undo/redo preparations. Factor out track deserialisation. Add undo/redo command parameters. 2011-06-29 Stefan Sauer * src/ui/edit/main-page-sequence.c: The pattern list updates itself on usage changes now. No need to manually trigger it. 2011-06-28 Stefan Sauer * src/ui/edit/main-page-machines.c: Add a warning log for unhandled properties. * src/ui/edit/main-page-patterns.c: * src/ui/edit/pattern-properties-dialog.c: Refactor code, to be able to implementa undo/redo for pattern property changes (name and length so far). 2011-06-28 Stefan Sauer * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * docs/reference/bt-edit/buzztrax-edit.types: * src/ui/edit/crash-recover-dialog.c: Fix docblob and add dialog to the docs. 2011-06-25 Stefan Sauer * src/ui/edit/main-page-sequence.c: More undo/redo preparations. 2011-06-25 Stefan Sauer * src/ui/edit/main-page-patterns.c: Fix undo/redo of groups. 2011-06-25 Stefan Sauer * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: Fix out of rage enum value. Allow to also blend enums. 2011-06-25 Stefan Sauer * configure.ac: Also link to gio explicitely. 2011-06-25 Stefan Sauer * src/ui/edit/main-menu.c: Add two items to help menu to get to web-irc chat and to the bug tracker. 2011-06-25 Stefan Sauer * src/ui/edit/main-page-machines.c: Log the initial position. 2011-06-25 Stefan Sauer * src/ui/edit/change-log.c: Also write to change log on undo/redo. We need to do this to recover correctly when one adds something and then does undo. 2011-06-25 Stefan Sauer * src/lib/core/libbuzztrax-core/sequence-methods.h: * src/lib/core/sequence.c: Change method to allow adding tracks at any index. * tests/lib/core/e-network.c: * tests/lib/core/e-pattern.c: * tests/lib/core/e-sequence.c: * tests/lib/core/e-wire-pattern.c: * tests/lib/core/t-sequence.c: Update tests. * src/ui/edit/main-page-sequence.c: Flesh out undo/redo for adding/removing tracks. 2011-06-24 Stefan Sauer * src/ui/edit/crash-recover-dialog.c: Close dialog when last entry was deleted. 2011-06-23 Stefan Sauer * src/lib/buzztrax.xml.in: Readd the glob, but with a low weight. * src/ui/edit/main-menu.c: * src/ui/edit/main-window.c: Make the workaround conditional on the right glib version. 2011-06-23 Stefan Sauer * src/ui/edit/main-menu.c: * src/ui/edit/main-window.c: Retest glib bug (still there) and sync the comments. 2011-06-23 Stefan Sauer * src/ui/edit/main-page-patterns.c: Fix trigger-switch mapping to not produce wrong enums. 2011-06-23 Stefan Sauer * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: Fix interpolation (for negative step values) and non int types. Fix off by 1 in flip that leaft the middle pair unchanged. 2011-06-21 Stefan Sauer * src/lib/core/libbuzztrax-core/sequence-methods.h: * src/lib/core/sequence.c: * src/ui/edit/main-page-sequence.c: Fix copy and paste for columns. Fix a crasher in wrong printf format. Fix insert/delete on the label column. Fix insert-full-rows for labels by talking the labels[] pointer after resizing. 2011-06-20 Stefan Sauer * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/persistence.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: Support more GTypes. Use macros to reduce the LOC. 2011-06-20 Stefan Kost * src/ui/edit/main-page-patterns.c: Use the new flip operators. 2011-06-20 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/pattern-methods.h: * src/lib/core/libbuzztrax-core/wire-pattern-methods.h: * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: Add flip operation. 2011-06-20 Stefan Kost * src/lib/core/sequence.c: Fix sequence repairs to also take previous patterns into account. Makes the 'break' patterns work. 2011-06-20 Stefan Kost * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: Support more GTypes. 2011-06-20 Stefan Kost * src/ui/edit/main-page-sequence.c: Avoid rebuilding the whole sequence when expanding. 2011-06-20 Stefan Kost * src/ui/edit/main-page-sequence.c: Minor fixup in position formatting. 2011-06-20 Stefan Kost * src/ui/edit/main-page-sequence.c: Make adding solo/bypass patterns using '_' work again. 2011-06-20 Stefan Kost * src/ui/edit/pattern-list-model.c: Fix sort order in pattern list, keep internal patterns at the top in a pre-defined order. 2011-06-20 Stefan Kost * src/lib/core/pattern.c: Planning. 2011-06-20 Stefan Kost * src/lib/core/libbuzztrax-core/pattern.h: * src/lib/core/pattern.c: Reorder enum. 2011-06-20 Stefan Kost * src/ui/edit/main-page-patterns.c: Planning and comment update. 2011-06-20 Stefan Kost * src/ui/edit/main-page-patterns.c: Refresh context menu on new patterns (after adding generators). Also update statusbar on edits. 2011-06-20 Stefan Kost * TODO: Planning. * docs/help/bt-edit/C/buzztrax-edit.xml: Add shortcut tables. Add a lot of explanations. 2011-06-17 Stefan Kost * src/lib/core/machine.c: Handle more basic GTypes. 2011-06-17 Stefan Kost * src/ui/edit/tip-dialog.c: Add another tip. 2011-06-17 Stefan Kost * src/ui/edit/machine-menu.c: Add a blacklist filter for known-not-so-useful elements. 2011-06-17 Stefan Kost * docs/help/bt-edit/C/buzztrax-edit.xml: Flesh out the pattern-view docs a bit. Tell abut keys for editing. Add links to the keyboard shortcuts on the wiki for pattern and sequence view. 2011-06-16 Stefan Kost * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: Make the build succeed with missing too old gobject introspections, by touching the files. 2011-06-13 Stefan Kost * src/lib/core/setup.c: Add '.' to the end of sentences in the docs. 2011-06-12 Stefan Kost * src/ui/edit/pattern-list-model.c: Use the new signals from sequence to update the is-used state dynamically. 2011-06-12 Stefan Kost * src/lib/core/sequence.c: Add a hashtable to track pattern usage. Use it to speedup the methods instead of scanning the whole sequence. Add two signals to notify of first and last use. 2011-06-12 Stefan Kost * configure.ac: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/tools.h: Bump gtk+ (2.10.12) requiremtns, remove backwards compat defines and fallback code. * src/ui/edit/main-page-sequence.c: Also remove fallback code. Simplify the sequence expasion code and get rid of one obscure extra state. 2011-06-12 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/edit-application.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-sequence.h: Get rid of SEQUENCE_ROW_ADDITION_INTERVAL define and use the bars from song-info instead. Rework the coloring and use a single boolean column for the 'shade' flag instead. This speeds up the cell-data function and saves memory. 2011-06-12 Stefan Kost * src/ui/edit/main-page-sequence.c: Remove two more columns. Only listen for pattern removal to lessen the amount of updates we do (fixes a FIXME). Clarify some comments. 2011-06-12 Stefan Kost * src/ui/edit/main-page-sequence.c: Remove unused column. Replace pos var with i to save one var. 2011-06-08 Stefan Kost * NEWSLETTER: Collect news. 2011-05-23 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Use the new models and remove the old code. * src/ui/edit/pattern-list-model.c: * src/ui/edit/pattern-list-model.h: Add a unused column too, as we can't invert when assigning it to a cell- renderer. 2011-05-17 Stefan Kost * src/ui/edit/main-page-sequence.c: Use the key in the pattern-list model fro key-lookups. Avoids duplicated pattern_keys arrays and fixes disparity between sort-order and key-ppatern relation. 2011-05-17 Stefan Kost * po/LINGUAS: * po/fr.po: * po/fr.po (added): Add french translations. 2011-05-14 Stefan Kost * src/ui/edit/main-page-patterns.c: Fix selection of new pattern. * src/ui/edit/pattern-list-model.c: More logging and some idea comments. 2011-05-14 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/machine-methods.h: * src/lib/core/machine.c: Add method to get pattern per name. * src/lib/core/pattern.c: Clarify property scope. * src/ui/edit/pattern-properties-dialog.c: Use new method and fix uniquness check. 2011-05-13 Stefan Kost * src/ui/edit/main-page-patterns.c: Also fix the type order for pattern page. 2011-05-13 Stefan Kost * src/lib/core/persistence.c: Move the varargs processing closer to where we actually need it. * src/lib/core/processor-machine.c: * src/lib/core/sink-machine.c: * src/lib/core/source-machine.c: Add missing va_end. 2011-05-13 Stefan Kost * src/lib/core/wave.c: One more round and handle the (unlikely) case of tmpfile() failing. 2011-05-13 Stefan Kost * tests/bt-check.c: Disable unused testing code. 2011-05-13 Stefan Kost * src/lib/core/machine.c: Remove unused variable. 2011-05-13 Stefan Kost * src/lib/core/sequence.c: Remove copy'n'paste left-over variable. 2011-05-13 Stefan Kost * src/ui/dec/bt-dec.c: Comment out code block and add a comment why this is actualy not run right now. 2011-05-13 Stefan Kost * src/lib/core/wave.c: Always free the local fd. 2011-05-13 Stefan Kost * src/ui/edit/main-page-sequence.c: Fix order of types in pattern-list. 2011-05-13 Stefan Kost * src/ui/cmd/cmd-application.c: Add error handling when we can't open the output file. 2011-05-13 Stefan Kost * src/lib/core/wave.c: Rework fd/FILE handling. We're using fileno to get file numbers. Still we want to use fclose() to close the files. 2011-05-12 Stefan Kost * src/lib/core/wave.c: Don't leak the FILE handle. 2011-05-12 Stefan Kost * src/ui/edit/playback-controller-socket.c: Both len and term are unsigned, term can be 0, but then len would be 1. So use len in the check. 2011-05-12 Stefan Kost * src/lib/core/song-io-native-bzt.c: File-name and err can be NULL. 2011-05-12 Stefan Kost * src/lib/core/machine.c: Fix variable type. 2011-05-12 Stefan Kost * src/ui/dec/bt-dec.c: Update the _loop() function pause handling. Avoid the FLOW_IS_FATAL macro like other gst elements. Handle segmented seeks. 2011-05-12 Stefan Kost * src/ui/edit/buzztrax-edit.desktop.in: * src/ui/edit/buzztrax-edit.desktop.in (added): Readd src for desktop file (again). 2011-05-12 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-core/Makefile.am: * docs/reference/bt-edit/Makefile.am: * docs/reference/bt-ic/Makefile.am: * src/ui/edit/pattern-editor.h: Doc cleanups. 2011-05-11 Stefan Kost * src/ui/edit/pattern-list-model.c: Treat internal patterns as "always-used". 2011-05-11 Stefan Kost * src/ui/edit/main-page-patterns.c: Fixme updates. * src/ui/edit/main-page-sequence.c: Prepare for use of pattern-model in sequence view. 2011-05-09 Stefan Kost * NEWSLETTER: Sent news. 2011-05-05 Stefan Kost * NEWSLETTER: Collecting news. 2011-05-02 Stefan Kost * src/ui/edit/main-page-patterns.c: Add all the alternative code paths to use the new model. 2011-05-02 Stefan Kost * src/ui/edit/machine-list-model.c: * src/ui/edit/machine-list-model.h: * src/ui/edit/pattern-list-model.c: * src/ui/edit/pattern-list-model.h: Add enums for column ids. 2011-04-29 Stefan Kost * src/lib/core/machine.c: * src/ui/edit/machine-list-model.c: * src/ui/edit/machine-menu.c: * src/ui/edit/main-menu.c: * src/ui/edit/pattern-list-model.c: * src/ui/edit/tip-dialog.c: * tests/bt-check.c: * tests/lib/core/e-song-io-native.c: * tests/lib/core/t-source-machine.c: Clang checker cleanups. 2011-04-28 Stefan Kost * src/ui/edit/machine-list-model.c: * src/ui/edit/pattern-list-model.c: Small model cleanups. 2011-04-28 Stefan Kost * configure.ac: Don't muck with CFLAGS in configure - it is for the user. 2011-04-28 Stefan Kost * src/ui/edit/panorama-popup.h: * src/ui/edit/volume-popup.h: Single include fixes. 2011-04-27 Stefan Kost * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/pattern-list-model-methods.h: * src/ui/edit/pattern-list-model.c: * src/ui/edit/pattern-list-model.h: * src/ui/edit/pattern-list-model.c (svn:keywords, svn:eol-style): * src/ui/edit/pattern-list-model-methods.h (svn:keywords, svn:eol- style): * src/ui/edit/pattern-list-model.h (svn:keywords, svn:eol-style): * src/ui/edit/pattern-list-model-methods.h (added): * src/ui/edit/pattern-list-model.c (added): * src/ui/edit/pattern-list-model.h (added): WIP version of new model for pattern lists. 2011-04-27 Stefan Kost * src/ui/edit/Makefile.am: Generate the desktop file. 2011-04-27 Stefan Kost * src/lib/core/pattern.c: Simple fix for "Add parameter check for 'param' when deserializing.". 2011-04-24 Stefan Kost * src/ui/edit/pattern-editor.h: * src/ui/edit/ui-resources.h: * src/ui/edit/wire-canvas-item.c: Documentation fixes. 2011-04-20 Stefan Kost * src/lib/core/pattern.c: Add parameter check for 'param' when deserializing. * src/ui/edit/main-page-machines.c: Also handle machine voices in undo/redo. 2011-04-20 Stefan Kost * src/ui/edit/main-page-patterns.c: Fix the regexp more (there was a misplaced ','). 2011-04-20 Stefan Kost * src/ui/edit/change-logger.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: Relax the rexexp-patterns and fix some. Add more logging. 2011-04-19 Stefan Kost * src/ui/edit/main-page-sequence.c: Make sequence view colors dynamic and update on theme changes. We're now using darker shades on dark themes. 2011-04-19 Stefan Kost * NEWSLETTER: Collect NEWS. * src/ui/edit/main-page-sequence.c: Planning. 2011-04-19 Stefan Kost * src/ui/edit/main-page-patterns.c: Fully switch to use the machine model. 2011-04-18 Stefan Kost * src/ui/edit/machine-list-model.c: Downgrade more log statements again. * src/ui/edit/main-page-patterns.c: Add signal handler listening for pattern removal also in the model case. Makes undo/redo work again here. 2011-04-18 Stefan Kost * src/ui/edit/machine-list-model.c: * src/ui/edit/main-page-patterns.c: Downgrade the log statements again. 2011-04-18 Stefan Kost * src/ui/edit/main-statusbar.c: Experiment with a main_loop_lag monitor. 2011-04-18 Stefan Kost * src/ui/edit/machine-list-model.c: * src/ui/edit/main-page-patterns.c: Keep list sorted when renaming machines. 2011-04-18 Stefan Kost * configure.ac: * src/lib/core/tools.c: Use the timestamp function from gstreamer. 2011-04-18 Stefan Kost * src/ui/edit/main-page-sequence.c: Try different hack for the space eating sequence view column. 2011-04-18 Stefan Kost * src/ui/edit/main-page-sequence.c: Fix the label-menu cell renderer layout setup. 2011-04-18 Stefan Kost * src/ui/edit/machine-list-model.c: Delete node before notifying (in contrast to what the gtk+ api docs say). Anything else will create small window of inconsistency * src/ui/edit/main-page-patterns.c: Make listening to machine menu deletions work. 2011-04-18 Stefan Kost * src/ui/edit/machine-list-model.c: g_sequence_search gives the insertion position (we have to go one back). * src/ui/edit/main-page-patterns.c: Improvements on handing row-insert/delete of the model. 2011-04-18 Stefan Kost * src/ui/edit/machine-list-model.c: Add proper sorting. 2011-04-14 Stefan Kost * Makefile.am: Hide more commands. * src/lib/core/libbuzztrax-core/sink-bin.h: Whitespace. 2011-04-14 Stefan Kost * src/ui/edit/machine-list-model.c: * src/ui/edit/main-page-patterns.c: WIP changes on the machine-list model use. 2011-04-13 Stefan Kost * src/ui/edit/main-page-machines.c: Add comment, remove todo. 2011-04-13 Stefan Kost * docs/Makefile.am: * docs/help/bt-edit/C/Makefile.am: * docs/help/bt-edit/Makefile.am: * docs/reference/Makefile.am: Trim Makefile output. 2011-04-13 Stefan Kost * configure.ac: * docs/reference/bt-ic/buzztrax-ic-docs.sgml: * docs/reference/bt-ic/buzztrax-ic-sections.txt: * docs/reference/bt-ic/buzztrax-ic.types.in: * src/lib/ic/registry.c: Fix warnings in btic docs. Handle conditional Api. 2011-04-13 Stefan Kost * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/tools.c: Remove unused test code, this has to work via refdbg or alike. 2011-04-13 Stefan Kost * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: Use silent rules for gobject-introspection. 2011-04-12 Stefan Kost * src/ui/edit/machine-list-model-methods.h: * src/ui/edit/machine-list-model.c: * src/ui/edit/main-page-patterns.c: Conditionally use the new model. 2011-04-11 Stefan Kost * src/ui/edit/machine-list-model.c: Shuffle the order in delete, to signal first and then delete. Add some comments. 2011-04-10 Stefan Kost * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/machine-list-model-methods.h: * src/ui/edit/machine-list-model.c: * src/ui/edit/machine-list-model.h: * src/ui/edit/machine-list-model.h (svn:keywords, svn:eol-style): * src/ui/edit/machine-list-model-methods.h (svn:keywords, svn:eol- style): * src/ui/edit/machine-list-model.c (svn:keywords, svn:eol-style): * src/ui/edit/machine-list-model-methods.h (added): * src/ui/edit/machine-list-model.c (added): * src/ui/edit/machine-list-model.h (added): Start a new model for the machine-list. 2011-04-09 Stefan Kost * src/ui/edit/object-list-model-methods.h: * src/ui/edit/object-list-model.c: Finalize implementation. * src/ui/edit/settings-page-interaction-controller.c: Make use of the new moduel in two places. 2011-04-08 Stefan Kost * src/ui/edit/object-list-model-methods.h: * src/ui/edit/object-list-model.c: Fully implemented. 2011-04-08 Stefan Kost * src/lib/core/machine.c: Whitespace. 2011-04-08 Stefan Kost * src/ui/edit/main-page-patterns.c: Use enums for the list-store columns one more time. 2011-04-08 Stefan Kost * src/ui/edit/change-logger.h: Comment fix. 2011-04-08 Stefan Kost * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/object-list-model-methods.h: * src/ui/edit/object-list-model.c: * src/ui/edit/object-list-model.h: * tests/ui/edit/e-bt-edit-application.c: * src/ui/edit/object-list-model-methods.h (svn:keywords, svn:eol- style): * src/ui/edit/object-list-model.h (svn:keywords, svn:eol-style): * src/ui/edit/object-list-model.c (svn:keywords, svn:eol-style): * src/ui/edit/object-list-model.c (added): * src/ui/edit/object-list-model.h (added): * src/ui/edit/object-list-model-methods.h (added): Add first step of our own model. 2011-04-06 Stefan Kost * src/ui/edit/main-page-patterns.c: Naming update. 2011-04-06 Stefan Kost * gst.supp: * gtk.supp: * tests/Makefile.am: * gtk.supp (added): Add another supression file. Add and tune valgrind options. Fix the valgrind rule for single tests. 2011-04-05 Stefan Kost * src/ui/edit/main-page-patterns.c: Also init width=0 to avoid accessing it uninitialized from pattern editor. 2011-04-05 Stefan Kost * tests/Makefile.am: Use separate files per pid for valgrind logs. * tests/ui/edit/e-bt-edit-application.c: Tinker with the test to get more trace points. * tests/ui/edit/e-bt-machine-properties-dialog.c: Whitespace. 2011-04-05 Stefan Kost * docs/help/bt-edit/C/Makefile.am: * docs/help/bt-edit/C/buzztrax-edit.xml: * docs/help/bt-edit/C/figures/about.png: * docs/help/bt-edit/C/figures/crash-recovery.png: * docs/help/bt-edit/C/figures/interaction-controller-learn.png: * docs/help/bt-edit/C/figures/machine-preferences.png: * docs/help/bt-edit/C/figures/machine-properties.png: * docs/help/bt-edit/C/figures/machine-rename.png: * docs/help/bt-edit/C/figures/main-window.png: * docs/help/bt-edit/C/figures/missing-gstreamer-elements.png: * docs/help/bt-edit/C/figures/missing-song-elements.png: * docs/help/bt-edit/C/figures/page-info-view.png: * docs/help/bt-edit/C/figures/page-machine-view.png: * docs/help/bt-edit/C/figures/page-pattern-view.png: * docs/help/bt-edit/C/figures/page-sequence-view.png: * docs/help/bt-edit/C/figures/page-wavetable-view.png: * docs/help/bt-edit/C/figures/pattern-properties.png: * docs/help/bt-edit/C/figures/preset-properties.png: * docs/help/bt-edit/C/figures/recording-progress.png: * docs/help/bt-edit/C/figures/recording-settings.png: * docs/help/bt-edit/C/figures/settings-audio.png: * docs/help/bt-edit/C/figures/settings-colors.png: * docs/help/bt-edit/C/figures/settings-directories.png: * docs/help/bt-edit/C/figures/settings-ic.png: * docs/help/bt-edit/C/figures/settings-pc.png: * docs/help/bt-edit/C/figures/settings-shortcuts.png: * docs/help/bt-edit/C/figures/signal-analysis.png: * docs/help/bt-edit/C/figures/tip.png: * docs/help/bt-edit/C/figures/missing-song-elements.png (svn:mime- type): * docs/help/bt-edit/C/figures/about.png (svn:mime-type): * docs/help/bt-edit/C/figures/signal-analysis.png (svn:mime-type): * docs/help/bt-edit/C/figures/missing-gstreamer-elements.png (svn:mime- type): * docs/help/bt-edit/C/figures/recording-progress.png (svn:mime-type): * docs/help/bt-edit/C/figures/crash-recovery.png (svn:mime-type): * docs/help/bt-edit/C/figures/preset-properties.png (svn:mime-type): * docs/help/bt-edit/C/figures/machine-rename.png (svn:mime-type): * docs/help/bt-edit/C/figures/recording-settings.png (svn:mime-type): * docs/help/bt-edit/C/figures/tip.png (svn:mime-type): * docs/help/bt-edit/C/figures/interaction-controller-learn.png (svn :mime-type): * docs/help/bt-edit/C/figures/tip.png (added): * docs/help/bt-edit/C/figures/crash-recovery.png (added): * docs/help/bt-edit/C/figures/preset-properties.png (added): * docs/help/bt-edit/C/figures/signal-analysis.png (added): * docs/help/bt-edit/C/figures/interaction-controller-learn.png (added): * docs/help/bt-edit/C/figures/machine-rename.png (added): * docs/help/bt-edit/C/figures/about.png (added): * docs/help/bt-edit/C/figures/recording-settings.png (added): * docs/help/bt-edit/C/figures/missing-gstreamer-elements.png (added): * docs/help/bt-edit/C/figures/recording-progress.png (added): * docs/help/bt-edit/C/figures/missing-song-elements.png (added): Update figures. 2011-04-04 Stefan Kost * src/ui/edit/signal-analysis-dialog.c: Fix non-sense labels. 2011-04-04 Stefan Kost * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-crash-recover-dialog.c: * tests/ui/edit/s-bt-crash-recover-dialog.c: * tests/ui/edit/s-bt-crash-recover-dialog.c (svn:keywords, svn:eol- style): * tests/ui/edit/e-bt-crash-recover-dialog.c (svn:keywords, svn:eol- style): * tests/ui/edit/s-bt-crash-recover-dialog.c (added): * tests/ui/edit/e-bt-crash-recover-dialog.c (added): Add another test to get a screenshot for the crash-recover dialog. Also set the application name to get a nicer screenshot for the about dialog. 2011-04-04 Stefan Kost * src/ui/dec/bt-dec.c: Also rename debug category. 2011-04-04 Stefan Kost * docs/help/bt-edit/C/Makefile.am: * docs/help/bt-edit/C/buzztrax-edit.xml: Add more images. 2011-04-04 Stefan Kost * docs/help/bt-edit/C/buzztrax-edit.xml: Describe all remaining dialogs. 2011-04-03 Stefan Kost * NEWS: Update the NEWS. * docs/help/bt-edit/C/buzztrax-edit.xml: Review and extend help. 2011-04-03 Stefan Kost * src/ui/edit/main-page-sequence.c: Planning. 2011-04-03 Stefan Kost * src/lib/core/song-io.c: Remove default implementations for load/save (chaining up does not make sense here anyway). Check that we have an implementation in _load/_save instead. This is more robust as a plugin could just do klass->save=NULL; anyway. * src/ui/edit/main-window.c: When building the format list for the save-as dialog skip plugins that can't save. 2011-04-03 Stefan Kost * src/ui/edit/pattern-properties-dialog.c: Unbreak renaming the pattern. 2011-04-03 Stefan Kost * src/ui/edit/main-page-sequence.c: Add a gross hack for something that looks like an ugly bug in gtk+. We need a spacer to eat the remainder of the sequence headers. In the past a label containing a whitespace worked fine. Now gtk+ seems to try to be smart and skip the rendering of it :/. We're now using "#####" as a text and copy base color to fg and text. 2011-04-03 Stefan Kost * src/ui/edit/gtkvumeter.c: * src/ui/edit/gtkvumeter.h: Remove unused code. Add private comment to instance declaration. 2011-04-03 Stefan Kost * tests/.cvsignore: * tests (svn:ignore): Maintenance. * tests/bt-check.c: Indent. 2011-04-03 Stefan Kost * src/ui/edit/main-menu.c: Also check for unsaved when loading from recent menu. 2011-04-03 Stefan Kost * src/ui/edit/bt-edit.gtkrc: * src/ui/edit/main-page-sequence.c: Tune border sizes and padding a bit. We still have some unwanted whitespace in the sequence headers. 2011-04-03 Stefan Kost * src/ui/edit/crash-recover-dialog.c: * src/ui/edit/main-menu.c: Use non-stock menu-item and button for crash recovery as the stock labels did not really fit. Add extra explanation to crash recover dialog. 2011-04-02 Stefan Kost * src/ui/edit/main-page-sequence.c: Use weak pointers for the cached vu-meter. 2011-04-02 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-sequence.c: Finetune the vu-meter-update skipping. We don't compare against the last value anymore. This can cause problem if a processing the deferred meter update gets lost and we then skip. Instead activate skipping for a series of max- or min-volume. Apply the same to seqeunce view. Saves a total of 213327 updates for Aenathon.bmx. 2011-04-02 Stefan Kost * src/ui/edit/gtkvumeter.c: Eventually skip a redraw when setting min/max. 2011-04-02 Stefan Kost * src/ui/edit/machine-properties-dialog.c: Add a G_STMT_BEG/END to macro. 2011-04-02 Stefan Kost * src/ui/edit/machine-canvas-item.c: Change the idle-data from two pointers to a proper struct. Add init/free macros. Avoid recalculating the level-meter value by having it in the struct now. 2011-04-01 Stefan Kost * NEWSLETTER: Wrote and send NEWS. 2011-04-01 Stefan Kost * tests/bt-check.c: Update bug comment with status. * tests/lib/ic/.cvsignore: * tests/lib/ic (svn:ignore): * docs/reference/bt-edit (svn:ignore): * docs/reference/bt-cmd (svn:ignore): * tests/lib/ic/.cvsignore (added): Maintainance. 2011-04-01 Stefan Kost * src/ui/edit/machine-canvas-item.c: Skip vu-meter updates if the value has not changed. Saves 166359 updates for Aenathon.bmx. 2011-04-01 Stefan Kost * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: Thanks to help from gi irc channel, fix the gi build. 2011-03-31 Stefan Kost * design/udev/udevls.c: Add udev version in comment where the issue if fixed. * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: Cleanup gi parts in makefile and make failure non-fatal as the tools give me a hard time right now. 2011-03-27 Stefan Kost * configure.ac: * tests/bt-cfg.sh.in: * tests/bt-edit-cli.sh: Also set xfont-path in shellscript to suppress more noise. * tests/bt-check.c: Add a comment pointing to the bug that produces the XRANDR warning noise. 2011-03-27 Stefan Kost * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/ui/edit/pattern-properties-dialog.c: * tests/lib/core/e-machine.c: * tests/lib/core/e-network.c: * tests/lib/core/e-pattern.c: Make BtPattern::voices read-only. Change it on the machine only. Use notify signal to keep patterns in sync. 2011-03-27 Stefan Kost * src/lib/core/sequence.c: Set last tracks field to NULL when removing a track to avoid double unref. Optimize the priv->machines array access. 2011-03-27 Stefan Kost * po/POTFILES.in: Also rename the wire-analysis-dialog here. 2011-03-27 Stefan Kost * src/lib/core/setup.c: Eventually mark objects as floating after removing them. 2011-03-26 Stefan Kost * src/ui/edit/pattern-properties-dialog.c: Only apply changed values to minimize notifies. 2011-03-26 Stefan Kost * src/lib/core/pattern.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: Planning. 2011-03-26 Stefan Kost * src/lib/core/machine.c: * src/lib/core/pattern.c: Keep voices in sync between pattern and machine. We are changing the voices from pattern view right now (maybe that should be changed). Fix voice-parameter lookup in pattern serialisation/deserialisation (off by 1). 2011-03-26 Stefan Kost * src/ui/edit/main-page-patterns.c: Don't update patterns twice when changing number of tracks. Add FIXME for missing undo/redo. 2011-03-25 Stefan Kost * src/ui/edit/signal-analysis-dialog.c: Disconnect only the handler for this dialog. Otherwise the fft stops in all other windows too. 2011-03-22 Stefan Kost * tests/ui/edit/e-bt-edit-application.c: Add a set of tests for loading songs while having some ui pages removed. 2011-03-22 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-waves.c: Disconnect on_song_changed on dispose. Helps the tests. 2011-03-18 Stefan Kost * src/lib/core/sink-bin.c: Use new helper to attach analyzers. * src/ui/edit/machine-canvas-item.c: Add context menu entry to show signal analyzer on the master. * src/ui/edit/signal-analysis-dialog.c: Fix setting the analzzers on the master. 2011-03-18 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/tools.c: * src/lib/core/wire.c: Move some code from wire to tool and make it more generic so that we can use it from sink-bin too. 2011-03-18 Stefan Kost * src/lib/ic/gudev-discoverer.c: Handle "change" action too. 2011-03-17 Stefan Kost * src/ui/edit/signal-analysis-dialog.c: Setting the analyzers (non yet taken into use). 2011-03-17 Stefan Kost * src/lib/core/sink-bin.c: Add analyzer property. 2011-03-17 Stefan Kost * src/lib/core/sink-bin.c: Always add the tee to prepare for pluging analysers. 2011-03-17 Stefan Kost * src/ui/dec/bt-dec.c: Free the song only in dispose and not in reset to make it reusable. 2011-03-16 Stefan Kost * src/ui/edit/signal-analysis-dialog-methods.h: * src/ui/edit/signal-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: * tests/ui/edit/e-bt-signal-analysis-dialog.c: Change the the wire field to a more generic bin. Add FIXME comments where we will need to make changes for the SinkMachine. 2011-03-16 Stefan Kost * docs/reference/bt-edit/buzztrax-edit.types: Also renename the wire-dialog to signal-dialog here. 2011-03-16 Stefan Kost * src/lib/core/machine.c: Fix typos in log messages. 2011-03-16 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/signal-analysis-dialog-methods.h: * src/ui/edit/signal-analysis-dialog.c: * src/ui/edit/signal-analysis-dialog.h: * src/ui/edit/wire-canvas-item.c: * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-signal-analysis-dialog.c: * tests/ui/edit/s-bt-signal-analysis-dialog.c: * src/ui/edit/signal-analysis-dialog-methods.h (added): * src/ui/edit/signal-analysis-dialog.c (added): * src/ui/edit/signal-analysis-dialog.h (added): * tests/ui/edit/s-bt-signal-analysis-dialog.c (added): * tests/ui/edit/e-bt-signal-analysis-dialog.c (added): * src/ui/edit/wire-analysis-dialog-methods.h (deleted): * src/ui/edit/wire-analysis-dialog.c (deleted): * src/ui/edit/wire-analysis-dialog.h (deleted): * tests/ui/edit/e-bt-wire-analysis-dialog.c (deleted): * tests/ui/edit/s-bt-wire-analysis-dialog.c (deleted): Rename WireAnalysisDialog to SignalAnalysisDialog. This is in preparation for using the dialog also on the master. 2011-03-15 Stefan Kost * tests/ui/edit/e-bt-edit-application.c: Comments and tweaking of the test. 2011-03-15 Stefan Kost * src/lib/core/setup.c: First remove elements and then mark them as floating again. * src/ui/edit/main-page-patterns.c: Comment. 2011-03-15 Stefan Kost * NEWSLETTER: News have been sent. 2011-03-14 Stefan Kost * src/ui/edit/wire-canvas-item.c: Disconnect signal handlers when changing wire-ends. 2011-03-11 Stefan Kost * src/lib/core/sink-bin.c: * src/lib/core/wire.c: * src/ui/edit/wire-analysis-dialog.c: Planning and comment updates. 2011-03-11 Stefan Kost * src/ui/edit/pattern-editor.c: Also free the cairo context here. 2011-03-11 Stefan Kost * src/lib/core/wire.c: Fix channel negotiation and plugin of converters for stereo path away from master. We have to also look at channel-ranges. 2011-03-10 Stefan Kost * src/ui/edit/wire-analysis-dialog.c: Don't leak the cairo context. 2011-03-10 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/wire-analysis-dialog.c: Improve spectrum and level message handling. Avoid leaking data in error cases. 2011-03-09 Stefan Kost * src/ui/edit/wire-analysis-dialog.c: Point to the released version. 2011-03-09 Stefan Kost * tests/ui/edit/e-bt-sequence-page.c: Improve the test. 2011-03-09 Stefan Kost * src/ui/edit/wire-analysis-dialog.c: Handle multi-channel spectrum if gstreamer plugin can do it. (feature https://bugzilla.gnome.org/show_bug.cgi?id=593482) 2011-03-09 Stefan Kost * configure.ac: * src/lib/core/settings.c: * src/ui/edit/settings-page-audiodevices.c: Prepare for soon to be deprecated API. 2011-03-06 Stefan Kost * src/lib/core/setup.c: Spell checking. 2011-03-05 Stefan Kost * NEWSLETTER: Collect and draft news. 2011-02-24 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/edit-application-methods.h: * src/ui/edit/edit-application.c: Add one methods to set transitent window relation ship. Saves some code and avoids us to fecth the main-window ref. * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-window.c: * src/ui/edit/settings-dialog.c: * src/ui/edit/tip-dialog.c: * src/ui/edit/wire-canvas-item.c: Use new api for child-windows. 2011-02-23 Stefan Kost * src/ui/edit/render-dialog.c: Set default response. 2011-02-23 Stefan Kost * src/ui/edit/machine-canvas-item.c: Make machine windows transient to the main-window. * src/ui/edit/tip-dialog.c: Set a default respose for the dialog. 2011-02-22 Stefan Kost * configure.ac: * src/lib/core/core.c: Check for mmx/sse intrinsics and configure the FPU to DAZ|FZ mode. This allows us to drop denormal checks. 2011-02-22 Stefan Kost * tests/bt-check.c: Remove a assert. 2011-02-22 Stefan Kost * tests/bt-check.c: * tests/bt-check.h: * tests/ui/edit/e-bt-pattern-page.c: * tests/ui/edit/e-bt-sequence-page.c: * tests/ui/edit/t-bt-pattern-page.c: Fix event injecttion (need to ref gdk window). Add a helper for injecting key-presses. 2011-02-22 Stefan Kost * tests/m-bt-ic.c: * tests/m-bt-ic.c (svn:keywords, svn:eol-style): * tests/m-bt-ic.c (added): Add missing test suite main source. 2011-02-21 Stefan Kost * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-pattern-page.c: * tests/ui/edit/e-bt-sequence-page.c: * tests/ui/edit/s-bt-sequence-page.c: * tests/ui/edit/e-bt-sequence-page.c (svn:keywords, svn:eol-style): * tests/ui/edit/s-bt-sequence-page.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-sequence-page.c (added): * tests/ui/edit/s-bt-sequence-page.c (added): Add a test suite for the sequence page. 2011-02-21 Stefan Kost * design/udev/udevls.c: Add invocation example. 2011-02-21 Stefan Kost * design/udev/udevls.c: * design/udev/udevls.c (svn:keywords, svn:eol-style): * design/udev (added): * design/udev/udevls.c (added): Add a small testapp to try to reproduce a udev issue. 2011-02-21 Stefan Kost * src/lib/ic/gudev-discoverer.c: Add a hack to work-around a libudev bug. 2011-02-21 Stefan Kost * tests/lib/ic/Makefile.am: * tests/lib/ic/e-registry.c: * tests/lib/ic/s-registry.c: * tests/lib/ic/s-registry.c (svn:keywords, svn:eol-style): * tests/lib/ic/e-registry.c (svn:keywords, svn:eol-style): * tests/lib/ic/s-registry.c (added): * tests/lib/ic/e-registry.c (added): Add a simple check for the registry. 2011-02-21 Stefan Kost * configure.ac: * tests/Makefile.am: * tests/lib/Makefile.am: * tests/lib/ic/Makefile.am: * tests/lib/ic/m-bt-ic.h: * tests/lib/ic/s-ic.c: * tests/lib/ic/t-ic.c: * tests/lib/ic/s-ic.c (svn:keywords, svn:eol-style): * tests/lib/ic/t-ic.c (svn:keywords, svn:eol-style): * tests/lib/ic/Makefile.am (svn:keywords, svn:eol-style): * tests/lib/ic/m-bt-ic.h (svn:keywords, svn:eol-style): * tests/lib/ic (added): * tests/lib/ic/Makefile.am (added): * tests/lib/ic/s-ic.c (added): * tests/lib/ic/t-ic.c (added): * tests/lib/ic/m-bt-ic.h (added): Add boilerplate for btic test suite. 2011-02-19 Stefan Kost * tests/Makefile.am: Improve targets for running tests under valgrind/refdbg. 2011-02-19 Stefan Kost * src/lib/ic/gudev-discoverer.c: Fix ref-leak and uninitialized memory access. 2011-02-18 Stefan Kost * tests/Makefile.am: Add a refdbg makefile rule. 2011-02-17 Stefan Kost * tests/ui/edit/e-bt-edit-application.c: Narrow down the test failure more. * tests/ui/edit/e-bt-machine-page.c: Remove old comment. 2011-02-16 Stefan Kost * src/ui/edit/pattern-editor.c: Add more todo comments. Fix negative pageup overflow. 2011-02-16 Stefan Kost * src/ui/edit/main-page-patterns.c: Transform GValues directly to floats when reding out the pattern for the pattern-editor widget. This avoids formatting them strings as a intermediate format. 2011-02-16 Stefan Kost * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: Fully switch to cairo. 2011-02-15 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: Add new API to docs. 2011-02-15 Stefan Kost * src/ui/edit/pattern-editor.c: Fix y character positioning by adding height. 2011-02-15 Stefan Kost * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: Start porting to use cairo. * src/ui/edit/ui-resources-methods.h: * src/ui/edit/ui-resources.c: Add new methods to get rgb colors directly. 2011-02-15 Stefan Kost * design/led/setled.c: Add another link. 2011-02-14 Stefan Kost * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: Cache a few more lookups. 2011-02-14 Stefan Kost * src/ui/edit/main-page-waves.c: Ideas. 2011-02-14 Stefan Kost * src/ui/edit/main-page-sequence.c: Just unref as we have checked for NULL already. Saver setting for new cursor column. 2011-02-14 Stefan Kost * src/lib/core/wire.c: Be more verbose. * tests/refcountfilter.pl: Be more verbose. * tests/ui/edit/e-bt-edit-application.c: Add yet another variant for the test. 2011-02-10 Stefan Kost * src/ui/edit/main-page-machines.c: Fix the reffing. 2011-02-10 Stefan Kost * tests/m-bt-edit.c: Cleanup before and after the tests to be paranoid (when test dies the cleanup could be skipped). 2011-02-10 Stefan Kost * src/lib/core/song-io.c: * src/ui/edit/change-log.c: Use glib dir reading functions. 2011-02-09 Stefan Kost * src/ui/edit/edit-application.c: * tests/Makefile.am: * tests/m-bt-edit.c: Use XDG_CACHE_HOME dir instead of suppressing the crash check. Remove all eventual left-overs in tear-down. 2011-02-09 Stefan Kost * tests/lib/core/e-song-io-native.c: * tests/ui/edit/e-bt-edit-application.c: Add more tests and unify the ref-count logging. Apparently we unref a machine somewhere too much (looks like pattern-view). 2011-02-09 Stefan Kost * src/ui/edit/pattern-editor.c: Use more local variables to avoid pointer derefs and make calls shorter. More comemnts and formatting cleanups. 2011-02-08 Stefan Kost * src/ui/edit/pattern-editor.c: Improve variable naming for readablility. Keep max_y an int in bt_pattern_editor_draw_column() to fix the comparission and with that the disappearing pattern when scrolling down (y get negative). 2011-02-08 Stefan Kost * src/ui/edit/main-page-machines.c: Also take new position from machine and not from properties to avoid race in event handling. 2011-02-08 Stefan Kost * design/led/setled.c: Cleanups on the log messages and more comments. 2011-02-08 Stefan Kost * src/ui/edit/change-log.c: Move the crashlog check to else branch. * src/ui/edit/edit-application.c: * tests/Makefile.am: Use an envvar to disable the crashlog check during tests. 2011-02-08 Stefan Kost * design/led/setled.c: * design/led/setled.c (svn:keywords, svn:eol-style): * design/led (added): * design/led/setled.c (added): Add a keyboard led hack. 2011-02-07 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-machines.c: Update machine pos for every move and make it undo/redoable. 2011-02-06 Stefan Kost * docs/help/bt-edit/C/Makefile.am: * docs/help/bt-edit/C/buzztrax-edit.xml: Small doc fixes and better pdf creation. 2011-02-06 Stefan Kost * configure.ac: * src/lib/ic/Makefile.am: * src/lib/ic/gudev-discoverer.c: * src/lib/ic/hal-discoverer.c: * src/lib/ic/ic_private.h: * src/lib/ic/libbuzztrax-ic/Makefile.am: * src/lib/ic/libbuzztrax-ic/gudev-discoverer-methods.h: * src/lib/ic/libbuzztrax-ic/gudev-discoverer.h: * src/lib/ic/libbuzztrax-ic/hal-discoverer-methods.h: * src/lib/ic/libbuzztrax-ic/hal-discoverer.h: * src/lib/ic/libbuzztrax-ic/ic.h: * src/lib/ic/libbuzztrax-ic/registry-methods.h: * src/lib/ic/registry.c: * src/lib/ic/libbuzztrax-ic/hal-discoverer.h (svn:keywords, svn:eol- style): * src/lib/ic/gudev-discoverer.c (svn:keywords, svn:eol-style): * src/lib/ic/hal-discoverer.c (svn:keywords, svn:eol-style): * src/lib/ic/libbuzztrax-ic/gudev-discoverer.h (svn:keywords, svn:eol- style): * src/lib/ic/libbuzztrax-ic/hal-discoverer-methods.h (svn:keywords, svn :eol-style): * src/lib/ic/libbuzztrax-ic/gudev-discoverer-methods.h (svn:keywords, svn:eol-style): * src/lib/ic/libbuzztrax-ic/hal-discoverer.h (added): * src/lib/ic/libbuzztrax-ic/hal-discoverer-methods.h (added): * src/lib/ic/libbuzztrax-ic/gudev-discoverer.h (added): * src/lib/ic/libbuzztrax-ic/gudev-discoverer-methods.h (added): * src/lib/ic/hal-discoverer.c (added): * src/lib/ic/gudev-discoverer.c (added): Refactor the device discovery. We now have separate discoverer objects. This way we have less ifdefs in the registry and we have pre- pared to add more discoverers in the future (jack-midi, alsa-seq). 2011-02-03 Stefan Kost * pixmaps/hicolor/16x16/buzztrax.png: * pixmaps/hicolor/48x48/buzztrax.png: * pixmaps/hicolor/scalable/buzztrax.svg: Get rid of the old logo. 2011-02-03 Stefan Kost * NEWSLETTER: Sent NEWS. * docs/help/bt-edit/C/Makefile.am: Use dblatex to make the pdf. * docs/help/bt-edit/C/buzztrax-edit.xml: Fix a typo. 2011-02-03 Stefan Kost * NEWSLETTER: Collect NEWS. 2011-02-02 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-machines.c: Add a "connect machines" context menu entry. This is easier to discover than the shft-drag. 2011-01-31 Stefan Kost * src/ui/edit/main-page-machines.c: Planning. 2011-01-31 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Make key-repeat work by listening for key-press-event and not key-release-event. 2011-01-30 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/wire-canvas-item.c: Simplify the handling of the machine position updates. It now updates according to the machine position while moving and only updates the machine properties hash when releasing the mouse. 2011-01-30 Stefan Kost * src/ui/edit/change-log.c: Improve the API docs. Update TODO comments. Cleanup on sucessful recovery. 2011-01-30 Stefan Kost * src/ui/edit/crash-recover-dialog.c: Also show a dialog when recovery failed. 2011-01-30 Stefan Kost * src/ui/edit/main-page-machines.c: Add more TODO comments. 2011-01-30 Stefan Kost * src/ui/edit/main-page-patterns.c: Add a missing return value. 2011-01-30 Stefan Kost * src/ui/edit/change-log.c: Write the groups in reverse order to journal. 2011-01-29 Stefan Kost * src/ui/edit/change-log.c: * src/ui/edit/main-page-machines.c: Update TODO comments. 2011-01-29 Stefan Kost * src/ui/edit/main-page-machines.c: Implement undo/redo for machine:state. Update TODOs. 2011-01-29 Stefan Kost * src/lib/ic/midi-device.c: Fix leftover unused var. 2011-01-26 Stefan Kost * src/lib/ic/ic_private.h: * src/lib/ic/midi-device.c: Add an attempt to send a midi identity request. 2011-01-26 Stefan Kost * NEWSLETTER: Collect news. 2011-01-26 Stefan Kost * src/ui/edit/main-window.c: Tell how much time has passed since last save or creation time. 2011-01-26 Stefan Kost * src/lib/buzztrax.xml.in: Remove the glob, as with this we steal the xml extension. The issue is that most cases don't do proper matching. As a result calling help from some apps, would invoke us instead of the help browser. 2011-01-26 Stefan Kost * src/ui/edit/machine-properties-dialog.c: Don't leak context menus. 2011-01-26 Stefan Kost * src/lib/ic/midi-device.c: Improve midi command parsing. Add defines. Remove testing leftovers. Add support for pitch-wheel and continous control events. 2011-01-19 Stefan Kost * src/ui/edit/machine-preferences-dialog.c: Disconnect the machine-id-changed handler. * src/ui/edit/machine-properties-dialog.c: Disconnect the wire-src-id-changed handler when the wire is removed or window is closed. 2011-01-19 Stefan Kost * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: Update titles and labels and machine name changes. 2011-01-18 Stefan Kost * src/ui/edit/machine-canvas-item.c: Whitespaces. * src/ui/edit/main-page-machines.c: Make undo/redo for machine pos work. 2011-01-18 Stefan Kost * src/ui/edit/main-page-machines-methods.h: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: Unify group handling on item removal. Make one internal method returning sucess status. 2011-01-16 Stefan Kost * src/ui/edit/main-page-machines.c: Add set_machine_property command to store/restore machine pos. 2011-01-16 Stefan Kost * src/ui/edit/main-page-patterns.c: Fix null-ptr deref in pattern-data serialisation. 2011-01-16 Stefan Kost * src/ui/edit/main-page-patterns.c: Implement undo/redo pattern data on pattern/machine removal. 2011-01-16 Stefan Kost * src/ui/dec/bt-dec.c: Improve typefinding and caps. We're now putting the mimetype into a format field of the container caps. 2011-01-16 Stefan Kost * src/ui/edit/Makefile.am: Fix make distcheck. 2011-01-14 Stefan Kost * configure.ac: * src/ui/edit/Makefile.am: * src/ui/edit/buzztrax-edit.desktop.in.in (deleted): Fix desktop-file. The version field in there is the spec version. Also finally fix double .in resolving. 2011-01-13 Stefan Kost * src/ui/edit/main-page-patterns.c: Add undo/redo for insert/delete. 2011-01-12 Stefan Kost * src/ui/edit/main-page-patterns.c: Refactor undo/redo code. We can now take snapshots before and after changes and then log the respective undo/redo. 2011-01-12 Stefan Kost * src/ui/edit/main-page-patterns.c: Don't iterate over PatternGroup array size. 2011-01-12 Stefan Kost * src/ui/edit/main-page-patterns.c: Have full undo/redo for blend/randomize/.. 2011-01-11 Stefan Kost * src/ui/edit/change-log.c: Use a much bigger buffer for reading the actual changelog data lines. 2011-01-11 Stefan Kost * src/ui/edit/main-page-patterns.c: Have undo/redo for blend/randomize/.. (single dolumns only). 2011-01-11 Stefan Kost * src/ui/edit/main-page-patterns.c: Change pattern data serialisation to use columns with n-ticks. Update deserialisation in the same way. We can reuse this for other edits. 2011-01-10 Stefan Kost * src/ui/edit/main-page-patterns.c: Use enums for switch-case more often. Another TODO comment for undo/redo of pattern data. 2011-01-10 Stefan Kost * src/lib/core/buzzcallbacks.c: Whitespace cleanup. * src/ui/edit/main-page-patterns.c: Remove old ifdef'ed code. Use enums for switch-case. TODO comment. 2010-12-20 Stefan Kost * NEWSLETTER: Collect news. * src/ui/edit/change-log.c: Update status. * src/ui/edit/main-page-patterns.c: Planning. 2010-12-20 Stefan Kost * src/ui/edit/crash-recover-dialog.c: Close the dialog after a good recovery. Inform the user. 2010-12-20 Stefan Kost * src/ui/edit/main-menu.c: Check for unsaved changes before invoking the song recovery from the menu. Ensure we have an empty song if we proceed. 2010-12-20 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/main-window-methods.h: * src/ui/edit/main-window.c: Add a new methods to check if current song is unsaved and if so ask the user to confirm loosing the changes. 2010-12-20 Stefan Kost * src/ui/edit/change-log.c: For new songs we need to copy the events to the new log. 2010-12-20 Stefan Kost * src/lib/core/setup.c: Log machine id. * src/ui/edit/main-page-patterns.c: We need to create wire-patterns as needed. 2010-12-20 Stefan Kost * src/ui/edit/main-page-patterns.c: Add unod/redo for wire-columns. 2010-12-18 Stefan Kost * src/ui/edit/crash-recover-dialog.c: Better default size. 2010-12-16 Stefan Kost * src/ui/edit/ui-resources.c: * src/ui/edit/wire-canvas-item.c: G_OBJECT_REF_COUNT() checks for obj!=NULL now. 2010-12-16 Stefan Kost * src/lib/core/machine.c: * src/lib/core/sequence.c: * src/ui/cmd/cmd-application.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * tests/lib/core/e-processor-machine.c: * tests/lib/core/e-sink-machine.c: * tests/lib/core/e-source-machine.c: When returning pattern-lists in machine ref them. Change the code to unref the machines when using the lists. Add a trickt in debug mode to catch unexpected pattern finalization. 2010-12-16 Stefan Kost * src/ui/edit/main-page-patterns.c: Fix a leak. 2010-12-16 Stefan Kost * src/ui/edit/main-page-machines.c: Handle item==NULL. 2010-12-16 Stefan Kost * src/ui/edit/edit-application.c: Cleanup debugging code. 2010-12-16 Stefan Kost * src/lib/core/song.c: G_OBJECT_REF_COUNT() checks for obj!=NULL now. 2010-12-16 Stefan Kost * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: Use the right variable in warning. 2010-12-16 Stefan Kost * configure.ac: Use -Bsymbolic linker flag where supported. 2010-12-16 Stefan Kost * src/lib/core/gconf-settings.c: * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/setup.c: * src/lib/core/song.c: * src/lib/core/wave.c: * src/lib/core/wavetable.c: * src/lib/core/wire-pattern.c: * tests/bt-check.c: Fixes for a build with debug disabled. 2010-12-14 Stefan Kost * NEWSLETTER: Wrote and sent news. 2010-12-13 Stefan Kost * src/lib/core/sink-bin.c: Planning. 2010-12-10 Stefan Kost * src/ui/edit/machine-preferences-dialog.c: Make string and checkbox preferences work. Add todos. * src/ui/edit/machine-properties-dialog.c: Whitespace. 2010-12-06 Stefan Kost * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/wire-analysis-dialog.c: Use g_value_dup_object() instead of get & ref. 2010-12-05 Stefan Kost * tests/refcount.gdb: Small fixups (tops and removed testing left-overs). * tests/refcount2.gdb: * tests/refcount2.gdb (added): Try to catch traces for more objects. 2010-12-04 Stefan Kost * TODO: Brooming. 2010-12-04 Stefan Kost * src/ui/edit/bt-edit.gtkrc: * src/ui/edit/main-page-waves.c: Use slim treeviews on the waves pages as well. 2010-12-04 Stefan Kost * src/ui/edit/main-menu.c: Use a toggle menu for fullscreen like anyone else. Gtk is not showing the icons in the menu anymore anyway (by default). 2010-12-04 Stefan Kost * src/ui/edit/main-page-sequence.c: Ensure that we set a (empty) model on pattern-list to show the columns. 2010-12-04 Stefan Kost * src/ui/edit/main-window.c: Use same detailed warning when losing unsaved changed due to "new" like we do for "Load". 2010-12-04 Stefan Kost * src/ui/edit/crash-recover-dialog.c: Formatting and comment. 2010-12-02 Stefan Kost * src/lib/core/machine.c: * src/lib/core/setup.c: Avoid scanning the lists twice when removing entries. 2010-12-02 Stefan Kost * src/ui/edit/crash-recover-dialog.c: Try tuning listview a bit. * src/ui/edit/main-page-sequence.c: Indenting. 2010-12-02 Stefan Kost * src/ui/edit/crash-recover-dialog.c: First get next entry and then delete and reselect. 2010-12-02 Stefan Kost * src/ui/edit/crash-recover-dialog.c: Reselect an entry after removing one. 2010-12-01 Stefan Kost * src/ui/edit/main-page-sequence.c: Remove unused var and the related ref/unref. 2010-11-29 Stefan Kost * src/ui/edit/main-page-patterns.c: Unref previous pattern before setting new active pattern. 2010-11-29 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/change-log-methods.h: * src/ui/edit/machine-menu.c: API docs update. 2010-11-29 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/main-page-patterns-methods.h: * src/ui/edit/main-page-patterns.c: Also refactor 2 internaly used methods into static functions and cache the current machine. 2010-11-29 Stefan Kost * src/ui/edit/main-page-sequence-methods.h: And also commit the changes in the header for prev. commit. 2010-11-29 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/main-page-sequence.c: We wwere using this function only one and that was even localy, so remove it. 2010-11-28 Stefan Kost * tests/refcount.gdb: * tests/refcountfilter.pl: * tests/refcount.gdb (added): * tests/refcountfilter.pl (added): Add scripts for ref-count debugging. 2010-11-28 Stefan Kost * docs/reference/bt-cmd/.cvsignore: * docs/reference/bt-edit/.cvsignore: Ignore more. 2010-11-28 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/change-log-methods.h: * src/ui/edit/change-log.c: Add new api to check if the change log has an active context. * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: Change handling of groups, so that we tap into the object lifecycle. This avoid duplicated object traversal. 2010-11-28 Stefan Kost * src/ui/edit/main-page-sequence.c: Fix a temporary ref-leak. This fixes the test_machine_ref test. 2010-11-28 Stefan Kost * src/ui/edit/main-page-sequence.c: Avoid some re-fetching of data. Code cleanups. 2010-11-28 Stefan Kost * src/lib/core/sequence.c: Fix format string. * src/ui/edit/main-page-sequence.c: Add a lot more ref count logging. Whitespace and comment cleanups. 2010-11-28 Stefan Kost * tests/ui/edit/e-bt-machine-page.c: Reshuffle refs. 2010-11-28 Stefan Kost * tests/bt-check.h: Make macros free of side effects by using the temp var. 2010-11-28 Stefan Kost * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/tools.c: Some attempt for tagging ref-counts to aid debugging. Unused as of side effects. 2010-11-27 Stefan Kost * src/ui/edit/main-menu.c: Fix the build. 2010-11-27 Stefan Kost * src/lib/core/sequence.c: More logging and code cleanup. * src/lib/core/setup.c: More logging. * src/ui/edit/main-menu.c: Small name cleanup. 2010-11-27 Stefan Kost * tests/bt-check.h: * tests/bt-test-plugin.c: * tests/lib/core/e-song-io-native.c: * tests/ui/cmd/e-bt-cmd-application.c: * tests/ui/cmd/t-bt-cmd-application.c: * tests/ui/edit/e-bt-about-dialog.c: * tests/ui/edit/e-bt-change-log.c: * tests/ui/edit/e-bt-controller-learn-dialog.c: * tests/ui/edit/e-bt-edit-application.c: * tests/ui/edit/e-bt-interaction-controller-menu.c: * tests/ui/edit/e-bt-machine-actions.c: * tests/ui/edit/e-bt-machine-page.c: * tests/ui/edit/e-bt-machine-preferences-dialog.c: * tests/ui/edit/e-bt-machine-preset-properties-dialog.c: * tests/ui/edit/e-bt-machine-properties-dialog.c: * tests/ui/edit/e-bt-machine-rename-dialog.c: * tests/ui/edit/e-bt-missing-framework-elements-dialog.c: * tests/ui/edit/e-bt-missing-song-elements-dialog.c: * tests/ui/edit/e-bt-pattern-page.c: * tests/ui/edit/e-bt-pattern-properties-dialog.c: * tests/ui/edit/e-bt-render-dialog.c: * tests/ui/edit/e-bt-render-progress-dialog.c: * tests/ui/edit/e-bt-settings-dialog.c: * tests/ui/edit/e-bt-tip-dialog.c: * tests/ui/edit/e-bt-wire-analysis-dialog.c: * tests/ui/edit/t-bt-pattern-page.c: Use out gobject-ref count accessor macro. 2010-11-27 Stefan Kost * src/lib/core/machine.c: * src/lib/core/wire.c: Deactivate deep-notifies. 2010-11-26 Stefan Kost * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/processor-machine.c: * src/lib/core/setup.c: * src/lib/core/sink-machine.c: * src/lib/core/source-machine.c: Add more ref count logging and unify the log lines. 2010-11-26 Stefan Kost * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: * src/ui/cmd/Makefile.am: * src/ui/edit/Makefile.am: Remove double libintl entries and reorder libs. 2010-11-25 Stefan Kost * src/ui/edit/main-page-sequence.c: Disconnect more signal handlers when shutting down. 2010-11-25 Stefan Kost * src/ui/edit/main-page-patterns.c: More ref-leak fixes. 2010-11-25 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Comment and logging changes. 2010-11-25 Stefan Kost * src/ui/edit/main-page-patterns.c: Fix a few ref count leaks. 2010-11-25 Stefan Kost * src/ui/edit/main-page-patterns.c: Remove left over quarks. 2010-11-25 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Small logging update. 2010-11-25 Stefan Kost * configure.ac: Tell wheter we build check based unit test in final sumary. 2010-11-25 Stefan Kost * src/ui/edit/main-page-patterns.c: * tests/ui/edit/e-bt-machine-page.c: Try to remove other pages to narrow down ref-leak. 2010-11-25 Stefan Kost * po/POTFILES.in: Add new source files. 2010-11-24 Stefan Kost * tests/ui/edit/e-bt-machine-page.c: Fix some silly typos in the new test. 2010-11-24 Stefan Kost * tests/ui/edit/e-bt-change-log.c: Make change-log test work again. 2010-11-24 Stefan Kost * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-change-log.c: * tests/ui/edit/e-bt-machine-page.c: * tests/ui/edit/s-bt-machine-page.c: * tests/ui/edit/s-bt-pattern-page.c: * tests/ui/edit/e-bt-machine-page.c (svn:keywords, svn:eol-style): * tests/ui/edit/s-bt-machine-page.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-machine-page.c (added): * tests/ui/edit/s-bt-machine-page.c (added): Add a new test for machine page. 2010-11-24 Stefan Kost * tests/ui/edit/e-bt-change-log.c: A few updates for API changes. We seem to still have a ref-leak. 2010-11-24 Stefan Kost * configure.ac: Handle gconf-less build better. 2010-11-16 Stefan Kost * src/ui/edit/main-page-machines.c: Try the new undo/redo groups and include wires when removing a machine. 2010-11-15 Stefan Kost * src/ui/edit/main-page-machines.c: More planning on change groups. 2010-11-15 Stefan Kost * src/ui/edit/change-log.c: Redo groups in reverse order. 2010-11-14 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/change-log-methods.h: * src/ui/edit/change-log.c: Implement change grouping into signle undo/redo-able items. 2010-11-14 Stefan Kost * src/ui/edit/change-log.c: Set log to be line-buffered so that we don't need to call fflush(). Add more planning comments. 2010-11-14 Stefan Kost * src/ui/edit/main-page-patterns.c: Add undo/redo for add/remove patterns. 2010-11-13 Stefan Kost * NEWSLETTER: Wrote and sent news. 2010-11-11 Stefan Kost * src/ui/edit/change-log.c: Free the logfile also if there is no new song. * src/ui/edit/edit-application.c: Set song to NULL to be sure that noone reds it afterwards. * src/ui/edit/main-page-machines.c: Unref the change-log to ensure that the log is removed at exit. 2010-11-11 Stefan Kost * src/ui/edit/change-log.c: * src/ui/edit/change-log.h: Sort the log entries by mtime. * src/ui/edit/crash-recover-dialog.c: Set a better initial size. 2010-11-11 Stefan Kost * src/ui/edit/main-page-waves.c: Disable a minimal size hack, as it was still causing clipping on some font+theme combos. 2010-11-11 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/main-page-machines-methods.h: * src/ui/edit/main-page-machines.c: * src/ui/edit/wire-canvas-item.c: Implement serializing wire removal. 2010-11-11 Stefan Kost * src/ui/edit/main-page-waves.c: Set the fixed chars width of index column in wavetable list. Whitespace fixes. 2010-11-10 Stefan Kost * docs/help/bt-edit/C/buzztrax-edit.xml: Add small tracker tutorial and improve wavetable section. * omf.make: Fix srcdir!=builddir 2010-11-09 Stefan Kost * docs/help/bt-edit/C/buzztrax-edit.xml: Small doc clarification for using the wave-table. 2010-11-08 Stefan Kost * src/ui/edit/main-page-machines.c: Basic undo/redo of adding/removing wires. Removing needs to serialize the action still. 2010-11-08 Stefan Kost * src/ui/edit/main-toolbar.c: Properly reset trickplay modes. Spotted by Joe Pea. 2010-11-07 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/lib/core/libbuzztrax-core/setup-methods.h: * src/lib/core/setup.c: * src/ui/edit/change-logger-methods.h: * src/ui/edit/change-logger.c: * src/ui/edit/change-logger.h: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu-methods.h: * src/ui/edit/machine-menu.c: * src/ui/edit/main-page-machines-methods.h: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: Refactor adding/removing machines, so that we have the main work in the machine-page class. Implement basic undo/redo there. 2010-11-07 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-edit/Makefile.am: Also move the man-page rules into the conditional section. 2010-11-04 Stefan Kost * configure.ac: Allow disabling the gobject introspection to get things building if gi got changed. Should Fix #3102744. 2010-11-02 Stefan Kost * src/ui/dec/bt-dec.c: Comment fix and TODO update. 2010-11-02 Stefan Kost * src/ui/edit/main-page-machines.c: Add change-logger iface and add todo comments. * src/ui/edit/main-page-patterns.c: Fix string leak and add more comments. Factor out code to update machine and pattern. 2010-11-02 Stefan Kost * NEWS: Prepare NEWS * NEWSLETTER: Prepare monthly NEWS 2010-10-15 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/change-log.c: * src/ui/edit/edit-application-methods.h: * src/ui/edit/edit-application.c: * src/ui/edit/main-menu.c: Add a menu item for recovering change-log entries. Refactor code in edit application to expose running the dialog as public method. 2010-10-15 Stefan Kost * src/ui/edit/change-log-methods.h: * src/ui/edit/change-log.c: * src/ui/edit/edit-application.c: Add a "crash-logs" property to change log to get acccess to the found crash logs. Make bt_change_log_crash_check private. 2010-10-13 Stefan Kost * src/lib/core/pattern.c: * src/lib/core/sequence.c: * src/lib/core/wire-pattern.c: Do a two pass update we insert/delete wos/columns so that we invalidate what was there before and what is after the change. This fixes not updating e.g. the cell on the cursor when inserting. Fixes #3086450. 2010-10-13 Stefan Kost * NEWSLETTER: News sent. * src/lib/core/machine.c: Small comment fix. * src/lib/core/sequence.c: Whitespace fix. * tests/Makefile.am: Use target in rule. 2010-10-06 Stefan Kost * design/input/jstest.c: Fix a leak in a test. 2010-09-25 Stefan Kost * NEWSLETTER: Collect things I did. * src/ui/edit/change-log.c: * src/ui/edit/crash-recover-dialog.c: More planning. Handle return code more. Allow deleting left over crash logs. * src/ui/edit/edit-application.c: Comment and disable a sanity check in releases. 2010-09-24 Stefan Kost * src/ui/edit/change-log.c: * src/ui/edit/crash-recover-dialog.c: Move planning. * src/ui/edit/main-page-patterns.c: Don't crash when having no pattern. 2010-09-24 Stefan Kost * src/lib/ic/registry.c: Add a comment with udevadm example. * src/ui/edit/change-log.c: Create unique change-log names. Add some more thoughts. * src/ui/edit/crash-recover-dialog.c: Update doc-blob. Add more thoughts. * src/ui/edit/settings-dialog.c: Remove commented out line. 2010-09-24 Stefan Kost * src/ui/edit/crash-recover-dialog.c: * src/ui/edit/settings-dialog.c: Improve dialog layouts. 2010-09-24 Stefan Kost * src/lib/ic/registry.c: Get human readable names from gudev. 2010-09-24 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/change-log-methods.h: * src/ui/edit/change-log.c: * src/ui/edit/crash-recover-dialog.c: * src/ui/edit/main-page-patterns.c: Register ChangeLoggers and run reply. 2010-09-23 Stefan Kost * src/ui/edit/change-log.c: Flesh out recovery a bit more. 2010-09-23 Stefan Kost * src/lib/core/gconf-settings.c: Defer loading gconf keys until we need them. * src/ui/cmd/cmd-application.c: Remove hack running mainloop as a thread. This was causing some tests to fails as we quiteed the mainloop from the main-thread. 2010-09-22 Stefan Kost * src/ui/cmd/bt-cmd.c: Remove testing left-over. * src/ui/edit/about-dialog-methods.h: * src/ui/edit/tip-dialog-methods.h: * src/ui/edit/tip-dialog.c: * src/ui/edit/tip-dialog.h: Clean up copy and paste comments. * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/change-log.c: * src/ui/edit/change-log.h: * src/ui/edit/crash-recover-dialog-methods.h: * src/ui/edit/crash-recover-dialog.c: * src/ui/edit/crash-recover-dialog.h: * src/ui/edit/edit-application.c: * src/ui/edit/crash-recover-dialog-methods.h (svn:keywords, svn:eol- style): * src/ui/edit/crash-recover-dialog.h (svn:keywords, svn:eol-style): * src/ui/edit/crash-recover-dialog.c (svn:keywords, svn:eol-style): * src/ui/edit/crash-recover-dialog.c (added): * src/ui/edit/crash-recover-dialog.h (added): * src/ui/edit/crash-recover-dialog-methods.h (added): Add basic crash recover dialog. Gather more info in the crash log checker. Setup most of the workflow for replay. 2010-09-22 Stefan Kost * design/settings/gconftest.c: Add gconf tracing var. 2010-09-22 Stefan Kost * design/settings/gconftest.c: * design/settings/gconftest.c (svn:keywords, svn:eol-style): * design/settings (added): * design/settings/gconftest.c (added): Add a simple gconf test. * src/lib/core/gconf-settings.c: Handle more errors and add more logging. 2010-09-21 Stefan Kost * design/gobject/gobjectlife.c: * design/gobject/gobjectnotify.c: * design/gobject/gobjectpropflags.c: * design/gobject/gobjectprops.c: * design/gobject/gobjectprops.c (svn:keywords, svn:eol-style): * design/gobject/gobjectnotify.c (svn:keywords, svn:eol-style): * design/gobject/gobjectlife.c (svn:keywords, svn:eol-style): * design/gobject/gobjectpropflags.c (svn:keywords, svn:eol-style): * design/gobject/gobjectprops.c (added): * design/gobject/gobjectnotify.c (added): * design/gobject/gobjectpropflags.c (added): * design/gobject/gobjectlife.c (added): Add gobject tests. 2010-09-21 Stefan Kost * src/lib/core/wave.c: Set loader pipeline state to NULL before freeing. 2010-09-21 Stefan Kost * src/lib/core/gconf-settings.c: * src/lib/core/plainfile-settings.c: * tests/bt-test-settings.c: Small string gvalue optimization. 2010-09-21 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-core/Makefile.am: * docs/reference/bt-edit/Makefile.am: * docs/reference/bt-ic/Makefile.am: Update doc makefiles for srcdir!=builddir. * src/lib/core/settings.c: * src/lib/ic/registry.c: * src/ui/edit/change-log.c: * src/ui/edit/edit-application.c: * src/ui/edit/ui-resources.c: Use weak_pointers to nullify singleton on last finalize. Allows us to avoid finalize impls here and there. 2010-09-21 Stefan Kost * Makefile.am: Remove some more shave leftovers. * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: Fix distcheck for generated pc file. * src/lib/core/gconf-settings.c: Also disconnect the signal watch. 2010-09-20 Stefan Kost * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: More use of G_DEFINE_TYPE in ui. 2010-09-20 Stefan Kost * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/sequence-view.c: * src/ui/edit/tip-dialog.c: More use of G_DEFINE_TYPE in ui. 2010-09-20 Stefan Kost * src/ui/edit/main-page-sequence.c: Fix assertion in focus() vmethod impl. 2010-09-20 Stefan Kost * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/panorama-popup.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/ui-resources.c: * src/ui/edit/volume-popup.c: * src/ui/edit/wave-viewer.c: * src/ui/edit/wire-analysis-dialog.c: More use of G_DEFINE_TYPE in ui. 2010-09-20 Stefan Kost * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/wire-canvas-item.c: More use of G_DEFINE_TYPE in ui. 2010-09-20 Stefan Kost * NEWS: Allow running make distcheck. * src/lib/ic/registry.c: Whitespace. * src/ui/edit/tools.h: Fix include, we don't need the local one anymore. * tests/bt-check.c: Fix build with deprecated api. 2010-09-19 Stefan Kost * src/lib/ic/registry.c: Add one extra comment. * src/ui/edit/about-dialog.c: * src/ui/edit/change-log.c: * src/ui/edit/change-logger.c: * src/ui/edit/edit-application.c: * src/ui/edit/gtkvumeter.c: Start using G_DEFINE_TYPE in ui. 2010-09-19 Stefan Kost * src/lib/ic/registry.c: Add oss midi devices. Add info about how to get better names. Fix the build when using HAL. 2010-09-15 Stefan Kost * src/lib/core/gconf-settings.c: Debug logging. * src/lib/ic/registry.c: Don't hide devices without controls, if the implement learn iface. 2010-09-15 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-cmd/buzztrax-cmd-docs.sgml: * docs/reference/bt-cmd/buzztrax-cmd-sections.txt: * docs/reference/bt-core/Makefile.am: * docs/reference/bt-core/buzztrax-core-docs.sgml: * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-edit/Makefile.am: * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * docs/reference/bt-ic/Makefile.am: * docs/reference/bt-ic/buzztrax-ic-docs.sgml: * docs/reference/bt-ic/buzztrax-ic-sections.txt: * src/lib/core/libbuzztrax-core/song-io.h: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/libbuzztrax-core/wire.h: * src/lib/core/tools.c: * src/ui/edit/change-log.c: Documentation cleanup. 2010-09-14 Stefan Kost * src/lib/ic/registry.c: Add basic midi device filtering and pointer to how it was done in hal. 2010-09-14 Stefan Kost * NEWS: * docs/reference/bt-ic/buzztrax-ic-sections.txt: * src/lib/ic/device.c: * src/lib/ic/libbuzztrax-ic/device-methods.h: * src/lib/ic/registry.c: Use "sound" as subsytem for "alsa/oss". Dump device properties. Hide devices with no controls. 2010-09-14 Stefan Kost * src/lib/ic/input-device.c: * src/lib/ic/midi-device.c: Remove crap from _new() functions. 2010-09-14 Stefan Kost * configure.ac: * src/lib/ic/ic.c: * src/lib/ic/ic_private.h: * src/lib/ic/registry.c: Initial port for hal->gudev. 2010-09-13 Stefan Kost * src/lib/ic/registry.c: Check more errors and add more logging. * src/ui/cmd/bt-cmd.c: * src/ui/dec/bt-dec.c: Also init btic here (as we might load songs with ic-assignments. 2010-09-13 Stefan Kost * configure.ac: Remove commented out liboil code. 2010-09-10 Stefan Kost * NEWSLETTER: Gather NEWS. * src/ui/edit/main-page-patterns.c: Log object name too. 2010-09-08 Stefan Kost * src/ui/dec/bt-dec.c: Don't leak file extension array. 2010-09-07 Stefan Kost * src/lib/core/core.c: * src/lib/core/wave.c: Whitespace. * src/lib/core/wavelevel.c: Add missing weak_unref, fixes valgrind warning. * src/lib/core/wavetable.c: Reflow. 2010-09-07 Stefan Kost * src/lib/core/machine.c: Whitespaces. * src/lib/core/wire.c: Fix leaked pads. 2010-09-06 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/dec/bt-dec.c: * src/ui/edit/about-dialog.c: * src/ui/edit/machine-actions.c: * src/ui/edit/machine-actions.h: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/tools.c: * src/ui/edit/tools.h: Refactor for upcomming help iface removal. Use a common gtk_show_uri_simple(), not that we don't need the machine_help action anymore. 2010-09-05 Stefan Kost * src/lib/ic/learn.c: No need for the one time init check. 2010-09-05 Stefan Kost * src/lib/ic/learn.c: Small paramspec flag update. 2010-09-03 Stefan Kost * src/lib/ic/control.c: * src/lib/ic/device.c: This got fixed at some point in time. 2010-09-03 Stefan Kost * NEWSLETTER: Collect NEWS. 2010-09-03 Stefan Kost * src/lib/ic/abs-range-control.c: * src/lib/ic/control.c: * src/lib/ic/device.c: * src/lib/ic/input-device.c: * src/lib/ic/learn.c: * src/lib/ic/midi-device.c: * src/lib/ic/registry.c: * src/lib/ic/trigger-control.c: Use G_DEFINE_TYPE and co. 2010-09-02 Stefan Kost * src/lib/core/application.c: * tests/m-bt-edit.c: More logging. * tests/ui/edit/e-bt-controller-learn-dialog.c: In any case destroy the main window. Fixes the test. 2010-09-02 Stefan Kost * src/lib/core/song-info.c: Whitespace. * src/ui/edit/bt-edit.h: * src/ui/edit/main-window.c: Convert time to local timezone and show in local format. Also use different message for existing and new songs. 2010-09-01 Stefan Kost * src/lib/core/settings.c: * tests/lib/core/e-sink-machine.c: * tests/lib/core/e-song-io-native.c: * tests/lib/core/e-song.c: * tests/lib/core/t-sink-machine.c: * tests/m-bt-edit.c: * tests/ui/edit/e-bt-edit-application.c: More test cleanup and extra logging for test settings. We definitely have to use the factory method to get the singleton. 2010-08-31 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-edit/Makefile.am: Fix build without gtk-doc. 2010-08-31 Stefan Kost * src/ui/cmd/cmd-application.c: * src/ui/dec/bt-dec.c: More G_DEFINE_TYPE and co. use. 2010-08-31 Stefan Kost * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Removed the delayed focus grabs as we have overridden the vmethods. The idle ones where breaking the tests. * tests/bt-check.c: Try to kill those [Xlib: extension "RANDR" missing on display ":1.0".] messages once more, to no avail. * tests/m-bt-edit.c: Cleanup some commented out stuff. 2010-08-31 Stefan Kost * src/ui/Makefile.am: * src/ui/dec/bt-dec.c: Enable bt-dec now. Add a built-in app subclass to fix gobject warnings (btapp is now abstract). Fix typefinder to match only known mimetypes. Remove left-over parameter on the app-constructor. 2010-08-31 Stefan Kost * src/lib/core/libbuzztrax-core/settings-private.h: * tests/bt-test-settings.c: * tests/bt-test-settings.h: Add missing entries to test settings. * tests/m-bt-edit.c: * tests/ui/edit/e-bt-controller-learn-dialog.c: * tests/ui/edit/e-bt-edit-application.c: WIP of getting some sane default settings. Tests fails as the tips dialog is comming up by default. 2010-08-31 Stefan Kost * src/lib/core/application.c: * tests/Makefile.am: * tests/bt-check.h: * tests/bt-test-application.c: * tests/bt-test-application.h: * tests/bt-test-plugin.c: * tests/bt-test-settings.c: * tests/lib/core/e-machine.c: * tests/lib/core/e-network.c: * tests/lib/core/e-pattern.c: * tests/lib/core/e-processor-machine.c: * tests/lib/core/e-sequence.c: * tests/lib/core/e-setup.c: * tests/lib/core/e-sink-machine.c: * tests/lib/core/e-song-info.c: * tests/lib/core/e-song-io-native.c: * tests/lib/core/e-song.c: * tests/lib/core/e-source-machine.c: * tests/lib/core/e-wire-pattern.c: * tests/lib/core/t-machine.c: * tests/lib/core/t-network.c: * tests/lib/core/t-pattern.c: * tests/lib/core/t-sequence.c: * tests/lib/core/t-setup.c: * tests/lib/core/t-sink-machine.c: * tests/lib/core/t-song-io-native.c: * tests/lib/core/t-song-io.c: * tests/lib/core/t-song.c: * tests/lib/core/t-source-machine.c: * tests/lib/core/t-wire.c: * tests/ui/edit/e-bt-edit-application.c: * tests/bt-test-application.h (svn:keywords, svn:eol-style): * tests/bt-test-application.c (svn:keywords, svn:eol-style): * tests/bt-test-application.c (added): * tests/bt-test-application.h (added): Big test cleanup. Use a test application to be able to make application an abstract base class. Simplify some of the test settings use. 2010-08-30 Stefan Kost * src/lib/core/childproxy.c: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/persistence.c: Use G_DEFINE_INTERFACE and conditioaly add glib defines for people with older glibs. 2010-08-30 Stefan Kost * src/lib/core/wire.c: Remove threadbarrier experiemnt and use "silent" property on queue if available. 2010-08-29 Stefan Kost * src/lib/core/application.c: * src/lib/core/gconf-settings.c: * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/plainfile-settings.c: * src/lib/core/settings.c: More G_DEFINE_TYPE usage. libbuzztraxcore is done. 2010-08-29 Stefan Kost * src/lib/core/libbuzztrax-core/processor-machine.h: * src/lib/core/libbuzztrax-core/sink-machine.h: * src/lib/core/libbuzztrax-core/source-machine.h: * src/lib/core/processor-machine.c: * src/lib/core/sink-machine.c: * src/lib/core/song-io-native-xml.c: * src/lib/core/song-io-native.c: * src/lib/core/source-machine.c: Kill more dummy implementations (dispose/finalize and properties). Lets add those when we actualy need them. 2010-08-29 Stefan Kost * src/lib/core/libbuzztrax-core/settings.h: * src/lib/core/libbuzztrax-core/song-io-native-xml.h: * src/lib/core/libbuzztrax-core/song-io-native.h: * src/lib/core/processor-machine.c: * src/lib/core/sequence.c: * src/lib/core/settings.c: * src/lib/core/setup.c: * src/lib/core/sink-bin.c: * src/lib/core/sink-machine.c: * src/lib/core/song-info.c: * src/lib/core/song-io-native-bzt.c: * src/lib/core/song-io-native-xml.c: * src/lib/core/song-io-native.c: * src/lib/core/song-io.c: * src/lib/core/song.c: * src/lib/core/source-machine.c: More G_DEFINE_TYPE usage. Also kill PrivateData where we don't needed. 2010-08-28 Stefan Kost * src/lib/core/wave.c: * src/lib/core/wavelevel.c: * src/lib/core/wavetable.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: Start using G_DEFINE_TYPE and co. 2010-08-26 Stefan Kost * src/lib/core/sink-bin.c: Emit errors for all missing eleemnts. * src/ui/cmd/cmd-application.c: Start the main loop arctually for real. * src/ui/edit/main-toolbar.c: Whitespace. * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: Catch missing element errors here too. Cut the path part from the file-name, as we will use that with recording dir. 2010-08-26 Stefan Kost * src/lib/core/wire.c: Comment out the threadbarrier test. We're going to do this differently. * src/ui/cmd/cmd-application.c: Use a separate thread for the main-loop. This gives us better error handling. Remove the polling code. 2010-08-25 Stefan Kost * src/lib/core/sink-bin.c: * src/ui/cmd/cmd-application.c: Now we're catching the error and stopping. 2010-08-24 Stefan Kost * src/lib/core/Makefile.am: * src/lib/core/core.c: * src/lib/core/libbuzztrax-core/core.h: * src/lib/core/sink-bin.c: * src/ui/cmd/cmd-application.c: Initial code to post missing element errors and catch them in bt-cmd. 2010-08-23 Stefan Kost * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-pages.c: * src/ui/edit/tools.c: Focus grab improvements. Override the container focus() method as we have a good idea what we'd like to focus on instead. * src/ui/edit/pattern-editor.c: Add idea. 2010-08-20 Stefan Kost * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Get rid of _docus_child hacks. Now sometimes the grab on pattern page fails. 2010-08-19 Stefan Kost * design/gui/pixbufs.c: * design/gui/svgcanvas2.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/tools.c: * src/ui/edit/ui-resources.c: * design/gui/pixbufs.c (svn:keywords, svn:eol-style): * design/gui/pixbufs.c (added): Experiemnt with the svg icon failure on suse-11.3. Add a new pixbuf tester. File a bug to suse with the fix. Make our icons for now blurry, but correctly sized in all cases. 2010-08-18 Stefan Kost * design/gui/rulers.c: Add Comments and use a define for a constant. 2010-08-18 Stefan Kost * design/gui/rulers.c: * design/gui/rulers.c (added): Add new test toy. * design/gui/stylecolors.c: Small style cleanups. 2010-08-16 Stefan Kost * src/ui/edit/pattern-editor.c: Fix assertion - this needs the gdk-window first. 2010-08-16 Stefan Kost * src/ui/edit/wire-analysis-dialog.c: Add idea and go back from 5fps to 10fps. 2010-08-16 Stefan Kost * po/LINGUAS: * po/fi.po: * po/fi.po (added): Add finish translation. 2010-08-15 Stefan Kost * tests/bt-test-settings.c: Fix bogus double assignments. 2010-08-13 Stefan Kost * src/ui/edit/change-log.c: Added truncating and renaming. Turn changeLog inactive if we can't get a suitable diretory. * src/ui/edit/main-window.c: Show last save date in check-quit dialog. 2010-08-11 Stefan Kost * src/ui/edit/change-log.c: * src/ui/edit/edit-application.c: Implement sanity checks in the crash log scan. 2010-08-11 Stefan Kost * src/lib/core/song.c: * src/ui/edit/wire-analysis-dialog.c: Remove comemnted out code and fixed todo comments. 2010-08-11 Stefan Kost * src/lib/core/wire.c: Set "max-size-buffer" to 2 to avoid disconts. Add some test code for threadbarrier patch. * src/ui/edit/wire-analysis-dialog.c: Init the gradient. Set "max-size-buffer" to 10 to fix spectrum resets due to disconts. Raise the floor a bit. 2010-08-11 Stefan Kost * src/ui/edit/wire-analysis-dialog.c: Add precission parameter. Cache log10 values. Fix the height scaling and invert data so that we can memset the empty spectrum (floor=0). 2010-08-08 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/tools.h: Add a new macro to check for empty gvalues. Fixes the checking that otherwise could be disabled with compiler flags. Also this variant is cheaper. * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/sequence.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: Use new BT_IS_GVALUE macro. Move lots of self->priv->.. dereferences out of loops. This allows the compiler to avoid refetching e.g. the loop end condition for each cycle. Strangely this makes the code a bit bigger. 2010-08-08 Stefan Kost * src/lib/core/sink-machine.c: Whitespace and get rid of obsolete prototype. * src/ui/cmd/cmd-application.c: Check for empty songs befor playing. * tests/bt-cmd-cli.sh: Add more echo cmds to get better feedback. 2010-08-07 Stefan Kost * src/ui/dec/bt-dec.c: Fix new name in comments. * src/ui/edit/change-log.c: Fix off by one in stack truncation. * tests/ui/edit/e-bt-edit-application.c: Do the event loop before closing the window to fix late signal handlers. 2010-08-07 Stefan Kost * tests/bt-check.c: Check function in in separate field in new log handler. Now the core test pass again. 2010-08-07 Stefan Kost * src/ui/dec/bt-dec.c: Update comments. * tests/bt-check.c: * tests/m-bt-edit.c: Catch up with gstreamer logging subsystem behavioural changes. 2010-08-07 Stefan Kost * configure.ac: * src/ui/dec (added): * src/ui/bin (deleted): * src/ui/bin/bt-dec.c (deleted): * src/ui/bin/bt-dec.h (deleted): * src/ui/bin/Makefile.am (deleted): * src/ui/dec/bt-dec.h (added): * src/ui/dec/bt-dec.c (added): * src/ui/dec/Makefile.am (added): And also rename the dir. 2010-08-07 Stefan Kost * src/lib/core/application.c: * src/ui/bin/Makefile.am: * src/ui/bin/bt-dec.c: * src/ui/bin/bt-dec.h: * src/ui/cmd/cmd-application.c: * src/ui/edit/edit-application.c: * src/ui/bin/bt-dec.c (added): * src/ui/bin/bt-dec.h (added): * src/ui/bin/bt-bin.h (deleted): * src/ui/bin/bt-bin.c (deleted): Rename bt-bin to bt-dec and go for the separate pipeline approach. Thus we can also revert the change to appliation to make the bin setable. 2010-08-06 Stefan Kost * src/ui/edit/main-toolbar.c: Reduce variable scope. * src/ui/edit/wire-analysis-dialog.c: Use cairo to paint the graphs. Add log mapping for the spectrum (needs work for the ruler). Make spectrum graph look nicer. Fix scaling of the volume level bars. 2010-07-15 Stefan Kost * src/ui/bin/bt-bin.c: Send EOS in fakesink callback now. 2010-07-15 Stefan Kost * src/lib/core/song.c: Revert some temp logging and log more seek details elsewhere. * src/ui/bin/bt-bin.c: Update comments. Improve seek handling, but still no stopping :/ 2010-07-15 Stefan Kost * src/lib/core/song-io.c: Fix comment typo. * src/ui/edit/bt-edit.h: * src/ui/edit/change-log.c: * src/ui/edit/edit-application.c: Run crash log scan on app launch. Make it build and skip current active log. 2010-07-13 Stefan Kost * src/ui/bin/bt-bin.c: Handle queries better and update todo. 2010-07-13 Stefan Kost * src/lib/core/sink-bin.c: Fix enum value. * src/lib/core/song.c: Whitespace and logging. * src/ui/bin/bt-bin.c: * src/ui/bin/bt-bin.h: Now seeking and rate changes work. Also pausing, stopiing and playing several times works. Seeking still needs detail fixes. 2010-07-09 Stefan Kost * NEWSLETTER: Sent news. * src/ui/bin/bt-bin.c: Some alternative ideas. 2010-07-08 Stefan Kost * src/lib/core/wave.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-toolbar.c: Improved error logging. 2010-07-08 Stefan Kost * src/lib/core/machine.c: Whitespace. * src/lib/core/song-info.c: Init taglist more and use better version cehck. * src/lib/core/song.c: Send tags. Some attempts to sync things with bt-bin. * src/ui/bin/bt-bin.c: * src/ui/bin/bt-bin.h: Keep bin-pad. Add basic src-pad event and query. 2010-07-07 Stefan Kost * src/lib/core/libbuzztrax-core/sink-bin.h: * src/lib/core/sink-bin.c: Add pass-thru mode needed for bt-bin. * src/ui/bin/bt-bin.c: Set up the chain of ghostpads. gst-launch playbin2 works! 2010-07-06 Stefan Kost * NEWSLETTER: Write news. 2010-07-05 Stefan Kost * NEWSLETTER: Collect news. 2010-06-27 Stefan Kost * src/lib/core/song-io-native-bzt.c: * src/lib/core/song-io-native-xml.c: * src/lib/core/song-io.c: * src/ui/bin/bt-bin.c: Now actually load songs from memory. 2010-06-27 Stefan Kost * configure.ac: * src/lib/core/song.c: * src/ui/bin/Makefile.am: * src/ui/bin/bt-bin.c: * src/ui/bin/bt-bin.h: * src/ui/bin/bt-bin.c (svn:keywords, svn:eol-style): * src/ui/bin/bt-bin.h (svn:keywords, svn:eol-style): * src/ui/bin/Makefile.am (svn:keywords, svn:eol-style): * src/ui/bin (added): * src/ui/bin/bt-bin.h (added): * src/ui/bin/Makefile.am (added): * src/ui/bin/bt-bin.c (added): Add initial version of bt-bin (buzztrax song-player for gstreamer based players). Not build by default yet. 2010-06-22 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/song-io-methods.h: * src/lib/core/libbuzztrax-core/song-io.h: * src/lib/core/song-io-native.c: * src/lib/core/song-io.c: * src/ui/cmd/cmd-application.c: * src/ui/edit/change-log-methods.h: * src/ui/edit/change-log.c: * src/ui/edit/change-log.h: * src/ui/edit/edit-application.c: * src/ui/edit/main-page-machines.c: * tests/lib/core/e-song-info.c: * tests/lib/core/e-song-io-native.c: * tests/lib/core/e-song-io.c: * tests/lib/core/e-song.c: * tests/lib/core/t-sink-machine.c: * tests/lib/core/t-song-io-native.c: * tests/lib/core/t-song-io.c: * tests/lib/core/t-song.c: BtSongIO api changes: have a init function instead of detect, add GTypes to the plugin module info. Have a generic detect function. Add a second song_io constructure for in memory data. 2010-06-22 Stefan Kost * src/lib/core/setup.c: White space. * src/lib/core/tools.c: Reword API docs. * src/lib/core/application.c: * src/ui/cmd/cmd-application.c: * src/ui/edit/edit-application.c: Make 'bin' a construct only, but writable property so that subclasses can set the container. 2010-06-14 Stefan Kost * src/lib/core/song-io-native-bzt.c: * src/lib/core/song-io-native-xml.c: Ideas about api changes for bt-bin. 2010-06-14 Stefan Kost * docs/reference/bt-cmd/buzztrax-cmd-docs.sgml: * docs/reference/bt-edit/Makefile.am: * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit.xml: * docs/reference/bt-edit/buzztrax-edit.xml (added): Add man-page for buzztrax-edit and move the man pages to separate section in the interface docs. 2010-06-14 Stefan Kost * docs/reference/bt-cmd/buzztrax-cmd.xml: Update page to get rid of all warnings. 2010-06-13 Stefan Kost * configure.ac: * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-cmd/buzztrax-cmd-docs.sgml: * docs/reference/bt-cmd/buzztrax-cmd.xml: * docs/reference/bt-cmd/buzztrax-cmd.xml (added): Add a man-page for buzztrax-cmd. 2010-06-10 Stefan Kost * src/ui/edit/change-log.c: Downgrade some logging. * src/ui/edit/main-page-patterns.c: Take machine and pattern into account for undo/redo. 2010-06-10 Stefan Kost * tests/ui/edit/e-bt-change-log.c: Add test for checking that edits after undo, truncate the stack. 2010-06-09 Stefan Kost * design/gst/.cvsignore: * design/gui/.cvsignore: * design/gui/canvas-redraw.c: * design/input/.cvsignore: * design/input (svn:ignore): * design/gui/canvas-redraw.c (svn:keywords, svn:eol-style): * design/gst (svn:ignore): * design/gui (svn:ignore): * design/input/.cvsignore (added): * design/gui/canvas-redraw.c (added): More svn maintenance. 2010-06-08 Stefan Kost * src/ui/edit/change-log.c: * src/ui/edit/main-page-patterns.c: More undo/redo planning. 2010-06-08 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: Use glib types for portability and consistency. 2010-06-08 Stefan Kost * docs/reference/.cvsignore: * po/.cvsignore: * src/ui/cmd/.cvsignore: * src/ui/edit/.cvsignore: * po (svn:ignore): * src/ui/edit (svn:ignore): * docs/reference (svn:ignore): * src/ui/cmd (svn:ignore): Ignore more files. 2010-06-08 Stefan Kost * docs/help/bt-edit/C/.cvsignore: * docs/reference/bt-cmd/.cvsignore: * docs/reference/bt-core/.cvsignore: * docs/reference/bt-edit/.cvsignore: * docs/reference/bt-ic/.cvsignore: * docs/reference/bt-ic (svn:ignore): * design/gui (svn:ignore): * docs/reference/bt-edit (svn:ignore): * docs/reference/bt-core (svn:ignore): * src/ui/edit (svn:ignore): * docs/reference (svn:ignore): * design/bmxdump (svn:ignore): * design/gui/pixmaps (svn:ignore): * docs/help/bt-edit/C (svn:ignore): * src/ui/cmd (svn:ignore): * docs/reference/bt-cmd (svn:ignore): Ignore more files. 2010-06-08 Stefan Kost * .cvsignore: * design/gst/.cvsignore: * design/gui/.cvsignore: * docs/help/bt-edit/.cvsignore: * docs/help/bt-edit/C/.cvsignore: * src/lib/core/.cvsignore: * src/lib/ic/.cvsignore: * (svn:ignore): * src/lib/core (svn:ignore): * design/gst (svn:ignore): * docs/help/bt-edit (svn:ignore): * src/lib/ic (svn:ignore): * design/gui (svn:ignore): * docs/help/bt-edit/C (svn:ignore): Repository maintenance. 2010-06-08 Stefan Kost * src/ui/edit/change-log.c: More comments. * src/ui/edit/main-page-patterns.c: Implement for voice data. More comments. 2010-06-08 Stefan Kost * docs/buzztrax.xsd: * src/lib/core/machine.c: * src/lib/core/sequence.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: * tests/songs/combi1.xml: * tests/songs/combi2.xml: * tests/songs/combi3.xml: * tests/songs/melo1.xml: * tests/songs/melo2.xml: * tests/songs/melo3.xml: * tests/songs/melo4.xml: * tests/songs/melo5.xml: * tests/songs/simple1.xml: * tests/songs/simple2.xml: * tests/songs/simple3.xml: * tests/songs/simple4.xml: * tests/songs/simple5.xml: * tests/songs/simple6.xml: * tests/xmlvalid.sh: Improve xsd schema and make songs validatable. Read older tags as a fallback. Avoid saving empy lists in some places 2010-06-07 Stefan Kost * src/ui/edit/main-page-patterns.c: Use enums values instead of numbers in two more places. 2010-06-06 Stefan Kost * tests/bt-check.c: Allow wildcards in BT_CHECKS. * tests/ui/edit/e-bt-change-log.c: Add another test. 2010-06-06 Stefan Kost * NEWSLETTER: Sent NEWS. 2010-06-04 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/settings-methods.h: * src/lib/core/settings.c: * src/lib/core/sink-bin.c: * src/ui/edit/main-page-waves.c: Also sync the sinks used in wave table to the settings. Move code to figure the sink name from sink-bin to settings and use it in wave table too. Switch file-choser preview to playbin2. 2010-05-24 Stefan Kost * src/lib/core/machine.c: * src/lib/core/sequence.c: * src/lib/core/setup.c: Fix spelling in comments/debug log, found by linitian :). 2010-05-24 Stefan Kost * src/lib/core/machine.c: * src/lib/core/song-io.c: * src/lib/core/song.c: * src/ui/cmd/cmd-application.c: * src/ui/edit/render-dialog.c: Fix spelling in comments/debug log, found by linitian :). 2010-05-21 Stefan Kost * src/ui/edit/change-log.c: Only log if we have a log. * tests/ui/edit/e-bt-change-log.c: Improve the test and actualy make them work. 2010-05-20 Stefan Kost * tests/ui/edit/e-bt-change-log.c: Further implement the change log tester object and run a few basic tests. 2010-05-19 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/pattern-editor.h: Use the new enum values more. 2010-05-19 Stefan Kost * src/ui/edit/main-page-patterns.c: Fully restore cursor pos on undo/redo. * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: Use an enum instead of the group type. Add typedefs for the enums. 2010-05-18 Stefan Kost * src/ui/edit/change-log.c: More design comments. * src/ui/edit/main-page-patterns.c: * src/ui/edit/pattern-editor.c: Move cursor (need group and param still). * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-change-log.c: * tests/ui/edit/s-bt-change-log.c: * tests/ui/edit/e-bt-change-log.c (svn:keywords, svn:eol-style): * tests/ui/edit/s-bt-change-log.c (svn:keywords, svn:eol-style): * tests/ui/edit/s-bt-change-log.c (added): * tests/ui/edit/e-bt-change-log.c (added): Add initial tests for undo/redo. 2010-05-14 Stefan Kost * src/ui/edit/main-menu.c: Add menu accelerators for undo/redo. Some reformatting. 2010-05-14 Stefan Kost * src/ui/edit/change-log.c: * src/ui/edit/main-page-patterns.c: More undo/redo implementation for patterns. More ideas about the serialisation and replay. 2010-05-13 Stefan Kost * src/lib/core/sequence.c: Make one more method static. 2010-05-13 Stefan Kost * src/lib/core/machine.c: * src/lib/core/song-io-native-bzt.c: * src/lib/core/song-io-native-xml.c: * src/lib/core/wave.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: Use g_type_qname() for error domain. Also experiemnt and add more info for G_DEFINE_TYPE usage. 2010-05-13 Stefan Kost * src/ui/edit/machine-properties-dialog.c: Update widgets after we set the qdata, as the update functions need it and would otherwise trigger asserts. 2010-05-13 Stefan Kost * autogen.sh: Also kill shave from default args. 2010-05-12 Stefan Kost * NEWSLETTER: Sent news and start collecting new ones. * src/ui/edit/change-logger.c: Fix typo in log section name. 2010-05-12 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-edit/Makefile.am: * src/lib/core/Makefile.am: * src/ui/cmd/Makefile.am: * src/ui/edit/Makefile.am: * tests/Makefile.am: * tests/ui/cmd/Makefile.am: * tests/ui/edit/Makefile.am: Rework library linking order. We have to put needed libraries behind libraries that need them. This hopefully now fixes --as-needed fully. 2010-05-10 Stefan Kost * NEWSLETTER: Collecting news. * docs/reference/bt-cmd/Makefile.am: Revert change (yes saving a file before committing is great). * src/ui/edit/machine-properties-dialog.c: More prototyping for remaining copy'n'paste functions. * src/ui/edit/main-page-patterns.c: Whitespaces. 2010-05-09 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-edit/Makefile.am: Docs don't build with --as-needed. We could turn it off, but thats not portable :/ (linking would fail on linkers that don't know this). * src/ui/cmd/Makefile.am: * src/ui/edit/Makefile.am: Add all needed libraries to LIBADD of the convinience libraries. 2010-05-09 Stefan Kost * configure.ac: Correct commented out test, just for the case we'll need this again later on. 2010-05-09 Stefan Kost * src/ui/edit/gtkvumeter.c: Add cast to fix build warnings. 2010-05-09 Stefan Kost * src/ui/edit/main-page-waves.c: Revert some testing left overs. 2010-05-09 Stefan Kost * src/lib/core/persistence.c: Remove dummy code. * src/ui/edit/machine-properties-dialog.c: Code cleanups (use make_param for wire groups too). Use g_slice for callback user-data. More refactoring for copy'n'paste. * src/ui/edit/main-page-patterns.c: Skip empty lines when pasting. 2010-05-04 Stefan Kost * src/ui/edit/main-page-patterns.c: Move variable to inner scope. 2010-05-04 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * docs/reference/bt-edit/buzztrax-edit.types: Update docs for latest API additions and fix some typos. 2010-05-04 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/tools.c: * src/ui/edit/tools.h: Add a new helper to create the gtk target list to lessen the copy and paste. 2010-05-04 Stefan Kost * src/ui/edit/panorama-popup.c: * src/ui/edit/volume-popup.c: Copyright header cleanups. * src/ui/edit/change-logger-methods.h (svn:keywords): * src/ui/edit/wave-viewer.h (svn:keywords): * src/lib/ic/ic_private.h (svn:keywords): * src/ui/edit/wave-viewer.c (svn:keywords): * src/ui/edit/change-logger.c (svn:keywords): * src/ui/edit/panorama-popup.h (svn:keywords): * src/lib/core/wire-pattern.c (svn:keywords): * src/ui/edit/change-logger.h (svn:keywords): * src/lib/core/core_private.h (svn:keywords): * src/ui/edit/panorama-popup.c (svn:keywords): Svn Maintenance: svn propset svn:keywords 'Id' src/*/*/*.{c,h} 2010-05-04 Stefan Kost * src/ui/edit/panorama-popup.c: * src/ui/edit/volume-popup.c: Fix assertions by getting the GdkWindow after showing the popup. 2010-05-03 Stefan Kost * src/lib/core/sink-bin.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: Code cleanups. 2010-05-03 Stefan Kost * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-page-patterns.c: Add copy for parameter values in property dialog (more stuff needed). 2010-05-03 Stefan Kost * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/change-log-methods.h: * src/ui/edit/change-log.c: * src/ui/edit/change-logger-methods.h: * src/ui/edit/change-logger.c: * src/ui/edit/change-logger.h: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/change-logger-methods.h (added): * src/ui/edit/change-logger.c (added): * src/ui/edit/change-logger.h (added): Add change logger iface. Add undo/redo to menu. Add prototype to pattern editor. * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/wire-canvas-item.c: Cleanup menu code (separators). 2010-05-03 Stefan Kost * src/lib/core/machine.c: Do read from trigger params. 2010-05-03 Stefan Kost * src/ui/edit/machine-properties-dialog.c: Handle default combo values out of enum value range. 2010-05-02 Stefan Kost * src/lib/core/sink-bin.c: Disable audioconvert in encoder pipe, we use float anyway. * src/lib/core/machine.c: * src/ui/cmd/cmd-application.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: Enable dithering and noiseshaping on recording. 2010-04-29 Stefan Kost * src/ui/edit/change-log.c: Add header to log and do a bit more drafting. 2010-04-29 Stefan Kost * src/ui/edit/change-log.c: * src/ui/edit/change-log.h: * src/ui/edit/edit-application.c: Create and remove the journal file. * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/btmemoryaudiosrc.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/pattern-editor.h: API doc fixes. * src/lib/core/song-info.c: Copy and paste typo fix. * src/ui/edit/main-window.c: Better error reporting. * src/lib/core/song.c: Experiments. 2010-04-28 Stefan Kost * design/gst/controller.c: Tweak example. * src/ui/edit/change-log.c: Add cache dir and property. * src/ui/edit/edit-application.c: Fix typo. 2010-04-28 Stefan Kost * TODO: * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/change-log-methods.h: * src/ui/edit/change-log.c: * src/ui/edit/change-log.h: * src/ui/edit/change-log-methods.h (svn:keywords, svn:eol-style): * src/ui/edit/change-log.h (svn:keywords, svn:eol-style): * src/ui/edit/change-log.c (svn:keywords, svn:eol-style): * src/ui/edit/change-log-methods.h (added): * src/ui/edit/change-log.c (added): * src/ui/edit/change-log.h (added): Boilerplate for change log journaling. * src/ui/edit/ui-resources.h: Whitespace. 2010-04-27 Stefan Kost * design/gst/controller.c: * design/gst/controller.c (svn:keywords, svn:eol-style): * design/gst/controller.c (added): Add another example. * design/gst/states3a.c: Small example cleanups. 2010-04-26 Stefan Kost * src/lib/core/machine.c: No need to get the pad, we have that pre-cached. 2010-04-24 Stefan Kost * src/lib/core/Makefile.am: Remove buzztrax-ic pkg config file for core gir generation to avoid cyclic dependency. Only external libs are needed here. 2010-04-20 Stefan Kost * src/lib/core/wave.c: Whitespaces. 2010-04-20 Stefan Kost * src/lib/core/processor-machine.c: * src/lib/core/sink-machine.c: * src/lib/core/source-machine.c: Fix portability issues caused by passing NULL for va_list. 2010-04-13 Stefan Kost * src/lib/core/song.c: Update TODO. * src/ui/edit/main-page-sequence.c: Downgrade a log. * src/ui/edit/main-toolbar.c: Use a define for the seek factor and timeouts. 2010-04-13 Stefan Kost * download-translations: * po/LINGUAS: * po/vi.po: * download-translations (svn:executable): * download-translations (added): * po/vi.po (added): Add new translation and add the script from gstreamer for managing them. 2010-04-13 Stefan Kost * configure.ac: Also tell about GI_TYPELIB_PATH for custum install locations. 2010-04-13 Stefan Kost * tests/bt-test-plugin.c: Switch to _set_details_simple to avoid using deprecated function. 2010-04-13 Stefan Kost * omf.make: Fix omf_dest_dir to get help catalogs into cotrrect place. 2010-04-13 Stefan Kost * configure.ac: Also check for typelib dir. Both dirs are not yet used. 2010-04-12 Stefan Kost * NEWSLETTER: Wrote NEWS. Collect for next round. * TODO: Add idea for updating translations. * src/lib/core/sink-bin.c: Remove old attempt to prestart sink-bin elements. * src/lib/core/song.c: Fix seek event in backwards playback. * src/ui/edit/main-page-sequence.c: Comment. * tests/songs/broken2.xml: Whitespaces. 2010-04-07 Stefan Kost * shave.in (deleted): * shave-libtool.in (deleted): Previous commit also switched to automake silent rules (if available). Lets complete this and remove shave again. 2010-04-07 Stefan Kost * configure.ac: * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-ic/buzztrax-ic-sections.txt: * src/lib/core/Makefile.am: * src/lib/core/core_private.h: * src/lib/core/libbuzztrax-core/core.h: * src/lib/core/libbuzztrax-core/version.h.in: * src/lib/ic/Makefile.am: * src/lib/ic/ic_private.h: * src/lib/ic/libbuzztrax-ic/ic.h: * src/lib/ic/libbuzztrax-ic/version.h.in: Improve out of sourcedir builds. 2010-04-04 Stefan Kost * src/ui/edit/btmemoryaudiosrc.c: Make ping pong playback work again. Remove unneeded _get_times vmethod. Use gst_element_class_set_details_simple() to save relocs. * src/ui/edit/main-page-waves.c: Use queries on the source to make playpos indicators work again. Fix play beg/end values if no loop is set. 2010-03-31 Stefan Kost * tests/ui/edit/e-bt-edit-application.c: * tests/ui/edit/e-bt-interaction-controller-menu.c: Destroy window, to unref the app. * tests/ui/edit/e-bt-machine-actions.c: Fix comment. 2010-03-31 Stefan Kost * tests/ui/edit/Makefile.am: * tests/ui/edit/s-bt-pattern-page.c: * tests/ui/edit/t-bt-pattern-page.c: * tests/ui/edit/t-bt-pattern-page.c (svn:keywords, svn:eol-style): * tests/ui/edit/t-bt-pattern-page.c (added): Add two new tests to cover the issue reported in #2980015. 2010-03-31 Stefan Kost * tests/bt-test-settings.c: Add missing new settings. 2010-03-31 Stefan Kost * src/ui/edit/pattern-editor.c: Don't refresh cursor in pattern that have no groups. Fixes #2980015. 2010-03-30 Stefan Kost * src/lib/core/tools.c: gst_pad_get_caps_reffed() is only available in gstreamer-0.10.26. Use a less optimal function, if we don't have it. 2010-03-30 Stefan Kost * configure.ac: Improve checking of non-std install prefix. 2010-03-29 Stefan Kost * COPYING: * COPYING (added): Add LGPL COPYING file as automake cannot be asked to copy that one instead of a GPL one. 2010-03-24 Stefan Kost * src/lib/core/sink-bin.c: Rework state-change handling. No more fiddling with the bus. Keep sink locked in READY to keep connection to pulse/jack. 2010-03-24 Stefan Kost * src/lib/core/song.c: Logging and code cleanups. Also don't warn in the case of success. 2010-03-24 Stefan Kost * src/ui/edit/settings-page-audiodevices.c: More detailed logging. 2010-03-23 Stefan Kost * src/ui/edit/machine-menu.c: Whitespace. * src/ui/edit/settings-page-audiodevices.c: Idea comment. 2010-03-23 Stefan Kost * src/ui/edit/settings-page-audiodevices.c: Improve filtering. 2010-03-23 Stefan Kost * src/ui/edit/about-dialog.c: * src/ui/edit/edit-application.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/sequence-view.c: * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: * src/ui/edit/tip-dialog.c: * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: Add more logging and fix a ref-count cycle between edit-application and playback-controller-socket. 2010-03-15 Stefan Kost * src/lib/core/machine.c: No need to copy static strings. * src/ui/edit/buzztrax-edit.desktop.in.in: According to this post http://lists.fedoraproject.org/pipermail/devel/2010-March/133523.html we should add this flag. 2010-03-06 Stefan Kost * NEWSLETTER: Wrote and send NEWS. 2010-02-26 Stefan Kost * design/gui/levelmeter.c: * src/ui/edit/gtkvumeter.c: * design/gui/levelmeter.c (svn:keywords, svn:eol-style): * design/gui/levelmeter.c (added): Add an standalone example for the level meter widget and tune the resize behaviour. Previously it was overdrawing the max border. 2010-02-24 Stefan Kost * src/lib/core/song.c: * src/ui/edit/main-toolbar.c: Add fast forward and backward seeking. Its including several work-arounds already and still needs more work. 2010-02-24 Stefan Kost * src/ui/edit/bt-edit.c: Add code to sanity check registry search path and the apps libdir. Disable as it does not work as expected (bug filed). 2010-02-19 Stefan Kost * src/lib/ic/ic_private.h: * tests/m-bt-edit.c: Rename symbol to fix the build after filtering. 2010-02-18 Stefan Kost * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: Filter symbols in the libraries. 2010-02-18 Stefan Kost * src/ui/edit/main-page-sequence.c: Allow scrubbing on the timeline. Fix some issues with view updates when inserting/deleting. Reduce the motion event overhead on the sequence views. 2010-02-17 Stefan Kost * src/lib/core/machine.c: Use default values for trigger params that are not using property meta. 2010-02-14 Stefan Kost * src/lib/core/sequence.c: Comment. * src/ui/edit/main-page-sequence.c: Downgrade the log levels again. 2010-02-14 Stefan Kost * src/ui/edit/machine-properties-dialog.c: We only need to change the event mask for older gtk-versions. 2010-02-14 Stefan Kost * src/lib/core/sequence.c: Logging. * src/ui/edit/main-page-sequence.c: Fix copy and pasting. Don't mismatch pattern name and id. 2010-02-14 Stefan Kost * NEWSLETTER: Sent news. * src/ui/edit/main-page-sequence.c: Don't select beyond tracks. 2010-02-11 Stefan Kost * src/ui/edit/gtkvumeter.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/panorama-popup.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/sequence-view.c: * src/ui/edit/tools.c: * src/ui/edit/tools.h: * src/ui/edit/volume-popup.c: * src/ui/edit/wave-viewer.c: * src/ui/edit/wire-analysis-dialog.c: More gtk-3 fixes (GtkSelectiondata::target, GtkObject::flags) 2010-02-11 Stefan Kost * NEWSLETTER: Add idea for news. * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/machine-actions.c: * src/ui/edit/machine-canvas-item-methods.h: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Allow to show machine dialogs also from pattern/sequence view. 2010-02-10 Stefan Kost * src/ui/edit/main-menu.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/tools.h: Fix stupid typo. Handle GtkObject::flags in one case. 2010-02-10 Stefan Kost * src/ui/edit/main-window.c: More gtk-3 fixes (GtkSelectiondata::data, GtkDialog::vbox). 2010-02-10 Stefan Kost * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/tools.h: More gtk-3 fixes (GtkWidget::allocation). 2010-02-10 Stefan Kost * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/pattern-editor.c: More gtk-3 fixes (GtkWidget::parent). 2010-02-10 Stefan Kost * src/ui/edit/edit-application.c: * src/ui/edit/machine-menu.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/panorama-popup.c: * src/ui/edit/tools.h: * src/ui/edit/volume-popup.c: * src/ui/edit/wire-analysis-dialog.c: More gtk-3 fixes (GtkWidget::window, GtkWidget::child). 2010-02-09 Stefan Kost * src/ui/edit/machine-actions.c: * src/ui/edit/machine-actions.h: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-properties-dialog.c: * tests/ui/edit/e-bt-machine-actions.c: Move more common code to machine-actions and harmonize the parameter type and ordering. Add more ideas. * src/ui/edit/main-page-machines.c: Make one method static. Comment formatting. * src/ui/edit/settings-page-audiodevices.c: Ideas. 2010-02-08 Stefan Kost * src/lib/core/song-info.c: * tests/bt-check.c: Comment only fixes. 2010-02-07 Stefan Kost * src/lib/core/core.c: Small init tuning and whitespace fixes. * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/setup.c: * src/lib/core/tools.c: Better logging of pad-link failure. * src/lib/core/wire.c: We need to plug converters in more cases. Fixes hangs of songs-playback due to unlinked components. 2010-02-03 Stefan Kost * src/lib/core/machine.c: Don't try to read trigger params. Default is no value anyway. 2010-01-30 Stefan Kost * src/lib/core/machine.c: Also treat non readable properties as triggers. With this we can get rid of some of the buzz property flags. 2010-01-28 Stefan Kost * buzztrax.schemas.in: * src/lib/core/gconf-settings.c: * src/lib/core/libbuzztrax-core/settings-private.h: * src/lib/core/settings.c: * src/ui/edit/edit-application.c: * src/ui/edit/main-window.c: Remember window position and size. 2010-01-27 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/edit-application-methods.h: * src/ui/edit/edit-application.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-window-methods.h: * src/ui/edit/main-window.c: Refactor main loops starting and termination at bit. 2010-01-27 Stefan Kost * design/gui/notebook.c: * src/ui/edit/main-pages.c: * design/gui/notebook.c (added): Add a test case for weired gtk behaviour. 2010-01-27 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/tools.h: Add a return_val_if_disposed macro too. * src/ui/edit/main-menu.c: Set cached main_window=NULL in dispose. * src/ui/edit/main-pages.c: Add comments about a possible gtk+ bug in notbook initialisation. * src/ui/edit/main-page-sequence.c: Try savig more ref/unrefs. Still fighting a bit with initialisation sequence and ensuring we can cache main-window, 2010-01-26 Stefan Kost * src/ui/cmd/bt-cmd.c: * src/ui/edit/bt-edit.c: Add one letter commandline options and also allow one letter commands. We can do that as all commands are still starting with unique letters. 2010-01-26 Stefan Kost * src/lib/core/childproxy.c: Comment. * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Use new child proxy of main-window more. 2010-01-25 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: Use plain C casts here. We checked these already. 2010-01-25 Stefan Kost * configure.ac: Autofoo cleanups. 2010-01-24 Stefan Kost * docs/reference/bt-core/buzztrax-core-docs.sgml: * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-core/buzztrax-core.types.in: * src/lib/core/Makefile.am: * src/lib/core/childproxy.c: * src/lib/core/core_private.h: * src/lib/core/libbuzztrax-core/Makefile.am: * src/lib/core/libbuzztrax-core/childproxy-methods.h: * src/lib/core/libbuzztrax-core/childproxy.h: * src/lib/core/libbuzztrax-core/core.h: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-window.c: * src/lib/core/libbuzztrax-core/childproxy.h (svn:keywords, svn:eol- style): * src/lib/core/libbuzztrax-core/childproxy-methods.h (svn:keywords, svn :eol-style): * src/lib/core/childproxy.c (svn:keywords, svn:eol-style): * src/lib/core/childproxy.c (added): * src/lib/core/libbuzztrax-core/childproxy.h (added): * src/lib/core/libbuzztrax-core/childproxy-methods.h (added): Add BtChildProxy interface (a pure GObject based variant of GstChildProxy without signals). Make use of that for setting the statusbar::status. * src/lib/core/persistence.c: Formating. 2010-01-24 Stefan Kost * NEWSLETTER: Collect NEWS. * src/ui/edit/machine-canvas-item.c: Fix label positioning and clipping. * src/ui/edit/main-page-machines.h: Tune the machine label size a bit. 2010-01-24 Stefan Kost * src/ui/edit/main-menu.c: Less g_object_set/get, grab main-window when we get mapped and reuse. Need to do that elsewhere. 2010-01-24 Stefan Kost * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-sequence.c: Don't deref NULL (mistake in prev commit). 2010-01-24 Stefan Kost * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Add page specific hints for status bar. 2010-01-24 Stefan Kost * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: Fix table layout. 2010-01-24 Stefan Kost * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/settings-page-audiodevices.c: Add property probing code. Needs new setting and ui still. 2010-01-24 Stefan Kost * src/ui/edit/settings-page-audiodevices.c: Probe audiodevices to only list working ones. Also add todo for device selection via property probe. 2010-01-24 Stefan Kost * src/ui/edit/about-dialog.c: * src/ui/edit/edit-application.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: * src/ui/edit/tip-dialog.c: * src/ui/edit/ui-resources.c: * src/ui/edit/wave-viewer.c: * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: Removed unnedded G_OBJECT type casts here too. 2010-01-23 Stefan Kost * src/ui/edit/bt-edit.c: * src/ui/edit/edit-application.c: * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/ui-resources.c: * src/ui/edit/wire-canvas-item.c: Use the new macro for accessing the ref-count of GObjects. 2010-01-23 Stefan Kost * src/ui/cmd/cmd-application.c: Removed unnedded G_OBJECT type casts here. 2010-01-23 Stefan Kost * src/lib/ic/registry.c: * src/ui/edit/edit-application.c: * src/ui/edit/ui-resources.c: Set singleton to NULL in finalize. 2010-01-23 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/application.c: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/sequence.c: * src/lib/core/settings.c: * src/lib/core/setup.c: * src/lib/core/sink-bin.c: * src/lib/core/song.c: * src/lib/core/wire.c: * src/lib/ic/abs-range-control.c: * src/lib/ic/control.c: * src/lib/ic/device.c: * src/lib/ic/input-device.c: * src/lib/ic/midi-device.c: * src/lib/ic/registry.c: * src/lib/ic/trigger-control.c: Use a macro for accessing the ref-count of GObjects. 2010-01-23 Stefan Kost * src/lib/ic/registry.c: * src/ui/edit/edit-application.c: * src/ui/edit/ui-resources.c: No need for G_OBJECT typechecks when reffing singletons. 2010-01-23 Stefan Kost * src/lib/ic/registry.c: Turn into proper singleton. 2010-01-22 Stefan Kost * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/processor-machine.c: * src/lib/core/sequence.c: * src/lib/core/setup.c: * src/lib/core/sink-bin.c: * src/lib/core/sink-machine.c: * src/lib/core/song-info.c: * src/lib/core/song-io-native-bzt.c: * src/lib/core/song-io-native-xml.c: * src/lib/core/song-io.c: * src/lib/core/song.c: * src/lib/core/source-machine.c: * src/lib/core/wave.c: * src/lib/core/wavetable.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: Core is cleaned fro superflous typechecking casts. 2010-01-21 Stefan Kost * src/lib/core/machine.c: * src/ui/edit/main-page-patterns.c: Kill more casts from signal handlers. 2010-01-21 Stefan Kost * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/processor-machine.c: * src/lib/core/sequence.c: * src/lib/core/setup.c: * src/lib/core/sink-bin.c: * src/lib/core/sink-machine.c: * src/lib/core/song-info.c: * src/lib/core/song-io.c: * src/lib/core/source-machine.c: * src/lib/core/wave.c: * src/lib/core/wavetable.c: * src/lib/core/wire.c: Get rid of G_OBJECT casts from setters and getters in core too. 2010-01-21 Stefan Kost * src/ui/edit/machine-properties-dialog.c: Refactor to reduce merge a big blob of identical code. 2010-01-21 Stefan Kost * src/ui/edit/edit-application.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: * src/ui/edit/tip-dialog.c: * src/ui/edit/wave-viewer.c: * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: Get rid of some more unneded G_OBJECT casts in g_object_(set|get). 2010-01-20 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: Get rid of some unneded G_OBJECT casts. 2010-01-20 Stefan Kost * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/machine-actions.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/wire-analysis-dialog.c: Add more comments for translatable strings. 2010-01-19 Stefan Kost * src/ui/edit/edit-application.c: * src/ui/edit/main-page-info-methods.h: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines-methods.h: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns-methods.h: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence-methods.h: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves-methods.h: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages-methods.h: * src/ui/edit/main-pages.c: * src/ui/edit/main-window-methods.h: * src/ui/edit/main-window.c: And last batch of removing the "app" property usage. 2010-01-19 Stefan Kost * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-statusbar-methods.h: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar-methods.h: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/sequence-view-methods.h: * src/ui/edit/sequence-view.c: 4th batch of removing the "app" properties. 2010-01-19 Stefan Kost * src/ui/edit/edit-application.c: * src/ui/edit/interaction-controller-menu-methods.h: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu-methods.h: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/main-menu-methods.h: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-window.c: * src/ui/edit/pattern-properties-dialog-methods.h: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket-methods.h: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/wire-analysis-dialog-methods.h: * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: * tests/ui/edit/e-bt-interaction-controller-menu.c: * tests/ui/edit/e-bt-pattern-properties-dialog.c: * tests/ui/edit/e-bt-wire-analysis-dialog.c: 3rd batch of removing the "app" properties. 2010-01-19 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-preferences-dialog-methods.h: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog-methods.h: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog-methods.h: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog-methods.h: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/render-dialog-methods.h: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress-methods.h: * src/ui/edit/render-progress.c: * tests/ui/edit/e-bt-machine-preferences-dialog.c: * tests/ui/edit/e-bt-machine-preset-properties-dialog.c: * tests/ui/edit/e-bt-machine-properties-dialog.c: * tests/ui/edit/e-bt-machine-rename-dialog.c: * tests/ui/edit/e-bt-render-dialog.c: * tests/ui/edit/e-bt-render-progress-dialog.c: 2nd batch of removing the "app" properties. 2010-01-19 Stefan Kost * po/POTFILES.in: Add two missing files. 2010-01-18 Stefan Kost * src/ui/edit/about-dialog-methods.h: * src/ui/edit/about-dialog.c: * src/ui/edit/edit-application.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/missing-framework-elements-dialog-methods.h: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog-methods.h: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/settings-dialog-methods.h: * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-audiodevices-methods.h: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories-methods.h: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller-methods.h: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller-methods.h: * src/ui/edit/settings-page-playback-controller.c: * src/ui/edit/tip-dialog-methods.h: * src/ui/edit/tip-dialog.c: * src/ui/edit/ui-resources.c: * tests/ui/edit/e-bt-about-dialog.c: * tests/ui/edit/e-bt-missing-framework-elements-dialog.c: * tests/ui/edit/e-bt-missing-song-elements-dialog.c: * tests/ui/edit/e-bt-settings-dialog.c: * tests/ui/edit/e-bt-tip-dialog.c: Turn BtEditApplication into a signelton. First batch of removing the properties. 2010-01-18 Stefan Kost * src/ui/edit/ui-resources.c: Turn into a proepr singleton. 2010-01-18 Stefan Kost * src/lib/core/machine.c: Fix crashers in logging due to wrong macro usage. 2010-01-17 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/wire-canvas-item.c: Planning. 2010-01-17 Stefan Kost * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: Use new vbox to not modify the spacing of the dialogs own vbox. 2010-01-17 Stefan Kost * src/ui/edit/main-window.c: Fix two more places where we accessed ->vox of a GtkDialog. 2010-01-16 Stefan Kost * src/lib/core/machine.c: Adding some const, small cleaups. * src/lib/core/sink-bin.c: Whitespace. * src/lib/core/wire.c: Also use fast pad_link in wire. Only analyzers left using slower api. 2010-01-15 Stefan Kost * src/ui/edit/about-dialog.c: * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/settings-dialog.c: * src/ui/edit/tip-dialog.c: Use dialog accessors instead of sealed variabled. Fixes #2916141. * src/ui/edit/tools.h: Add dialog accessors for older gtk+ versions. 2010-01-15 Stefan Kost * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: Unify dialog layout. 2010-01-15 Stefan Kost * src/lib/core/machine.c: Remove two vars. 2010-01-14 Stefan Kost * NEWSLETTER: Collecting news. 2010-01-14 Stefan Kost * src/lib/core/machine.c: Use gst_pad_link/unlink. This is most unambigous & faster. 2010-01-13 Stefan Kost * Makefile.am: * configure.ac: * tests/Makefile.am: reenable and tweak bcov support. * tests/bt-check.c: Only limmit resources if we run in fork mode. * tests/bt-test-plugin.c: * tests/bt-test-settings.c: Terminology fix in the comments. 2010-01-10 Stefan Kost * src/lib/core/machine.c: * src/lib/core/wire.c: Remove code that is commented out. * src/lib/core/wave.c: Add todo. 2010-01-10 Stefan Kost * src/lib/core/machine.c: * src/lib/core/sink-bin.c: Turn some gst_element_{link,unlink} into gst_element_{link,unlink}_pads. 2010-01-10 Stefan Kost * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/wire-analysis-dialog.c: Use Quarks directly when dealing with bus messages. Saves hashtable lookups and strcmps. 2010-01-10 Stefan Kost * src/lib/core/sink-bin.c: * src/lib/core/song.c: * src/ui/edit/edit-application.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: Remove asserts after code that derefs the pointer already. 2010-01-10 Stefan Kost * src/ui/edit/gtkvumeter.c: * src/ui/edit/gtkvumeter.h: Remove dead code. 2010-01-10 Stefan Kost * src/ui/edit/bt-edit.c: Fix the build for old gtk version. * src/ui/edit/edit-application.c: Get rid of goto Error. 2010-01-09 Stefan Kost * src/ui/edit/about-dialog.c: * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/sequence-view.c: * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: * src/ui/edit/tip-dialog.c: * src/ui/edit/ui-resources.c: * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: _new() never fail - removed if statements. Alse make 'app' more often write-only and remove getter. 2010-01-09 Stefan Kost * src/ui/cmd/cmd-application.c: Remove getter, there is no other class that might want to read the property back. 2010-01-09 Stefan Kost * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-controller-learn-dialog.c: * tests/ui/edit/e-bt-machine-actions.c: * tests/ui/edit/e-bt-main-window.c: * tests/ui/edit/e-bt-pattern-properties-dialog.c: * tests/ui/edit/s-bt-controller-learn-dialog.c: * tests/ui/edit/s-bt-machine-actions.c: * tests/ui/edit/s-bt-controller-learn-dialog.c (svn:keywords, svn:eol- style): * tests/ui/edit/e-bt-machine-actions.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-controller-learn-dialog.c (svn:keywords, svn:eol- style): * tests/ui/edit/s-bt-machine-actions.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-machine-actions.c (added): * tests/ui/edit/e-bt-controller-learn-dialog.c (added): * tests/ui/edit/s-bt-machine-actions.c (added): * tests/ui/edit/s-bt-controller-learn-dialog.c (added): Add tests for two more dialogs. 2010-01-09 Stefan Kost * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/interaction-controller-menu.c: Small refactoring and cleanup. * src/ui/edit/tip-dialog.c: Use english comments :) 2010-01-08 Stefan Kost * src/ui/edit/about-dialog.c: * src/ui/edit/edit-application.c: * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-info.c: * src/ui/edit/main-page-machines.c: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/main-pages.c: * src/ui/edit/main-statusbar.c: * src/ui/edit/main-toolbar.c: * src/ui/edit/main-window.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/playback-controller-socket.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/sequence-view.c: * src/ui/edit/settings-dialog.c: * src/ui/edit/settings-page-audiodevices.c: * src/ui/edit/settings-page-directories.c: * src/ui/edit/settings-page-interaction-controller.c: * src/ui/edit/settings-page-playback-controller.c: * src/ui/edit/tip-dialog.c: * src/ui/edit/wave-viewer.c: * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: Code formatting. 2010-01-08 Stefan Kost * docs/reference/bt-edit/buzztrax-edit.types: Add tip dialog type. * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/render-dialog.c: * src/ui/edit/render-progress.c: * src/ui/edit/tip-dialog.c: * src/ui/edit/ui-resources.c: * src/ui/edit/wire-analysis-dialog.c: Clean up dialogs * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-tip-dialog.c: * tests/ui/edit/s-bt-tip-dialog.c: * tests/ui/edit/e-bt-tip-dialog.c (svn:keywords, svn:eol-style): * tests/ui/edit/s-bt-tip-dialog.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-tip-dialog.c (added): * tests/ui/edit/s-bt-tip-dialog.c (added): Add test for tip dialog. 2010-01-08 Stefan Kost * src/lib/core/machine.c: And fix one loader. 2010-01-08 Stefan Kost * configure.ac: * docs/reference/bt-core/buzztrax-core-docs.sgml: * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-core/buzztrax-core.types.in: * src/lib/core/Makefile.am: * src/lib/core/libbuzztrax-core/Makefile.am: * src/lib/core/libbuzztrax-core/persistence-methods.h: * src/lib/core/libbuzztrax-core/persistence.h: * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/persistence.c: * src/lib/core/processor-machine.c: * src/lib/core/sequence.c: * src/lib/core/setup.c: * src/lib/core/sink-machine.c: * src/lib/core/song-info.c: * src/lib/core/song-io-native-bzt.c: * src/lib/core/song-io-native-xml.c: * src/lib/core/song-io.c: * src/lib/core/song.c: * src/lib/core/source-machine.c: * src/lib/core/wave.c: * src/lib/core/wavelevel.c: * src/lib/core/wavetable.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: * src/lib/core/persistence-selection.c (deleted): * src/lib/core/libbuzztrax-core/persistence-location.h (deleted): * src/lib/core/libbuzztrax-core/persistence-selection.h (deleted): * src/lib/core/persistence-location.c (deleted): Remove persistens selection and location. We don't use this for copy/paste and we will also do the undo/redo differently. 2010-01-08 Stefan Kost * Makefile.am: * configure.ac: * tests/Makefile.am: Add bcov support (but disabled now). * tests/bt-check.h: Update for future check version. 2010-01-08 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/edit-application-methods.h: * src/ui/edit/edit-application.c: * src/ui/edit/main-menu.c: * src/ui/edit/render-dialog.c: * src/ui/edit/tip-dialog.c: Finish tip-of-the-day implementation. 2010-01-07 Stefan Kost * buzztrax.schemas.in: Fix description. * src/lib/core/settings.c: Add new settings as object properties. 2010-01-07 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/Makefile.am: * src/ui/edit/bt-edit.h: * src/ui/edit/main-menu.c: * src/ui/edit/tip-dialog-methods.h: * src/ui/edit/tip-dialog.c: * src/ui/edit/tip-dialog.h: * src/ui/edit/tip-dialog.h (svn:keywords, svn:eol-style): * src/ui/edit/tip-dialog-methods.h (svn:keywords, svn:eol-style): * src/ui/edit/tip-dialog.c (svn:keywords, svn:eol-style): * src/ui/edit/tip-dialog-methods.h (added): * src/ui/edit/tip-dialog.c (added): * src/ui/edit/tip-dialog.h (added): Add basic tip dialog. 2010-01-06 Stefan Kost * src/lib/core/persistence-location.c: * src/lib/core/persistence-selection.c: * src/lib/core/persistence.c: * src/lib/core/wave.c: * src/lib/core/wavelevel.c: * src/lib/core/wavetable.c: * src/lib/ic/learn.c: * src/ui/cmd/bt-cmd.c: * src/ui/edit/about-dialog.c: * src/ui/edit/interaction-controller-learn-dialog.c: * src/ui/edit/interaction-controller-menu.c: * src/ui/edit/machine-menu.c: * src/ui/edit/machine-preferences-dialog.c: * src/ui/edit/machine-preset-properties-dialog.c: * src/ui/edit/machine-properties-dialog.c: * src/ui/edit/machine-rename-dialog.c: * src/ui/edit/main-page-waves.c: * src/ui/edit/missing-framework-elements-dialog.c: * src/ui/edit/missing-song-elements-dialog.c: * src/ui/edit/pattern-properties-dialog.c: * src/ui/edit/sequence-view.c: * src/ui/edit/ui-resources.c: * src/ui/edit/wire-analysis-dialog.c: Add G_UNLIKELY() to _get_type function 2010-01-06 Stefan Kost * buzztrax.schemas.in: * src/lib/core/gconf-settings.c: * src/lib/core/libbuzztrax-core/settings-private.h: Add new settings for tip-of-the-day. 2010-01-02 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/core_private.h: * src/lib/core/libbuzztrax-core/machine.h: * src/lib/core/libbuzztrax-core/sink-bin.h: * src/lib/core/libbuzztrax-core/song-io.h: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/persistence.c: * src/lib/core/wave.c: * src/lib/core/wire.c: * src/ui/edit/gtkvumeter.c: * src/ui/edit/interaction-controller-menu.h: * src/ui/edit/machine-menu.h: * src/ui/edit/pattern-editor.h: * src/ui/edit/ui-resources.h: API doc cleanup. 2009-12-24 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-core/buzztrax-core.types.in: Doc fixes for BtPersistence. 2009-12-16 Stefan Kost * src/lib/core/libbuzztrax-core/Makefile.am: Also disable the file we skip here. * src/lib/core/Makefile.am: * src/lib/ic/Makefile.am: Repair the gir-building to scan only what we build. We get linker errors otherwise. * src/lib/core/sink-bin.c: Fix a warning from the gir-scanner. 2009-12-16 Stefan Kost * src/ui/edit/main-window.c: * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-edit-application.c: * tests/ui/edit/e-bt-main-window.c: * tests/ui/edit/s-bt-main-window.c: * tests/ui/edit/s-bt-main-window.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-main-window.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-main-window.c (added): * tests/ui/edit/s-bt-main-window.c (added): Move the dialog tests to new file and add similar for two more main-window functions. 2009-12-15 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/main-window-methods.h: * src/ui/edit/main-window.c: * src/ui/edit/tools.c: * src/ui/edit/tools.h: * tests/m-bt-edit.c: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-edit-application.c: * tests/ui/edit/e-bt-render-progress-dialog.c: * tests/ui/edit/s-bt-render-progress-dialog.c: * tests/ui/edit/s-bt-render-progress-dialog.c (svn:keywords, svn:eol- style): * tests/ui/edit/e-bt-render-progress-dialog.c (svn:keywords, svn:eol- style): * tests/ui/edit/e-bt-render-progress-dialog.c (added): * tests/ui/edit/s-bt-render-progress-dialog.c (added): Move dialog helpers to main window and add tests for them. Also add a basic test for the render progress dialog. 2009-12-11 Stefan Kost * src/lib/core/tools.c: Use the right function to free the list. 2009-12-11 Stefan Kost * src/lib/core/sink-bin.c: This is now fixed upstream. Make the hack version dependent. 2009-12-10 Stefan Kost * NEWSLETTER: Sent news. 2009-12-10 Stefan Kost * tests/bt-check.c: Whitespace. * tests/bt-test-settings.c: Fix copy'n'paste bgs and make more fake settings work. * tests/ui/edit/e-bt-edit-application.c: More UI tst coverage. 2009-12-08 Stefan Kost * tests/bt-test-settings.c: * tests/bt-test-settings.h: Allow to test normaly read-only settings. * tests/lib/core/e-sink-machine.c: Test sink selection for empty settings. * tests/lib/core/e-pattern.c: * tests/lib/core/e-song.c: Fix failing tests. 2009-12-08 Stefan Kost * src/lib/core/libbuzztrax-core/sink-bin.h: * src/lib/core/sink-bin.c: * tests/bt-cmd-encode.sh: Add the mp4 (acc) output. 2009-12-06 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/core.c: * src/lib/core/libbuzztrax-core/machine-methods.h: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/machine.c: * src/lib/core/song.c: * src/lib/core/tools.c: Remove some hardly used debug code. 2009-12-06 Stefan Kost * src/lib/core/core.c: * src/lib/core/tools.c: * src/ui/edit/edit-application.c: Fix docs for the list handling and don't free list twice. 2009-12-06 Stefan Kost * tests/lib/core/e-song.c: Check a few more basics. 2009-12-06 Stefan Kost * src/lib/core/tools.c: Add one more element to the checklist and reorder. * src/lib/core/wire-pattern.c: Free unneded gvalues when resizing. * tests/bt-test-plugin.c: * tests/bt-test-plugin.h: Add more properties. * tests/lib/core/e-pattern.c: * tests/lib/core/e-wire-pattern.c: More test coverage. 2009-12-06 Stefan Kost * src/lib/core/pattern.c: Fix a leak found by new tests. * src/lib/core/song.c: * src/lib/core/tools.c: Doc typo fixes, comments and todos. * tests/bt-cmd-cli.sh: * tests/bt-edit-cli.sh: Ideas. * tests/lib/core/e-pattern.c: * tests/lib/core/e-song.c: * tests/lib/core/e-wire-pattern.c: More tests (pattern resize, song-idle loops, wire-pattern editing). 2009-12-04 Stefan Kost * src/ui/edit/machine-properties-dialog.c: * tests/bt-edit-cli.sh: * tests/m-bt-edit.c: * tests/songs/melo3.xml: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-edit-application.c: * tests/ui/edit/e-bt-interaction-controller-menu.c: * tests/ui/edit/e-bt-machine-preset-properties-dialog.c: * tests/ui/edit/e-bt-machine-properties-dialog.c: * tests/ui/edit/s-bt-interaction-controller-menu.c: * tests/ui/edit/e-bt-interaction-controller-menu.c (svn:keywords, svn :eol-style): * tests/ui/edit/s-bt-interaction-controller-menu.c (svn:keywords, svn :eol-style): * tests/ui/edit/s-bt-interaction-controller-menu.c (added): * tests/ui/edit/e-bt-interaction-controller-menu.c (added): More ui test coverage (dialog variants for effects, interaction controller menu test, run UI under Xvfb, trigger more screen updates). 2009-12-04 Stefan Kost * src/lib/core/song.c: * src/lib/core/wave.c: * src/lib/core/wavetable.c: * src/ui/cmd/cmd-application.c: * src/ui/edit/tools.c: * tests/Makefile.am: * tests/bt-cmd-cli.sh: * tests/m-bt-edit.c: * tests/songs/melo3.xml: * tests/ui/edit/Makefile.am: * tests/ui/edit/e-bt-edit-application.c: * tests/ui/edit/e-bt-pattern-page.c: * tests/ui/edit/s-bt-pattern-page.c: * tests/ui/edit/e-bt-pattern-page.c (svn:keywords, svn:eol-style): * tests/ui/edit/s-bt-pattern-page.c (svn:keywords, svn:eol-style): * tests/ui/edit/e-bt-pattern-page.c (added): * tests/ui/edit/s-bt-pattern-page.c (added): Even better test coverage (test key-presses on pattern editor, ensure pattern page shows pattern, test more bt-cmd corner cases, change test wave to be in /tmp). 2009-12-04 Stefan Kost * tests/Makefile.am: * tests/bt-check.c: * tests/lib/core/e-pattern.c: * tests/songs/simple1.xml: * tests/songs/simple6.xml: * tests/ui/edit/e-bt-edit-application.c: * tests/songs/simple6.xml (added): Improve coverage further (pattern-remove-row, song with missing machine, add test wave). 2009-11-28 Stefan Kost * docs/reference/bt-core/buzztrax-core-docs.sgml: * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-core/buzztrax-core.types.in: Also hide disabled class here. * tests/lib/core/e-pattern.c: More tests needed here. 2009-11-28 Stefan Kost * tests/lib/core/e-pattern.c: * tests/lib/core/e-song.c: * tests/lib/core/e-wire-pattern.c: * tests/lib/core/t-song.c: More tests. 2009-11-27 Stefan Kost * src/lib/core/song-io.c: Turn g_asserts into g_Return_val_if_fail. This is public api. * tests/lib/core/e-song.c: * tests/lib/core/e-wire-pattern.c: * tests/lib/core/t-song-io.c: * tests/lib/core/t-song.c: More tests. 2009-11-27 Stefan Kost * src/lib/core/Makefile.am: * src/lib/core/libbuzztrax-core/core.h: * tests/lib/core/t-settings.c: Don't build and test (unused) plainfile settings for now. 2009-11-26 Stefan Kost * tests/lib/core/e-wire-pattern.c: * tests/lib/core/s-wire-pattern.c: * tests/lib/core/e-wire-pattern.c (svn:keywords, svn:eol-style): * tests/lib/core/s-wire-pattern.c (svn:keywords, svn:eol-style): * tests/lib/core/e-wire-pattern.c (added): * tests/lib/core/s-wire-pattern.c (added): And add new files. 2009-11-26 Stefan Kost * tests/lib/core/Makefile.am: * tests/lib/core/e-pattern.c: * tests/lib/core/e-song-info.c: * tests/m-bt-core.c: Add more tests. 2009-11-26 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-core/Makefile.am: * docs/reference/bt-core/buzztrax-core.types.in: * docs/reference/bt-edit/Makefile.am: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * docs/reference/bt-ic/Makefile.am: Doc fixes. Sinkbin did not appear as gobject. * src/lib/core/song-io.c: Comment cleanup. 2009-11-26 Stefan Kost * src/ui/edit/main-page-patterns.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: Rename some structs for consistency. 2009-11-26 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: Fi copy'n'paste. * src/ui/edit/pattern-editor.h: Fix the build (yeah). 2009-11-26 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * docs/reference/bt-edit/buzztrax-edit.types: * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-pages.c: * src/ui/edit/pattern-editor.c: * src/ui/edit/pattern-editor.h: * src/ui/edit/wave-viewer.c: * src/ui/edit/wire-canvas-item.c: Doc xref fixes and general doc maintenance. 2009-11-26 Stefan Kost * src/lib/core/sink-bin.c: And unbreak the build. 2009-11-25 Stefan Kost * src/lib/core/sink-bin.c: Reactivate the work-around, while the bug is open. Fix a typo in enum type name. 2009-11-25 Stefan Kost * src/lib/ic/device.c: * src/lib/ic/learn.c: Doc xref fixes. 2009-11-25 Stefan Kost * src/lib/core/application.c: * src/lib/core/libbuzztrax-core/sequence.h: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/persistence.c: * src/lib/core/sequence.c: * src/lib/core/setup.c: * src/lib/core/song-io-native-bzt.c: * src/lib/core/song-io-native-xml.c: * src/lib/core/song-io.c: * src/lib/core/wave.c: * src/lib/core/wavetable.c: Doc xref fixes. 2009-11-19 Stefan Kost * src/lib/core/libbuzztrax-core/machine.h: * src/lib/core/libbuzztrax-core/pattern.h: * src/lib/core/libbuzztrax-core/setup.h: * src/lib/core/libbuzztrax-core/tools.h: * src/lib/core/libbuzztrax-core/wave.h: * src/lib/core/libbuzztrax-core/wavetable.h: * src/lib/core/libbuzztrax-core/wire-pattern.h: * src/lib/core/libbuzztrax-core/wire.h: * src/lib/core/machine.c: * src/lib/core/pattern.c: * src/lib/core/setup.c: * src/lib/core/wave.c: * src/lib/core/wavetable.c: * src/lib/core/wire-pattern.c: * src/lib/core/wire.c: * src/ui/edit/machine-canvas-item.c: * src/ui/edit/machine-canvas-item.h: Remove unneeded slots in classes for signals. 2009-11-13 Stefan Kost * src/lib/core/sink-bin.c: Add workaround for enum type issue. 2009-11-12 Stefan Kost * pixmaps/popup-menu.png: Somewhat better image. * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Add popup to those pages too. * src/ui/edit/main-page-machines.c: Convert the menu-button back to a plain button and add comment. 2009-11-11 Stefan Kost * pixmaps/Makefile.am: * pixmaps/popup-menu.png: * pixmaps/popup-menu.png (svn:mime-type): * pixmaps/popup-menu.png (added): Add a popup-menu icon. Please anyone submit a better one please. * src/ui/edit/main-page-machines.c: Add context menu icon to toolbar. 2009-11-05 Stefan Kost * src/ui/edit/main-menu.c: Fix broken theme icons. 2009-11-05 Stefan Kost * src/lib/core/machine.c: Keep converters for sinkmachine (some sinks don't need it). Fixes regression of yesterday optimizations for e.g. alsa. * src/lib/core/wire.c: Disable some unneeded code. 2009-11-05 Stefan Kost * src/lib/core/machine.c: Remove unsued static method too. * src/ui/edit/btmemoryaudiosrc.c: White space. 2009-11-05 Stefan Kost * src/lib/core/machine.c: Remove function, we don't need anymore also from the code. 2009-11-05 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/core.c: * src/lib/core/core_private.h: * src/lib/core/libbuzztrax-core/machine-methods.h: * src/lib/core/machine.c: * src/lib/core/setup.c: * src/lib/core/wire.c: Use a fixed internal format. This allows us to avoid plugging audioconvert elements in wires and machines. Now we plug them only if the machine cannot support the internal format. This gives 7 -> 1 sec speedup for load & play of Aenathron. 2009-11-05 Stefan Kost * src/ui/edit/buzztrax-edit.desktop.in.in: Check with desktop-file-validate from desktop-file-utils and fixup. 2009-11-03 Stefan Kost * NEWSLETTER: Sent news. * src/ui/edit/gtkvumeter.c: More pixel tweaking. 2009-11-02 Stefan Kost * NEWSLETTER: Write News. * src/lib/core/machine.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: Comments. 2009-11-02 Stefan Kost * src/ui/cmd/bt-cmd.c: * src/ui/edit/bt-edit.c: Fix i18n domain for options. 2009-10-31 Stefan Kost * src/ui/edit/gtkvumeter.c: Fix blurry pixels. Fix drwing over the borders and make it a bit faster too. 2009-10-30 Stefan Kost * src/ui/edit/main-menu.c: * tests/bt-check.c: Comments. 2009-10-30 Stefan Kost * po/de.po: * po/nn.po: Update translations. * src/lib/core/core.c: * src/lib/ic/ic.c: * src/ui/cmd/bt-cmd.c: * src/ui/edit/bt-edit.c: Cleanup i18n support. 2009-10-28 Stefan Kost * src/ui/edit/main-statusbar.c: The context-descriptions are not shown in the UI. No need to translate. 2009-10-28 Stefan Kost * src/lib/core/sequence.c: * src/ui/edit/main-statusbar.c: Comments and cleanup. 2009-10-27 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/ui/edit/edit-application-methods.h: * src/ui/edit/edit-application.c: Factor out locking the UI. * src/ui/edit/main-menu.c: Add a reload registry item. 2009-10-25 Stefan Kost * src/ui/edit/main-menu.c: Add options to debug menu to allow generating variants of dot-graphs. 2009-10-25 Stefan Kost * src/lib/core/machine.c: * src/lib/core/wire.c: Better naming on bin elements. 2009-10-21 Stefan Kost * docs/help/bt-edit/C/buzztrax-edit.xml: Small docu update. * src/ui/edit/wire-analysis-dialog.c: * src/ui/edit/wire-canvas-item.c: Commenting. 2009-10-21 Stefan Kost * NEWSLETTER: Collect News. * src/lib/ic/control.c: Planning. * configure.ac: * src/ui/edit/bt-edit.h: Make gnomevfs totally conditional. * src/ui/edit/playback-controller-socket.c: * src/ui/edit/wave-viewer.c: Fix some build bugs, when building without gnomevfs. 2009-10-21 Stefan Kost * src/ui/edit/main-window.c: Now we have extra info and patches for both issues. Update info. 2009-10-21 Stefan Kost * configure.ac: * src/lib/core/core.c: * src/lib/core/core_private.h: * src/lib/core/song-io-native.c: * src/ui/edit/bt-edit.c: Move gnome-vfs to the ui-deps. We need some configure work to practically remove it. 2009-10-19 Stefan Kost * src/lib/core/wire.c: Turn the optimization off again and explain why, plus some ideas how we could get it still. 2009-10-18 Stefan Kost * src/lib/core/machine.c: * src/lib/core/wire.c: Potential massive performance gain in loading and time to play. For now enabled by default. If it works, we can make it permanent. 2009-10-18 Stefan Kost * src/lib/core/machine.c: Get rid of some more double type-checks. 2009-10-18 Stefan Kost * src/ui/edit/machine-menu.c: More logging. * src/ui/edit/machine-canvas-item.c: * src/ui/edit/settings-page-interaction-controller.c: Planning. 2009-10-18 Stefan Kost * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: Add branch hinting to pre-condition checks. * src/lib/core/sequence.c: Remove expensive type cehcks in sequence updates. 2009-10-18 Stefan Kost * src/ui/edit/machine-menu.c: Don't cut prefix for non wrapper plugins. 2009-10-16 Stefan Kost * src/ui/edit/interaction-controller-menu.c: Add idea. * src/ui/edit/settings-page-interaction-controller.c: Add controller list (more to come). 2009-10-16 Stefan Kost * NEWSLETTER: Collect news. * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Use GDK_SELECTION_CLIPBOARD for widget and not for screen. Seems to fix the issue with the lost content and allows to paste the data in a debug build to a text editor. 2009-10-15 Stefan Kost * src/ui/edit/main-window.c: Sync file-chooser code and reenable xml detetion workaround. 2009-10-15 Stefan Kost * src/ui/edit/machine-menu.c: Fix the build. 2009-10-14 Stefan Kost * src/lib/core/machine.c: Remove a now obsolete todo. * src/ui/edit/interaction-controller-menu.c: Don't create empty submenus. * src/ui/edit/machine-menu.c: Add comments. * src/ui/edit/machine-properties-dialog.c: Add "reset" and "reset all" items to context menu. 2009-10-13 Stefan Kost * docs/reference/bt-edit/buzztrax-edit-docs.sgml: * src/ui/edit/btmemoryaudiosrc.c: Add missing docs. * tests/Makefile.am: Use $(LIBTOOL) instead of hardcoded one. 2009-10-12 Stefan Kost * src/ui/edit/machine-canvas-item.c: Small refactoring. * src/ui/edit/main-page-patterns.c: * src/ui/edit/main-page-sequence.c: Planning. 2009-10-12 Stefan Kost * src/lib/core/machine.c: Start level decay faster. * src/ui/edit/gtkvumeter.c: Redraw level if either value changed. Fixes stuck level meters. * src/ui/edit/machine-canvas-item.c: * src/ui/edit/main-page-sequence.c: * src/ui/edit/main-toolbar.c: Now hopefuly proper decay and peak values. 2009-10-12 Stefan Kost * NEWSLETTER: Wrote and sent news. 2009-10-10 Stefan Kost * src/lib/core/pattern.c: * src/ui/edit/main-page-patterns.c: Don't paste beyond the pattern length. * src/ui/edit/main-page-sequence.c: Implement paste for sequence. 2009-10-08 Stefan Kost * src/lib/core/sequence.c: Add a quick path for the pattern-counting. 2009-10-07 Stefan Kost * src/ui/edit/main-page-patterns.c: Comments. * src/ui/edit/main-page-sequence.c: Implement copy. * src/ui/edit/main-toolbar.c: Whitespace 2009-10-04 Stefan Kost * tests/lib/core/e-sequence.c: Make test cover whole pattern changes. This already test the sequence optimization a bit. 2009-10-04 Stefan Kost * src/lib/core/sequence.c: When setting patterns, only mark non empty cells as invalid. This speeds up song loading, it needs more test to be sure its correct thing to do. * tests/lib/core/e-sequence.c: Add a test for having two tracks for same machine and test parameter shadowing. 2009-10-04 Stefan Kost * src/lib/core/libbuzztrax-core/wire-pattern-methods.h: * src/lib/core/wire-pattern.c: * src/ui/edit/main-page-patterns.c: Implement copy'n'paste stuff for wire patterns too. 2009-10-03 Stefan Kost * src/lib/core/machine.c: Move variabled to narrower scope. * src/lib/core/sequence.c: Comments. * src/ui/edit/main-page-patterns.c: Only define text paste targets for debug purpose, but then define some more. 2009-10-03 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/wire-pattern-methods.h: * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: Also copy wire patterns when copying patterns. 2009-09-28 Stefan Kost * docs/reference/bt-cmd/Makefile.am: * docs/reference/bt-core/Makefile.am: * docs/reference/bt-edit/Makefile.am: * docs/reference/bt-ic/Makefile.am: Update gtk-doc makefiles rules. 2009-09-27 Stefan Kost * src/lib/core/sink-bin.c: Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=596366 * src/ui/cmd/cmd-application.c: Add more logging. 2009-09-21 Stefan Kost * src/lib/core/sequence.c: Small code reflow to avoid recalculating values. 2009-09-20 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/pattern-methods.h: * src/lib/core/pattern.c: * src/ui/edit/main-page-patterns.c: Cut, copy and paste works for patterns now. Still needs handling of wire-patterns. 2009-09-19 Stefan Kost * src/lib/core/pattern.c: * src/ui/edit/main-page-patterns.c: Improve the pasting code to receive the data and parse it. 2009-09-19 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/pattern-methods.h: * src/lib/core/pattern.c: * src/ui/edit/main-page-patterns.c: Enable copy in patterns. Still WIP. 2009-09-18 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * src/lib/core/libbuzztrax-core/machine-methods.h: * src/lib/core/machine.c: * src/lib/core/setup.c: * src/lib/core/wire.c: * src/ui/edit/main-page-machines.c: We don't need the setup to lookup wires. Add new function to lookup wire from machines wire-list. 2009-09-18 Stefan Kost * src/ui/edit/about-dialog.c: Switch back to devel mode. * src/ui/edit/machine-properties-dialog.c: Set labels to signle_line mode to make window resizes faster. * src/ui/edit/main-statusbar.c: Add ideas. 2009-09-17 Stefan Kost * src/lib/core/machine.c: * src/lib/core/setup.c: * src/lib/core/wire.c: * src/ui/edit/machine-canvas-item.c: Use more lightweight API (machine-wire lists). Add ideas to get rid of one more function. 2009-09-15 Stefan Kost * src/ui/edit/machine-properties-dialog.c: Use more lightweight API (machine-wire lists). 2009-09-15 Stefan Kost * src/lib/core/libbuzztrax-core/machine.h: Add doc comments for public members. * src/lib/core/pattern.c: * src/ui/edit/main-page-patterns.c: Some more work on clipboard support. Also use machine-wire lists. 2009-09-14 Stefan Kost * docs/reference/bt-core/buzztrax-core-sections.txt: * docs/reference/bt-edit/buzztrax-edit-sections.txt: * src/lib/core/libbuzztrax-core/pattern-methods.h: * src/lib/core/libbuzztrax-core/wire-pattern-methods.h: * src/lib/core/pattern.c: * src/lib/core/wire-pattern.c: * src/ui/edit/main-menu.c: * src/ui/edit/main-page-patterns-methods.h: * src/ui/edit/main-page-patterns.c: Implement pattern_selection_apply() helper to save some code. Implement deleting (clearing) the selections in patterns. More thinking for cut, copy and paste. 2009-09-06 Stefan Kost * configure.ac: Bump *all* versions. 2009-09-06 Stefan Kost * configure.ac: Back to development. buzztrax-0.10.2/aclocal.m40000644042355400116100000015166312640575011015637 0ustar00ensoniceng00000000000000# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) dnl GLIB_GSETTINGS dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether dnl the schema should be compiled dnl AC_DEFUN([GLIB_GSETTINGS], [ m4_pattern_allow([AM_V_GEN]) AC_ARG_ENABLE(schemas-compile, AS_HELP_STRING([--disable-schemas-compile], [Disable regeneration of gschemas.compiled on install]), [case ${enableval} in yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;; esac]) AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE]) PKG_PROG_PKG_CONFIG([0.16]) AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas]) if test x$cross_compiling != xyes; then GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` else AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas) fi AC_SUBST(GLIB_COMPILE_SCHEMAS) if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2]) else ifelse([$1],,[:],[$1]) fi GSETTINGS_RULES=' .PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas mostlyclean-am: clean-gsettings-schemas gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) %.gschema.valid: %.gschema.xml $(gsettings__enum_file) $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p [$](@D) && touch [$]@ all-am: $(gsettings_SCHEMAS:.xml=.valid) uninstall-am: uninstall-gsettings-schemas install-data-am: install-gsettings-schemas .SECONDARY: $(gsettings_SCHEMAS) install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) @$(NORMAL_INSTALL) if test -n "$^"; then \ test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ fi uninstall-gsettings-schemas: @$(NORMAL_UNINSTALL) @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ test -n "$$files" || exit 0; \ echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) clean-gsettings-schemas: rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) ifdef gsettings_ENUM_NAMESPACE $(gsettings__enum_file): $(gsettings_ENUM_FILES) $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@ endif ' _GSETTINGS_SUBST(GSETTINGS_RULES) ]) dnl _GSETTINGS_SUBST(VARIABLE) dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST AC_DEFUN([_GSETTINGS_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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. # # 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. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [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. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AR([ACT-IF-FAIL]) # ------------------------- # Try to determine the archiver interface, and trigger the ar-lib wrapper # if it is needed. If the detection of archiver interface fails, run # ACT-IF-FAIL (default is to abort configure with a proper error message). AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) # Figure out how to run the assembler. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AS # ---------- AC_DEFUN([AM_PROG_AS], [# By default we simply use the C compiler to build assembly code. AC_REQUIRE([AC_PROG_CC]) test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [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". rm -rf conftest.dir 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_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) 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 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # 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. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj 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 $am__obj 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_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf 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")` 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"` # 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'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) 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 AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _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"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [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 AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # 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. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/acx_pthread.m4]) m4_include([m4/gettext.m4]) m4_include([m4/gtk-doc.m4]) m4_include([m4/iconv.m4]) m4_include([m4/intltool.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) m4_include([m4/orc.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) buzztrax-0.10.2/ABOUT-NLS0000644042355400116100000011311311702054461015211 0ustar00ensoniceng00000000000000Notes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your country by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of May 2003. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files am az be bg ca cs da de el en en_GB eo es +-------------------------------------------+ a2ps | [] [] [] [] | aegis | () | anubis | | ap-utils | | bash | [] [] [] | batchelor | | bfd | [] [] | binutils | [] [] | bison | [] [] [] | bluez-pin | [] [] | clisp | | clisp | [] [] [] | coreutils | [] [] [] [] | cpio | [] [] [] | darkstat | () [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] | error | [] [] [] [] [] | fetchmail | [] () [] [] [] [] | fileutils | [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] | gas | [] | gawk | [] [] [] [] | gcal | [] | gcc | [] [] | gettext | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gimp-print | [] [] [] [] [] | gliv | | glunarclock | [] [] [] | gnucash | () [] | gnucash-glossary | [] () [] | gnupg | [] () [] [] [] [] | gpe-calendar | [] | gpe-conf | [] | gpe-contacts | [] | gpe-edit | | gpe-login | [] | gpe-ownerinfo | [] | gpe-sketchbook | [] | gpe-timesheet | | gpe-today | [] | gpe-todo | [] | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | () () () | grep | [] [] [] [] [] | gretl | [] | hello | [] [] [] [] [] [] | id-utils | [] [] | indent | [] [] [] [] | jpilot | [] [] [] [] | jwhois | [] | kbd | [] [] [] [] [] | ld | [] [] | libc | [] [] [] [] [] [] | libgpewidget | [] | libiconv | [] [] [] [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lingoteach_lessons | () () | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] | man-db | [] () [] [] () | mysecretdiary | [] [] [] | nano | [] () [] [] [] | nano_1_0 | [] () [] [] [] | opcodes | [] [] | parted | [] [] [] [] [] | ptx | [] [] [] [] [] | python | | radius | | recode | [] [] [] [] [] [] | screem | | sed | [] [] [] [] [] | sh-utils | [] [] [] | sharutils | [] [] [] [] [] [] | sketch | [] () [] | soundtracker | [] [] [] | sp | [] | tar | [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] [] | tin | () () | util-linux | [] [] [] [] [] | vorbis-tools | [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] [] [] [] [] [] | xchat | [] [] [] | xpad | | +-------------------------------------------+ am az be bg ca cs da de el en en_GB eo es 0 1 4 2 31 17 54 60 14 1 4 12 56 et fa fi fr ga gl he hr hu id it ja ko +----------------------------------------+ a2ps | [] [] [] () () | aegis | | anubis | [] | ap-utils | [] | bash | [] [] | batchelor | [] | bfd | [] [] | binutils | [] [] | bison | [] [] [] [] | bluez-pin | [] [] [] [] | clisp | | clisp | [] | coreutils | [] [] [] [] | cpio | [] [] [] [] | darkstat | () [] [] [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | | enscript | [] [] | error | [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] [] [] [] | flex | [] [] | gas | [] | gawk | [] [] | gcal | [] | gcc | [] | gettext | [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] | gimp-print | [] [] | gliv | () | glunarclock | [] [] [] [] | gnucash | [] | gnucash-glossary | [] | gnupg | [] [] [] [] [] [] [] | gpe-calendar | [] | gpe-conf | | gpe-contacts | [] | gpe-edit | [] [] | gpe-login | [] | gpe-ownerinfo | [] [] [] | gpe-sketchbook | [] | gpe-timesheet | [] [] [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | [] [] [] | gprof | [] [] | gpsdrive | () [] () () | grep | [] [] [] [] [] [] [] [] [] [] [] | gretl | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] [] [] [] [] [] | jpilot | [] () | jwhois | [] [] [] [] | kbd | [] | ld | [] | libc | [] [] [] [] [] [] | libgpewidget | [] [] [] | libiconv | [] [] [] [] [] [] [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] | lingoteach_lessons | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | | make | [] [] [] [] [] [] | man-db | [] () () | mysecretdiary | [] [] | nano | [] [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | radius | | recode | [] [] [] [] [] [] | screem | | sed | [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] | sharutils | [] [] [] [] [] | sketch | [] | soundtracker | [] [] [] | sp | [] () | tar | [] [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] [] [] | tin | [] () | util-linux | [] [] [] [] () [] | vorbis-tools | [] | wastesedge | () | wdiff | [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] | xpad | | +----------------------------------------+ et fa fi fr ga gl he hr hu id it ja ko 20 1 15 73 14 24 8 10 30 31 19 31 9 lg lt lv ms nb nl nn no pl pt pt_BR ro +----------------------------------------+ a2ps | [] [] () () () [] [] | aegis | () | anubis | [] [] | ap-utils | () | bash | [] | batchelor | | bfd | | binutils | | bison | [] [] [] [] | bluez-pin | [] | clisp | | clisp | [] | coreutils | [] | cpio | [] [] [] | darkstat | [] [] [] [] | diffutils | [] [] [] | e2fsprogs | | enscript | [] [] | error | [] [] | fetchmail | () () | fileutils | [] | findutils | [] [] [] [] | flex | [] | gas | | gawk | [] | gcal | | gcc | | gettext | [] | gettext-runtime | [] | gettext-tools | | gimp-print | [] | gliv | [] | glunarclock | [] | gnucash | | gnucash-glossary | [] [] | gnupg | | gpe-calendar | [] [] | gpe-conf | [] [] | gpe-contacts | [] | gpe-edit | [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-sketchbook | [] [] | gpe-timesheet | [] [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | | gprof | [] | gpsdrive | () () () | grep | [] [] [] [] | gretl | | hello | [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] | jpilot | () () | jwhois | [] [] [] | kbd | | ld | | libc | [] [] [] [] | libgpewidget | [] [] | libiconv | [] [] | lifelines | | lilypond | [] | lingoteach | | lingoteach_lessons | | lynx | [] [] | m4 | [] [] [] [] | mailutils | | make | [] [] | man-db | [] | mysecretdiary | [] | nano | [] [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] [] | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | radius | | recode | [] [] [] | screem | | sed | [] [] | sh-utils | [] | sharutils | [] | sketch | [] | soundtracker | | sp | | tar | [] [] [] [] [] [] | texinfo | [] | textutils | [] | tin | | util-linux | [] [] | vorbis-tools | [] [] | wastesedge | | wdiff | [] [] [] [] | wget | [] [] [] | xchat | [] [] | xpad | [] | +----------------------------------------+ lg lt lv ms nb nl nn no pl pt pt_BR ro 0 0 2 11 7 26 3 4 18 15 34 34 ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW +-------------------------------------------+ a2ps | [] [] [] [] [] | 16 aegis | () | 0 anubis | [] [] | 5 ap-utils | () | 1 bash | [] | 7 batchelor | | 1 bfd | [] [] [] | 7 binutils | [] [] [] | 7 bison | [] [] | 13 bluez-pin | | 7 clisp | | 0 clisp | | 5 coreutils | [] [] [] [] [] | 14 cpio | [] [] [] | 13 darkstat | [] () () | 9 diffutils | [] [] [] [] | 21 e2fsprogs | [] | 3 enscript | [] [] [] | 11 error | [] [] [] | 14 fetchmail | [] | 7 fileutils | [] [] [] [] [] [] | 15 findutils | [] [] [] [] [] [] | 27 flex | [] [] [] | 10 gas | [] | 3 gawk | [] [] | 9 gcal | [] [] | 4 gcc | [] | 4 gettext | [] [] [] [] [] [] | 15 gettext-runtime | [] [] [] [] [] [] | 16 gettext-tools | [] [] | 5 gimp-print | [] [] | 10 gliv | | 1 glunarclock | [] [] [] | 11 gnucash | [] [] | 4 gnucash-glossary | [] [] [] | 8 gnupg | [] [] [] [] | 16 gpe-calendar | [] | 5 gpe-conf | | 3 gpe-contacts | [] | 4 gpe-edit | [] | 5 gpe-login | [] | 5 gpe-ownerinfo | [] | 7 gpe-sketchbook | [] | 5 gpe-timesheet | [] | 6 gpe-today | [] | 6 gpe-todo | [] | 6 gphoto2 | [] [] | 9 gprof | [] [] | 7 gpsdrive | [] [] | 3 grep | [] [] [] [] | 24 gretl | | 2 hello | [] [] [] [] [] | 33 id-utils | [] [] [] | 11 indent | [] [] [] [] | 19 jpilot | [] [] [] [] [] | 10 jwhois | () () [] [] | 10 kbd | [] [] | 8 ld | [] [] | 5 libc | [] [] [] [] | 20 libgpewidget | | 6 libiconv | [] [] [] [] [] [] | 21 lifelines | [] | 2 lilypond | [] | 4 lingoteach | | 2 lingoteach_lessons | () | 0 lynx | [] [] [] [] | 14 m4 | [] [] [] | 15 mailutils | | 2 make | [] [] [] [] | 15 man-db | [] | 6 mysecretdiary | [] [] | 8 nano | [] [] [] | 15 nano_1_0 | [] [] [] | 15 opcodes | [] [] | 9 parted | [] [] | 13 ptx | [] [] [] | 22 python | | 0 radius | | 0 recode | [] [] [] [] | 19 screem | [] | 1 sed | [] [] [] [] [] | 20 sh-utils | [] [] [] | 13 sharutils | [] [] [] [] | 16 sketch | [] | 5 soundtracker | [] | 7 sp | [] | 3 tar | [] [] [] [] [] | 24 texinfo | [] [] [] [] | 13 textutils | [] [] [] [] [] | 15 tin | | 1 util-linux | [] [] | 14 vorbis-tools | [] | 7 wastesedge | | 0 wdiff | [] [] [] [] | 17 wget | [] [] [] [] [] [] [] | 25 xchat | [] [] [] | 11 xpad | | 1 +-------------------------------------------+ 50 teams ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW 97 domains 32 19 16 0 56 0 48 10 1 1 12 23 913 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If May 2003 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. buzztrax-0.10.2/orc.mak0000644042355400116100000000456012461526073015252 0ustar00ensoniceng00000000000000# # This is a makefile.am fragment to build Orc code. # # Define ORC_SOURCE and then include this file, such as: # # ORC_SOURCE=gstadderorc # include $(top_srcdir)/common/orc.mak # # This fragment will create tmp-orc.c and gstadderorc.h from # gstadderorc.orc. # # When 'make dist' is run at the top level, or 'make orc-update' # in a directory including this fragment, the generated source # files will be copied to $(ORC_SOURCE)-dist.[ch]. These files # should be checked in to git, since they are used if Orc is # disabled. # # Note that this file defines BUILT_SOURCES, so any later usage # of BUILT_SOURCES in the Makefile.am that includes this file # must use '+='. # EXTRA_DIST += $(ORC_SOURCE).orc ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h BUILT_SOURCES += tmp-orc.c $(ORC_SOURCE).h orc-update: tmp-orc.c $(ORC_SOURCE).h cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h orcc_v_gen = $(orcc_v_gen_$(V)) orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY)) orcc_v_gen_0 = @echo " ORCC $@"; cp_v_gen = $(cp_v_gen_$(V)) cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY)) cp_v_gen_0 = @echo " CP $@"; if HAVE_ORC tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc $(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc else tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c $(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h endif clean-local: clean-orc .PHONY: clean-orc clean-orc: rm -f tmp-orc.c $(ORC_SOURCE).h dist-hook: dist-hook-orc .PHONY: dist-hook-orc # we try and copy updated orc -dist files below, but don't fail if it # doesn't work as the srcdir might not be writable dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h rm -f tmp-orc.c~ cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \ cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \ cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h buzztrax-0.10.2/depcomp0000754042355400116100000004426711702054466015360 0ustar00ensoniceng00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # 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 cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp 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 "X$1" != 'X--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 "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi 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. -arch) eat=yes ;; -*|$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 "X$1" != 'X--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. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # 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 ;; 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: buzztrax-0.10.2/Makefile.am0000644042355400116100000001447312627656765016055 0ustar00ensoniceng00000000000000## Process this file with automake to produce Makefile.in # AM_GNU_GETTEXT requires po in SUBDIRS SUBDIRS = po docs/help/bt-edit # see fake subdir rules FAKE_SUBDIRS = \ docs/reference/bt-core docs/reference/bt-ic \ docs/reference/bt-cmd docs/reference/bt-edit \ docs/reference/bt-gst DIST_SUBDIRS = $(SUBDIRS) $(FAKE_SUBDIRS) ACLOCAL_AMFLAGS = -I m4 DISTCHECK_CONFIGURE_FLAGS = \ --enable-gtk-doc \ --enable-debug \ --disable-update-desktop \ --disable-update-mime \ --disable-update-icon-cache \ --disable-scrollkeeper AM_CPPFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ -DPREFIX=\"$(prefix)\" \ -DSYSCONFDIR=\"$(sysconfdir)\" \ -DLOCALEDIR=\"$(localedir)\" \ -DLIBDIR=\"$(libdir)\" \ -DDATADIR=\"$(datadir)\" \ -DTESTSONGDIR=\"$(abs_top_srcdir)/tests/songs\" \ -DG_LOG_DOMAIN=\"buzztrax\" \ -DG_SETTINGS_ENABLE_BACKEND \ $(BASE_DEPS_CFLAGS) \ $(BT_CFLAGS) AM_LDFLAGS = $(BT_LDFLAGS) EXTRA_DIST = \ org.buzztrax.gschema.xml \ $(appdata_in_files) \ buzztrax.convert \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ COPYING-DOCS \ omf.make \ xmldocs.make \ README.md TODO \ docs/version.entities.in \ docs/buzztrax.xsd \ po/$(GETTEXT_PACKAGE).pot # BUILT_SOURCES is for generated source BUILT_SOURCES = builddirs # CLEANFILES is for files generated by make CLEANFILES = $(appdata_DATA) # DISTCLEANFILES is for files generated by configure DISTCLEANFILES = \ intltool-extract \ intltool-merge \ intltool-update \ docs/version.entities # define list variables once so that we can unconditionally append noinst_HEADERS = noinst_LTLIBRARIES = include $(top_srcdir)/Makefile.icons.am include $(top_srcdir)/Makefile.src.am include $(top_srcdir)/Makefile.tests.am #-- settings # gsettings_SCHEMAS is a list of all the schemas you want to install gsettings_SCHEMAS = org.buzztrax.gschema.xml # include the appropriate makefile rules for schema handling @GSETTINGS_RULES@ # convert the gconf data to gsettings gconfconvertdir = $(datadir)/GConf/gsettings gconfconvert_DATA = buzztrax.convert #-- app-data for package manager appdatadir = $(datadir)/appdata appdata_DATA = $(appdata_in_files:.xml.in=.xml) appdata_in_files = buzztrax.appdata.xml.in #-- fake subdir rules docs: docs-bt-core docs-bt-ic docs-bt-cmd docs-bt-edit docs-bt-gst docs/reference/version.entities: @cp docs/version.entities docs/reference/ docs-bt-core: libbuzztrax-core.la libbtbsl.la libbuzztrax-ic.la docs/reference/version.entities @$(MAKE) -C docs/reference/bt-core docs-bt-ic: libbuzztrax-ic.la docs/reference/version.entities @$(MAKE) -C docs/reference/bt-ic docs-bt-cmd: libbtcmd.la libbuzztrax-ic.la libbuzztrax-core.la docs/reference/version.entities @$(MAKE) -C docs/reference/bt-cmd docs-bt-edit: libbtedit.la libbuzztrax-ic.la libbuzztrax-core.la docs/reference/version.entities @$(MAKE) -C docs/reference/bt-edit docs-bt-gst: libbuzztrax-gst.la @$(MAKE) -C docs/reference/bt-gst all-local: docs check-local: @for dir in $(FAKE_SUBDIRS); do $(MAKE) -C $$dir check; done clean-local: test-clean-local -@rm docs/reference/version.entities -@rm -f po/.intltool-merge-cache @for dir in $(FAKE_SUBDIRS); do \ if test -f $$dir/Makefile; then \ $(MAKE) -C $$dir clean; \ fi; \ done install-data-local: @for dir in $(FAKE_SUBDIRS); do $(MAKE) -C $$dir install-data; done uninstall-local: @for dir in $(FAKE_SUBDIRS); do $(MAKE) -C $$dir uninstall; done # silly hack to fix make distcheck on a clean package po/$(GETTEXT_PACKAGE).pot: $(MAKE) -C po update-po ## this seems to fail during make distcheck ##uninstall-local: ## rm -r $(datadir)/$(PACKAGE) install-data-hook: update-icon-cache update-desktop-db update-mime-db uninstall-hook: update-icon-cache update-desktop-db update-mime-db ## We get warnings for left-over files when doing 'make distuninstallcheck' distuninstallcheck_listfiles = find . -type f -print ## Workaround for scrollkeeper bug distuninstallcheck_listfiles += | grep -v '/var/scrollkeeper' ## Workaround for installing files in own prefix distuninstallcheck_listfiles += | grep -v '/share/mime' ## Workaround for installing icon theme in own prefix distuninstallcheck_listfiles += | grep -v 'icon-theme.cache' ## Workaround for installing icon theme in own prefix distuninstallcheck_listfiles += | grep -v 'mimeinfo.cache' # the mkdir is needed because of an INTLTOOL bug # https://bugs.launchpad.net/intltool/+bug/605826 builddirs: $(AM_V_at)$(MKDIR_P) src/lib/core/songio/bsl/ src/ui/edit # meh, if we build from a tarball, there won't be a .git/index AUTHORS: $(wildcard $(top_srcdir)/.git/index) $(AM_V_GEN)if test -d "$(top_srcdir)/.git"; \ then \ ( cd "$(top_srcdir)" && \ git log --no-merges --pretty=format:"%an <%ae>" . | \ sed -e 's/sourceforge.net/sf.net/' \ -e 's/Stefan Sauer /Stefan Sauer /' \ -e 's/\(Joseph Orbegoso Pea \|trusktr \)/Joe Pea /' \ -e 's/\(Tom Mast \|tom__m \)/Tom Mast /' \ -e 's/\(Thomas Wabner \|Waffel \|waffel \)/Thomas Wabner /' | \ sort | uniq -c | sed -e 's/^\ *//' | sort -rn | cut -d' ' -f2-; echo; \ echo 'src/lib/dllwrapper is based on the work of various authors of the winelib and xine projects' \ ) > $@.tmp && \ cmp -s $@ $@.tmp; \ if test "$(?)" = "0"; then rm -f $@.tmp; touch $@; else mv -f $@.tmp $@; fi \ || ( rm -f $@.tmp ; \ echo Failed to generate $@ >&2 ); \ fi .PHONY: \ builddirs \ docs docs-bt-core docs-bt-ic docs-bt-cmd docs-bt-edit \ install-gconf uninstall-gconf \ update-icon-cache update-desktop-db update-mime-db \ dict cc10 cc20 # make dict -- create an aspell dictionary from tags dict:: tags echo "personal_ws" >$(PACKAGE).aspell_dict @find . -name tags -exec grep -v "$\!" {} \; | cut -f1 | sort | uniq >>$(PACKAGE).aspell_dict # -k2 in sort for Tranditional McCabe Cyclomatic Complexity # make cc10 -- report McCabe Cyclomatic Complexity # make cc20 -- report McCabe Cyclomatic Complexity cc10:: @pmccabe `find src -name '*.c'` | sort -nr | awk '($$1 > 10)' cc20:: @pmccabe `find src -name '*.c'` | sort -nr | awk '($$1 > 20)' include $(top_srcdir)/common.mak buzztrax-0.10.2/m4/0000755042355400116100000000000012640736114014306 5ustar00ensoniceng00000000000000buzztrax-0.10.2/m4/iconv.m40000644042355400116100000000665311702054461015674 0ustar00ensoniceng00000000000000# iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) buzztrax-0.10.2/m4/orc.m40000644042355400116100000000316012463661775015350 0ustar00ensoniceng00000000000000dnl pkg-config-based checks for Orc dnl specific: dnl ORC_CHECK([REQUIRED_VERSION]) AC_DEFUN([ORC_CHECK], [ ORC_REQ=ifelse([$1], , "0.4.6", [$1]) AC_ARG_ENABLE(orc, AC_HELP_STRING([--enable-orc],[use Orc if installed]), [case "${enableval}" in auto) enable_orc=auto ;; yes) enable_orc=yes ;; no) enable_orc=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-orc) ;; esac ], [enable_orc=auto]) dnl Default value if test "x$enable_orc" != "xno" ; then PKG_CHECK_MODULES(ORC, orc-0.4 >= $ORC_REQ, [ AC_DEFINE(HAVE_ORC, 1, [Use Orc]) if test "x$ORCC" = "x" ; then ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` fi AC_SUBST(ORCC) ORCC_FLAGS="--compat $ORC_REQ" AC_SUBST(ORCC_FLAGS) HAVE_ORC=yes ], [ if test "x$enable_orc" = "xyes" ; then AC_MSG_ERROR([--enable-orc specified, but Orc >= $ORC_REQ not found]) fi AC_DEFINE(DISABLE_ORC, 1, [Disable Orc]) HAVE_ORC=no ]) else AC_DEFINE(DISABLE_ORC, 1, [Disable Orc]) HAVE_ORC=no fi AM_CONDITIONAL(HAVE_ORC, test "x$HAVE_ORC" = "xyes") ])) AC_DEFUN([ORC_OUTPUT], [ if test "$HAVE_ORC" = yes ; then printf "configure: *** Orc acceleration enabled.\n" else if test "x$enable_orc" = "xno" ; then printf "configure: *** Orc acceleration disabled by --disable-orc. Slower code paths\n" printf " will be used.\n" else printf "configure: *** Orc acceleration disabled. Requires Orc >= $ORC_REQ, which was\n" printf " not found. Slower code paths will be used.\n" fi fi printf "\n" ]) buzztrax-0.10.2/m4/ltoptions.m40000644042355400116100000003007312637755556016627 0ustar00ensoniceng00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) buzztrax-0.10.2/m4/lt~obsolete.m40000644042355400116100000001375612637755556017157 0ustar00ensoniceng00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) buzztrax-0.10.2/m4/nls.m40000644042355400116100000000350511702054461015343 0ustar00ensoniceng00000000000000# nls.m4 serial 1 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) AC_DEFUN([AM_MKINSTALLDIRS], [ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate it. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then case "$ac_aux_dir" in /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; esac fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) ]) buzztrax-0.10.2/m4/ltversion.m40000644042355400116100000000126212637755556016617 0ustar00ensoniceng00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) buzztrax-0.10.2/m4/lib-link.m40000644042355400116100000005534311702054461016257 0ustar00ensoniceng00000000000000# lib-link.m4 serial 4 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) buzztrax-0.10.2/m4/acx_pthread.m40000644042355400116100000003471612370505170017041 0ustar00ensoniceng00000000000000# =========================================================================== # http://autoconf-archive.cryp.to/acx_pthread.html # =========================================================================== # # SYNOPSIS # # ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # # This macro figures out how to build C programs using POSIX threads. It # sets the PTHREAD_LIBS output variable to the threads library and linker # flags, and the PTHREAD_CFLAGS output variable to any special C compiler # flags that are needed. (The user can also force certain compiler # flags/libs to be tested by setting these environment variables.) # # Also sets PTHREAD_CC to any special C compiler that is needed for # multi-threaded programs (defaults to the value of CC otherwise). (This # is necessary on AIX to use the special cc_r compiler alias.) # # NOTE: You are assumed to not only compile your program with these flags, # but also link it with them as well. e.g. you should link with # $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS # # If you are only building threads programs, you may wish to use these # variables in your default LIBS, CFLAGS, and CC: # # LIBS="$PTHREAD_LIBS $LIBS" # CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # CC="$PTHREAD_CC" # # In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant # has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name # (e.g. PTHREAD_CREATE_UNDETACHED on AIX). # # ACTION-IF-FOUND is a list of shell commands to run if a threads library # is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it # is not found. If ACTION-IF-FOUND is not specified, the default action # will define HAVE_PTHREAD. # # Please let the authors know if this macro fails on any platform, or if # you have any other suggestions or comments. This macro was based on work # by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help # from M. Frigo), as well as ac_pthread and hb_pthread macros posted by # Alejandro Forero Cuervo to the autoconf macro repository. We are also # grateful for the helpful feedback of numerous users. # # LAST MODIFICATION # # 2008-04-12 # # COPYLEFT # # Copyright (c) 2008 Steven G. Johnson # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Macro Archive. When you make and # distribute a modified version of the Autoconf Macro, you may extend this # special exception to the GPL to apply to your modified version as well. AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_SAVE AC_LANG_C AC_ARG_VAR([PTHREAD_CFLAGS], [C compiler flags for pthread library])dnl AC_ARG_VAR([PTHREAD_LIBS], [linker flags for pthread library])dnl acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_TRY_LINK([#include ], [pthread_t th; pthread_attr_t attr = {0, }; pthread_join(th, 0); pthread_attr_init(&attr); pthread_cleanup_push(0, 0); pthread_create(&th,&attr,(void * (*)(void *))main,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. AC_MSG_CHECKING([for joinable pthread attribute]) attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do AC_TRY_LINK([#include ], [int attr=$attr; return attr;], [attr_name=$attr; break]) done AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) else PTHREAD_CC=$CC fi # The next part tries to detect GCC inconsistency with -shared on some # architectures and systems. The problem is that in certain # configurations, when -shared is specified, GCC "forgets" to # internally use various flags which are still necessary. AC_MSG_CHECKING([whether to check for GCC pthread/shared inconsistencies]) check_inconsistencies=yes case "${host_cpu}-${host_os}" in *-darwin*) check_inconsistencies=no ;; esac if test x"$GCC" != xyes -o "x$check_inconsistencies" != xyes ; then AC_MSG_RESULT([no]) else AC_MSG_RESULT([yes]) # In order not to create several levels of indentation, we test # the value of "$ok" until we find out the cure or run out of # ideas. ok="no" # # Prepare the flags # save_CFLAGS="$CFLAGS" save_LIBS="$LIBS" save_CC="$CC" # Try with the flags determined by the earlier checks. # # -Wl,-z,defs forces link-time symbol resolution, so that the # linking checks with -shared actually have any value # # FIXME: -fPIC is required for -shared on many architectures, # so we specify it here, but the right way would probably be to # properly detect whether it is actually required. CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CC="$PTHREAD_CC" AC_MSG_CHECKING([whether -pthread is sufficient with -shared]) AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [ok=yes]) if test "x$ok" = xyes; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi # # Linux gcc on some architectures such as mips/mipsel forgets # about -lpthread # if test x"$ok" = xno; then AC_MSG_CHECKING([whether -lpthread fixes that]) LIBS="-lpthread $PTHREAD_LIBS $save_LIBS" AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [ok=yes]) if test "x$ok" = xyes; then AC_MSG_RESULT([yes]) PTHREAD_LIBS="-lpthread $PTHREAD_LIBS" else AC_MSG_RESULT([no]) fi fi # # FreeBSD 4.10 gcc forgets to use -lc_r instead of -lc # if test x"$ok" = xno; then AC_MSG_CHECKING([whether -lc_r fixes that]) LIBS="-lc_r $PTHREAD_LIBS $save_LIBS" AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [ok=yes]) if test "x$ok" = xyes; then AC_MSG_RESULT([yes]) PTHREAD_LIBS="-lc_r $PTHREAD_LIBS" else AC_MSG_RESULT([no]) fi fi if test x"$ok" = xno; then # OK, we have run out of ideas AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries]) # so it's not safe to assume that we may use pthreads acx_pthread_ok=no fi CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" CC="$save_CC" fi else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_RESTORE ])dnl ACX_PTHREAD buzztrax-0.10.2/m4/progtest.m40000644042355400116100000000563411702054461016423 0ustar00ensoniceng00000000000000# progtest.m4 serial 3 (gettext-0.12) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) buzztrax-0.10.2/m4/ltsugar.m40000644042355400116100000001042412637755556016253 0ustar00ensoniceng00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) buzztrax-0.10.2/m4/lib-prefix.m40000644042355400116100000001250511702054461016610 0ustar00ensoniceng00000000000000# lib-prefix.m4 serial 2 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) buzztrax-0.10.2/m4/libtool.m40000644042355400116100000106011112637755556016235 0ustar00ensoniceng00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS buzztrax-0.10.2/m4/gtk-doc.m40000644042355400116100000000631212637755561016117 0ustar00ensoniceng00000000000000dnl -*- mode: autoconf -*- # serial 2 dnl Usage: dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) AC_DEFUN([GTK_DOC_CHECK], [ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) AC_MSG_CHECKING([for gtk-doc]) PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) AC_MSG_RESULT($have_gtk_doc) if test "$have_gtk_doc" = "no"; then AC_MSG_WARN([ You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found.]) fi dnl check for tools we added during development dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that dnl may not be writable by the user. Currently, automake requires that the dnl test name must end in '.test'. dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) dnl for overriding the documentation installation directory AC_ARG_WITH([html-dir], AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, [with_html_dir='${datadir}/gtk-doc/html']) HTML_DIR="$with_html_dir" AC_SUBST([HTML_DIR]) dnl enable/disable documentation building AC_ARG_ENABLE([gtk-doc], AS_HELP_STRING([--enable-gtk-doc], [use gtk-doc to build documentation [[default=no]]]),, [enable_gtk_doc=no]) AC_MSG_CHECKING([whether to build gtk-doc documentation]) AC_MSG_RESULT($enable_gtk_doc) if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then AC_MSG_ERROR([ You must have $gtk_doc_requires installed to build documentation for $PACKAGE_NAME. Please install gtk-doc or disable building the documentation by adding '--disable-gtk-doc' to '[$]0'.]) fi dnl don't check for glib if we build glib if test "x$PACKAGE_NAME" != "xglib"; then dnl don't fail if someone does not have glib PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) fi dnl enable/disable output formats AC_ARG_ENABLE([gtk-doc-html], AS_HELP_STRING([--enable-gtk-doc-html], [build documentation in html format [[default=yes]]]),, [enable_gtk_doc_html=yes]) AC_ARG_ENABLE([gtk-doc-pdf], AS_HELP_STRING([--enable-gtk-doc-pdf], [build documentation in pdf format [[default=no]]]),, [enable_gtk_doc_pdf=no]) if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) ]) buzztrax-0.10.2/m4/po.m40000644042355400116100000002152011702054461015162 0ustar00ensoniceng00000000000000# po.m4 serial 1 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AM_NLS])dnl dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` AC_MSG_RESULT( [found $GMSGFMT program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po fi AC_OUTPUT_COMMANDS([ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= GMOFILES= UPDATEPOFILES= DUMMYPOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) buzztrax-0.10.2/m4/intltool.m40000644042355400116100000002772412637755561016445 0ustar00ensoniceng00000000000000## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- ## Copyright (C) 2001 Eazel, Inc. ## Author: Maciej Stachowiak ## Kenneth Christiansen ## ## 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. ## ## 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. dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) buzztrax-0.10.2/m4/lib-ld.m40000644042355400116100000000676111702054461015721 0ustar00ensoniceng00000000000000# lib-ld.m4 serial 2 (gettext-0.12) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no fi]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-1.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) buzztrax-0.10.2/m4/gettext.m40000644042355400116100000004052111702054461016232 0ustar00ensoniceng00000000000000# gettext.m4 serial 20 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define(gt_included_intl, ifelse([$1], [external], [no], [yes])) define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Set USE_NLS. AM_NLS ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. dnl Add a version number to the cache macros. define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], gt_cv_func_gnugettext_libintl, [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) dnl Now see whether libintl exists and depends on libiconv. if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext_libintl=yes ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ __fsetlocking]) AM_ICONV AM_LANGINFO_CODESET if test $ac_cv_header_locale_h = yes; then AM_LC_MESSAGES fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) buzztrax-0.10.2/tests/0000755042355400116100000000000012640736115015131 5ustar00ensoniceng00000000000000buzztrax-0.10.2/tests/shunit20000754042355400116100000007010112314030166016440 0ustar00ensoniceng00000000000000#! /bin/sh # $Id: shunit2 335 2011-05-01 20:10:33Z kate.ward@forestent.com $ # vim:et:ft=sh:sts=2:sw=2 # # Copyright 2008 Kate Ward. All Rights Reserved. # Released under the LGPL (GNU Lesser General Public License) # # shUnit2 -- Unit testing framework for Unix shell scripts. # http://code.google.com/p/shunit2/ # # Author: kate.ward@forestent.com (Kate Ward) # # shUnit2 is a xUnit based unit test framework for Bourne shell scripts. It is # based on the popular JUnit unit testing framework for Java. # return if shunit already loaded [ -n "${SHUNIT_VERSION:-}" ] && exit 0 SHUNIT_VERSION='2.1.6' SHUNIT_TRUE=0 SHUNIT_FALSE=1 SHUNIT_ERROR=2 # enable strict mode by default SHUNIT_STRICT=${SHUNIT_STRICT:-${SHUNIT_TRUE}} _shunit_warn() { echo "shunit2:WARN $@" >&2; } _shunit_error() { echo "shunit2:ERROR $@" >&2; } _shunit_fatal() { echo "shunit2:FATAL $@" >&2; exit ${SHUNIT_ERROR}; } # specific shell checks if [ -n "${ZSH_VERSION:-}" ]; then setopt |grep "^shwordsplit$" >/dev/null if [ $? -ne ${SHUNIT_TRUE} ]; then _shunit_fatal 'zsh shwordsplit option is required for proper operation' fi if [ -z "${SHUNIT_PARENT:-}" ]; then _shunit_fatal "zsh does not pass \$0 through properly. please declare \ \"SHUNIT_PARENT=\$0\" before calling shUnit2" fi fi # # constants # __SHUNIT_ASSERT_MSG_PREFIX='ASSERT:' __SHUNIT_MODE_SOURCED='sourced' __SHUNIT_MODE_STANDALONE='standalone' __SHUNIT_PARENT=${SHUNIT_PARENT:-$0} # set the constants readonly shunit_constants_=`set |grep '^__SHUNIT_' |cut -d= -f1` echo "${shunit_constants_}" |grep '^Binary file' >/dev/null && \ shunit_constants_=`set |grep -a '^__SHUNIT_' |cut -d= -f1` for shunit_constant_ in ${shunit_constants_}; do shunit_ro_opts_='' case ${ZSH_VERSION:-} in '') ;; # this isn't zsh [123].*) ;; # early versions (1.x, 2.x, 3.x) *) shunit_ro_opts_='-g' ;; # all later versions. declare readonly globally esac readonly ${shunit_ro_opts_} ${shunit_constant_} done unset shunit_constant_ shunit_constants_ shunit_ro_opts_ # variables __shunit_lineno='' # line number of executed test __shunit_mode=${__SHUNIT_MODE_SOURCED} # operating mode __shunit_reportGenerated=${SHUNIT_FALSE} # is report generated __shunit_script='' # filename of unittest script (standalone mode) __shunit_skip=${SHUNIT_FALSE} # is skipping enabled __shunit_suite='' # suite of tests to execute # counts of tests __shunit_testSuccess=${SHUNIT_TRUE} __shunit_testsTotal=0 __shunit_testsPassed=0 __shunit_testsFailed=0 # counts of asserts __shunit_assertsTotal=0 __shunit_assertsPassed=0 __shunit_assertsFailed=0 __shunit_assertsSkipped=0 # macros _SHUNIT_LINENO_='eval __shunit_lineno=""; if [ "${1:-}" = "--lineno" ]; then [ -n "$2" ] && __shunit_lineno="[$2] "; shift 2; fi' #----------------------------------------------------------------------------- # assert functions # # Assert that two values are equal to one another. # # Args: # message: string: failure message [optional] # expected: string: expected value # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertEquals() { ${_SHUNIT_LINENO_} if [ $# -lt 2 -o $# -gt 3 ]; then _shunit_error "assertEquals() requires two or three arguments; $# given" _shunit_error "1: ${1:+$1} 2: ${2:+$2} 3: ${3:+$3}${4:+ 4: $4}" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 3 ]; then shunit_message_="${shunit_message_}$1" shift fi shunit_expected_=$1 shunit_actual_=$2 shunit_return=${SHUNIT_TRUE} if [ "${shunit_expected_}" = "${shunit_actual_}" ]; then _shunit_assertPass else failNotEquals "${shunit_message_}" "${shunit_expected_}" "${shunit_actual_}" shunit_return=${SHUNIT_FALSE} fi unset shunit_message_ shunit_expected_ shunit_actual_ return ${shunit_return} } _ASSERT_EQUALS_='eval assertEquals --lineno "${LINENO:-}"' # Assert that two values are not equal to one another. # # Args: # message: string: failure message [optional] # expected: string: expected value # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertNotEquals() { ${_SHUNIT_LINENO_} if [ $# -lt 2 -o $# -gt 3 ]; then _shunit_error "assertNotEquals() requires two or three arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 3 ]; then shunit_message_="${shunit_message_}$1" shift fi shunit_expected_=$1 shunit_actual_=$2 shunit_return=${SHUNIT_TRUE} if [ "${shunit_expected_}" != "${shunit_actual_}" ]; then _shunit_assertPass else failSame "${shunit_message_}" "$@" shunit_return=${SHUNIT_FALSE} fi unset shunit_message_ shunit_expected_ shunit_actual_ return ${shunit_return} } _ASSERT_NOT_EQUALS_='eval assertNotEquals --lineno "${LINENO:-}"' # Assert that a value is null (i.e. an empty string) # # Args: # message: string: failure message [optional] # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertNull() { ${_SHUNIT_LINENO_} if [ $# -lt 1 -o $# -gt 2 ]; then _shunit_error "assertNull() requires one or two arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 2 ]; then shunit_message_="${shunit_message_}$1" shift fi assertTrue "${shunit_message_}" "[ -z '$1' ]" shunit_return=$? unset shunit_message_ return ${shunit_return} } _ASSERT_NULL_='eval assertNull --lineno "${LINENO:-}"' # Assert that a value is not null (i.e. a non-empty string) # # Args: # message: string: failure message [optional] # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertNotNull() { ${_SHUNIT_LINENO_} if [ $# -gt 2 ]; then # allowing 0 arguments as $1 might actually be null _shunit_error "assertNotNull() requires one or two arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 2 ]; then shunit_message_="${shunit_message_}$1" shift fi shunit_actual_=`_shunit_escapeCharactersInString "${1:-}"` test -n "${shunit_actual_}" assertTrue "${shunit_message_}" $? shunit_return=$? unset shunit_actual_ shunit_message_ return ${shunit_return} } _ASSERT_NOT_NULL_='eval assertNotNull --lineno "${LINENO:-}"' # Assert that two values are the same (i.e. equal to one another). # # Args: # message: string: failure message [optional] # expected: string: expected value # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertSame() { ${_SHUNIT_LINENO_} if [ $# -lt 2 -o $# -gt 3 ]; then _shunit_error "assertSame() requires two or three arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 3 ]; then shunit_message_="${shunit_message_}$1" shift fi assertEquals "${shunit_message_}" "$1" "$2" shunit_return=$? unset shunit_message_ return ${shunit_return} } _ASSERT_SAME_='eval assertSame --lineno "${LINENO:-}"' # Assert that two values are not the same (i.e. not equal to one another). # # Args: # message: string: failure message [optional] # expected: string: expected value # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertNotSame() { ${_SHUNIT_LINENO_} if [ $# -lt 2 -o $# -gt 3 ]; then _shunit_error "assertNotSame() requires two or three arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 3 ]; then shunit_message_="${shunit_message_:-}$1" shift fi assertNotEquals "${shunit_message_}" "$1" "$2" shunit_return=$? unset shunit_message_ return ${shunit_return} } _ASSERT_NOT_SAME_='eval assertNotSame --lineno "${LINENO:-}"' # Assert that a value or shell test condition is true. # # In shell, a value of 0 is true and a non-zero value is false. Any integer # value passed can thereby be tested. # # Shell supports much more complicated tests though, and a means to support # them was needed. As such, this function tests that conditions are true or # false through evaluation rather than just looking for a true or false. # # The following test will succeed: # assertTrue 0 # assertTrue "[ 34 -gt 23 ]" # The folloing test will fail with a message: # assertTrue 123 # assertTrue "test failed" "[ -r '/non/existant/file' ]" # # Args: # message: string: failure message [optional] # condition: string: integer value or shell conditional statement # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertTrue() { ${_SHUNIT_LINENO_} if [ $# -gt 2 ]; then _shunit_error "assertTrue() takes one two arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 2 ]; then shunit_message_="${shunit_message_}$1" shift fi shunit_condition_=$1 # see if condition is an integer, i.e. a return value shunit_match_=`expr "${shunit_condition_}" : '\([0-9]*\)'` shunit_return=${SHUNIT_TRUE} if [ -z "${shunit_condition_}" ]; then # null condition shunit_return=${SHUNIT_FALSE} elif [ -n "${shunit_match_}" -a "${shunit_condition_}" = "${shunit_match_}" ] then # possible return value. treating 0 as true, and non-zero as false. [ ${shunit_condition_} -ne 0 ] && shunit_return=${SHUNIT_FALSE} else # (hopefully) a condition ( eval ${shunit_condition_} ) >/dev/null 2>&1 [ $? -ne 0 ] && shunit_return=${SHUNIT_FALSE} fi # record the test if [ ${shunit_return} -eq ${SHUNIT_TRUE} ]; then _shunit_assertPass else _shunit_assertFail "${shunit_message_}" fi unset shunit_message_ shunit_condition_ shunit_match_ return ${shunit_return} } _ASSERT_TRUE_='eval assertTrue --lineno "${LINENO:-}"' # Assert that a value or shell test condition is false. # # In shell, a value of 0 is true and a non-zero value is false. Any integer # value passed can thereby be tested. # # Shell supports much more complicated tests though, and a means to support # them was needed. As such, this function tests that conditions are true or # false through evaluation rather than just looking for a true or false. # # The following test will succeed: # assertFalse 1 # assertFalse "[ 'apples' = 'oranges' ]" # The folloing test will fail with a message: # assertFalse 0 # assertFalse "test failed" "[ 1 -eq 1 -a 2 -eq 2 ]" # # Args: # message: string: failure message [optional] # condition: string: integer value or shell conditional statement # Returns: # integer: success (TRUE/FALSE/ERROR constant) assertFalse() { ${_SHUNIT_LINENO_} if [ $# -lt 1 -o $# -gt 2 ]; then _shunit_error "assertFalse() quires one or two arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 2 ]; then shunit_message_="${shunit_message_}$1" shift fi shunit_condition_=$1 # see if condition is an integer, i.e. a return value shunit_match_=`expr "${shunit_condition_}" : '\([0-9]*\)'` shunit_return=${SHUNIT_TRUE} if [ -z "${shunit_condition_}" ]; then # null condition shunit_return=${SHUNIT_FALSE} elif [ -n "${shunit_match_}" -a "${shunit_condition_}" = "${shunit_match_}" ] then # possible return value. treating 0 as true, and non-zero as false. [ ${shunit_condition_} -eq 0 ] && shunit_return=${SHUNIT_FALSE} else # (hopefully) a condition ( eval ${shunit_condition_} ) >/dev/null 2>&1 [ $? -eq 0 ] && shunit_return=${SHUNIT_FALSE} fi # record the test if [ ${shunit_return} -eq ${SHUNIT_TRUE} ]; then _shunit_assertPass else _shunit_assertFail "${shunit_message_}" fi unset shunit_message_ shunit_condition_ shunit_match_ return ${shunit_return} } _ASSERT_FALSE_='eval assertFalse --lineno "${LINENO:-}"' #----------------------------------------------------------------------------- # failure functions # # Records a test failure. # # Args: # message: string: failure message [optional] # Returns: # integer: success (TRUE/FALSE/ERROR constant) fail() { ${_SHUNIT_LINENO_} if [ $# -gt 1 ]; then _shunit_error "fail() requires zero or one arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 1 ]; then shunit_message_="${shunit_message_}$1" shift fi _shunit_assertFail "${shunit_message_}" unset shunit_message_ return ${SHUNIT_FALSE} } _FAIL_='eval fail --lineno "${LINENO:-}"' # Records a test failure, stating two values were not equal. # # Args: # message: string: failure message [optional] # expected: string: expected value # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) failNotEquals() { ${_SHUNIT_LINENO_} if [ $# -lt 2 -o $# -gt 3 ]; then _shunit_error "failNotEquals() requires one or two arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 3 ]; then shunit_message_="${shunit_message_}$1" shift fi shunit_expected_=$1 shunit_actual_=$2 _shunit_assertFail "${shunit_message_:+${shunit_message_} }expected:<${shunit_expected_}> but was:<${shunit_actual_}>" unset shunit_message_ shunit_expected_ shunit_actual_ return ${SHUNIT_FALSE} } _FAIL_NOT_EQUALS_='eval failNotEquals --lineno "${LINENO:-}"' # Records a test failure, stating two values should have been the same. # # Args: # message: string: failure message [optional] # expected: string: expected value # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) failSame() { ${_SHUNIT_LINENO_} if [ $# -lt 2 -o $# -gt 3 ]; then _shunit_error "failSame() requires two or three arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 3 ]; then shunit_message_="${shunit_message_}$1" shift fi _shunit_assertFail "${shunit_message_:+${shunit_message_} }expected not same" unset shunit_message_ return ${SHUNIT_FALSE} } _FAIL_SAME_='eval failSame --lineno "${LINENO:-}"' # Records a test failure, stating two values were not equal. # # This is functionally equivalent to calling failNotEquals(). # # Args: # message: string: failure message [optional] # expected: string: expected value # actual: string: actual value # Returns: # integer: success (TRUE/FALSE/ERROR constant) failNotSame() { ${_SHUNIT_LINENO_} if [ $# -lt 2 -o $# -gt 3 ]; then _shunit_error "failNotEquals() requires one or two arguments; $# given" return ${SHUNIT_ERROR} fi _shunit_shouldSkip && return ${SHUNIT_TRUE} shunit_message_=${__shunit_lineno} if [ $# -eq 3 ]; then shunit_message_="${shunit_message_}$1" shift fi failNotEquals "${shunit_message_}" "$1" "$2" shunit_return=$? unset shunit_message_ return ${shunit_return} } _FAIL_NOT_SAME_='eval failNotSame --lineno "${LINENO:-}"' #----------------------------------------------------------------------------- # skipping functions # # Force remaining assert and fail functions to be "skipped". # # This function forces the remaining assert and fail functions to be "skipped", # i.e. they will have no effect. Each function skipped will be recorded so that # the total of asserts and fails will not be altered. # # Args: # None startSkipping() { __shunit_skip=${SHUNIT_TRUE} } # Resume the normal recording behavior of assert and fail calls. # # Args: # None endSkipping() { __shunit_skip=${SHUNIT_FALSE} } # Returns the state of assert and fail call skipping. # # Args: # None # Returns: # boolean: (TRUE/FALSE constant) isSkipping() { return ${__shunit_skip} } #----------------------------------------------------------------------------- # suite functions # # Stub. This function should contains all unit test calls to be made. # # DEPRECATED (as of 2.1.0) # # This function can be optionally overridden by the user in their test suite. # # If this function exists, it will be called when shunit2 is sourced. If it # does not exist, shunit2 will search the parent script for all functions # beginning with the word 'test', and they will be added dynamically to the # test suite. # # This function should be overridden by the user in their unit test suite. # Note: see _shunit_mktempFunc() for actual implementation # # Args: # None #suite() { :; } # DO NOT UNCOMMENT THIS FUNCTION # Adds a function name to the list of tests schedule for execution. # # This function should only be called from within the suite() function. # # Args: # function: string: name of a function to add to current unit test suite suite_addTest() { shunit_func_=${1:-} __shunit_suite="${__shunit_suite:+${__shunit_suite} }${shunit_func_}" __shunit_testsTotal=`expr ${__shunit_testsTotal} + 1` unset shunit_func_ } # Stub. This function will be called once before any tests are run. # # Common one-time environment preparation tasks shared by all tests can be # defined here. # # This function should be overridden by the user in their unit test suite. # Note: see _shunit_mktempFunc() for actual implementation # # Args: # None #oneTimeSetUp() { :; } # DO NOT UNCOMMENT THIS FUNCTION # Stub. This function will be called once after all tests are finished. # # Common one-time environment cleanup tasks shared by all tests can be defined # here. # # This function should be overridden by the user in their unit test suite. # Note: see _shunit_mktempFunc() for actual implementation # # Args: # None #oneTimeTearDown() { :; } # DO NOT UNCOMMENT THIS FUNCTION # Stub. This function will be called before each test is run. # # Common environment preparation tasks shared by all tests can be defined here. # # This function should be overridden by the user in their unit test suite. # Note: see _shunit_mktempFunc() for actual implementation # # Args: # None #setUp() { :; } # Note: see _shunit_mktempFunc() for actual implementation # Stub. This function will be called after each test is run. # # Common environment cleanup tasks shared by all tests can be defined here. # # This function should be overridden by the user in their unit test suite. # Note: see _shunit_mktempFunc() for actual implementation # # Args: # None #tearDown() { :; } # DO NOT UNCOMMENT THIS FUNCTION #------------------------------------------------------------------------------ # internal shUnit2 functions # # Create a temporary directory to store various run-time files in. # # This function is a cross-platform temporary directory creation tool. Not all # OSes have the mktemp function, so one is included here. # # Args: # None # Outputs: # string: the temporary directory that was created _shunit_mktempDir() { # try the standard mktemp function ( exec mktemp -dqt shunit.XXXXXX 2>/dev/null ) && return # the standard mktemp didn't work. doing our own. if [ -r '/dev/urandom' -a -x '/usr/bin/od' ]; then _shunit_random_=`/usr/bin/od -vAn -N4 -tx4 "${_shunit_file_}" #! /bin/sh exit ${SHUNIT_TRUE} EOF chmod +x "${_shunit_file_}" done unset _shunit_file_ } # Final cleanup function to leave things as we found them. # # Besides removing the temporary directory, this function is in charge of the # final exit code of the unit test. The exit code is based on how the script # was ended (e.g. normal exit, or via Ctrl-C). # # Args: # name: string: name of the trap called (specified when trap defined) _shunit_cleanup() { _shunit_name_=$1 case ${_shunit_name_} in EXIT) _shunit_signal_=0 ;; INT) _shunit_signal_=2 ;; TERM) _shunit_signal_=15 ;; *) _shunit_warn "unrecognized trap value (${_shunit_name_})" _shunit_signal_=0 ;; esac # do our work rm -fr "${__shunit_tmpDir}" # exit for all non-EXIT signals if [ ${_shunit_name_} != 'EXIT' ]; then _shunit_warn "trapped and now handling the (${_shunit_name_}) signal" # disable EXIT trap trap 0 # add 128 to signal and exit exit `expr ${_shunit_signal_} + 128` elif [ ${__shunit_reportGenerated} -eq ${SHUNIT_FALSE} ] ; then _shunit_assertFail 'Unknown failure encountered running a test' _shunit_generateReport exit ${SHUNIT_ERROR} fi unset _shunit_name_ _shunit_signal_ } # The actual running of the tests happens here. # # Args: # None _shunit_execSuite() { for _shunit_test_ in ${__shunit_suite}; do __shunit_testSuccess=${SHUNIT_TRUE} # disable skipping endSkipping # execute the per-test setup function setUp # execute the test echo "${_shunit_test_}" eval ${_shunit_test_} # execute the per-test tear-down function tearDown # update stats if [ ${__shunit_testSuccess} -eq ${SHUNIT_TRUE} ]; then __shunit_testsPassed=`expr ${__shunit_testsPassed} + 1` else __shunit_testsFailed=`expr ${__shunit_testsFailed} + 1` fi done unset _shunit_test_ } # Generates the user friendly report with appropriate OK/FAILED message. # # Args: # None # Output: # string: the report of successful and failed tests, as well as totals. _shunit_generateReport() { _shunit_ok_=${SHUNIT_TRUE} # if no exit code was provided one, determine an appropriate one [ ${__shunit_testsFailed} -gt 0 \ -o ${__shunit_testSuccess} -eq ${SHUNIT_FALSE} ] \ && _shunit_ok_=${SHUNIT_FALSE} echo if [ ${__shunit_testsTotal} -eq 1 ]; then echo "Ran ${__shunit_testsTotal} test." else echo "Ran ${__shunit_testsTotal} tests." fi _shunit_failures_='' _shunit_skipped_='' [ ${__shunit_assertsFailed} -gt 0 ] \ && _shunit_failures_="failures=${__shunit_assertsFailed}" [ ${__shunit_assertsSkipped} -gt 0 ] \ && _shunit_skipped_="skipped=${__shunit_assertsSkipped}" if [ ${_shunit_ok_} -eq ${SHUNIT_TRUE} ]; then _shunit_msg_='OK' [ -n "${_shunit_skipped_}" ] \ && _shunit_msg_="${_shunit_msg_} (${_shunit_skipped_})" else _shunit_msg_="FAILED (${_shunit_failures_}" [ -n "${_shunit_skipped_}" ] \ && _shunit_msg_="${_shunit_msg_},${_shunit_skipped_}" _shunit_msg_="${_shunit_msg_})" fi echo echo ${_shunit_msg_} __shunit_reportGenerated=${SHUNIT_TRUE} unset _shunit_failures_ _shunit_msg_ _shunit_ok_ _shunit_skipped_ } # Test for whether a function should be skipped. # # Args: # None # Returns: # boolean: whether the test should be skipped (TRUE/FALSE constant) _shunit_shouldSkip() { [ ${__shunit_skip} -eq ${SHUNIT_FALSE} ] && return ${SHUNIT_FALSE} _shunit_assertSkip } # Records a successful test. # # Args: # None _shunit_assertPass() { __shunit_assertsPassed=`expr ${__shunit_assertsPassed} + 1` __shunit_assertsTotal=`expr ${__shunit_assertsTotal} + 1` } # Records a test failure. # # Args: # message: string: failure message to provide user _shunit_assertFail() { _shunit_msg_=$1 __shunit_testSuccess=${SHUNIT_FALSE} __shunit_assertsFailed=`expr ${__shunit_assertsFailed} + 1` __shunit_assertsTotal=`expr ${__shunit_assertsTotal} + 1` echo "${__SHUNIT_ASSERT_MSG_PREFIX}${_shunit_msg_}" unset _shunit_msg_ } # Records a skipped test. # # Args: # None _shunit_assertSkip() { __shunit_assertsSkipped=`expr ${__shunit_assertsSkipped} + 1` __shunit_assertsTotal=`expr ${__shunit_assertsTotal} + 1` } # Prepare a script filename for sourcing. # # Args: # script: string: path to a script to source # Returns: # string: filename prefixed with ./ (if necessary) _shunit_prepForSourcing() { _shunit_script_=$1 case "${_shunit_script_}" in /*|./*) echo "${_shunit_script_}" ;; *) echo "./${_shunit_script_}" ;; esac unset _shunit_script_ } # Escape a character in a string. # # Args: # c: string: unescaped character # s: string: to escape character in # Returns: # string: with escaped character(s) _shunit_escapeCharInStr() { [ -n "$2" ] || return # no point in doing work on an empty string # Note: using shorter variable names to prevent conflicts with # _shunit_escapeCharactersInString(). _shunit_c_=$1 _shunit_s_=$2 # escape the character echo ''${_shunit_s_}'' |sed 's/\'${_shunit_c_}'/\\\'${_shunit_c_}'/g' unset _shunit_c_ _shunit_s_ } # Escape a character in a string. # # Args: # str: string: to escape characters in # Returns: # string: with escaped character(s) _shunit_escapeCharactersInString() { [ -n "$1" ] || return # no point in doing work on an empty string _shunit_str_=$1 # Note: using longer variable names to prevent conflicts with # _shunit_escapeCharInStr(). for _shunit_char_ in '"' '$' "'" '`'; do _shunit_str_=`_shunit_escapeCharInStr "${_shunit_char_}" "${_shunit_str_}"` done echo "${_shunit_str_}" unset _shunit_char_ _shunit_str_ } # Extract list of functions to run tests against. # # Args: # script: string: name of script to extract functions from # Returns: # string: of function names _shunit_extractTestFunctions() { _shunit_script_=$1 # extract the lines with test function names, strip of anything besides the # function name, and output everything on a single line. _shunit_regex_='^[ ]*(function )*test[A-Za-z0-9_]* *\(\)' egrep "${_shunit_regex_}" "${_shunit_script_}" \ |sed 's/^[^A-Za-z0-9_]*//;s/^function //;s/\([A-Za-z0-9_]*\).*/\1/g' \ |xargs unset _shunit_regex_ _shunit_script_ } #------------------------------------------------------------------------------ # main # # determine the operating mode if [ $# -eq 0 ]; then __shunit_script=${__SHUNIT_PARENT} __shunit_mode=${__SHUNIT_MODE_SOURCED} else __shunit_script=$1 [ -r "${__shunit_script}" ] || \ _shunit_fatal "unable to read from ${__shunit_script}" __shunit_mode=${__SHUNIT_MODE_STANDALONE} fi # create a temporary storage location __shunit_tmpDir=`_shunit_mktempDir` # provide a public temporary directory for unit test scripts # TODO(kward): document this SHUNIT_TMPDIR="${__shunit_tmpDir}/tmp" mkdir "${SHUNIT_TMPDIR}" # setup traps to clean up after ourselves trap '_shunit_cleanup EXIT' 0 trap '_shunit_cleanup INT' 2 trap '_shunit_cleanup TERM' 15 # create phantom functions to work around issues with Cygwin _shunit_mktempFunc PATH="${__shunit_tmpDir}:${PATH}" # make sure phantom functions are executable. this will bite if /tmp (or the # current $TMPDIR) points to a path on a partition that was mounted with the # 'noexec' option. the noexec command was created with _shunit_mktempFunc(). noexec 2>/dev/null || _shunit_fatal \ 'please declare TMPDIR with path on partition with exec permission' # we must manually source the tests in standalone mode if [ "${__shunit_mode}" = "${__SHUNIT_MODE_STANDALONE}" ]; then . "`_shunit_prepForSourcing \"${__shunit_script}\"`" fi # execute the oneTimeSetUp function (if it exists) oneTimeSetUp # execute the suite function defined in the parent test script # deprecated as of 2.1.0 suite # if no suite function was defined, dynamically build a list of functions if [ -z "${__shunit_suite}" ]; then shunit_funcs_=`_shunit_extractTestFunctions "${__shunit_script}"` for shunit_func_ in ${shunit_funcs_}; do suite_addTest ${shunit_func_} done fi unset shunit_func_ shunit_funcs_ # execute the tests _shunit_execSuite # execute the oneTimeTearDown function (if it exists) oneTimeTearDown # generate the report _shunit_generateReport # that's it folks [ ${__shunit_testsFailed} -eq 0 ] exit $? buzztrax-0.10.2/tests/bt-cmd-encode.sh0000754042355400116100000000520212531137737020073 0ustar00ensoniceng00000000000000#!/bin/bash # Buzztrax # Copyright (C) 2007 Buzztrax team # # run buzztrax-cmd --command=encode on all example and test for crashes # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, see . # this can also be invoked manually to test ones song-library: # E_SONGS="/path/to/songs/*.bzt" T_SONGS=" " TESTRESULTDIR=/tmp FMT=ogg ./bt-cmd-encode.sh if [ -e tests/bt-cfg.sh ]; then . ./tests/bt-cfg.sh FMT=ogg else LIBTOOL= BUZZTRAX_CMD=buzztrax-cmd fi if [ -z "$E_SONGS" ]; then E_SONGS="$TESTSONGDIR/buzz*.xml \ $TESTSONGDIR/combi*.xml \ $TESTSONGDIR/melo*.xml \ $TESTSONGDIR/simple*.xml" fi if [ -z "$T_SONGS" ]; then T_SONGS="$TESTSONGDIR/broken*.xml \ $TESTSONGDIR/test*.xml" fi rm -f /tmp/bt_cmd_encode.log mkdir -p $TESTRESULTDIR res=0 trap crashed SIGTERM SIGSEGV crashed() { echo "!!! crashed" res=1 } # test examples for song in $E_SONGS; do if [ "$BT_CHECKS" != "" ]; then ls -1 $BT_CHECKS | grep >/dev/null "$song" if [ $? -eq 1 ]; then continue fi fi echo "testing $song" base=`basename "$song"` audio=`basename "$song" .xml` if [ "$audio" == "$base" ]; then audio=`basename "$song" .bzt` fi audio="$TESTRESULTDIR/$audio.$FMT" echo >>/tmp/bt_cmd_encode.log "== $song.$FMT ==" GST_DEBUG_NO_COLOR=1 GST_DEBUG="*:2,bt-*:4" $LIBTOOL $BUZZTRAX_CMD 2>>/tmp/bt_cmd_encode.log -q --command=encode --input-file="$song" --output-file="$audio" if [ $? -ne 0 ]; then res=1; fi done # test formats song="$TESTSONGDIR/simple1.xml" if [ -e "$song" ]; then for format in ogg mp3 wav flac m4a raw; do echo "testing $format" audio=`basename "$song" .xml` if [ "$audio" == "$base" ]; then audio=`basename "$song" .bzt` fi audio="$TESTRESULTDIR/$audio.$format" echo >>/tmp/bt_cmd_encode.log "== $song.$format ==" GST_DEBUG_NO_COLOR=1 GST_DEBUG="*:2,bt-*:4" $LIBTOOL $BUZZTRAX_CMD 2>>/tmp/bt_cmd_encode.log -q --command=encode --input-file="$song" --output-file="$audio" if [ $? -ne 0 ]; then res=1; fi done fi exit $res; buzztrax-0.10.2/tests/m-bt-cmd.c0000644042355400116100000000335212532132271016671 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2006 Buzztrax team * * command line app unit tests * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #define BT_CHECK #include "bt-check.h" #include "../src/ui/cmd/bt-cmd.h" #include GST_DEBUG_CATEGORY (GST_CAT_DEFAULT); GST_DEBUG_CATEGORY_EXTERN (bt_core_debug); GST_DEBUG_CATEGORY_EXTERN (bt_cmd_debug); gchar *test_argv[] = { "check_buzztrax" }; gchar **test_argvptr = test_argv; gint test_argc = G_N_ELEMENTS (test_argv); BT_TEST_SUITE_T_E ("BtCmdApplication", bt_cmd_application); /* start the test run */ gint main (gint argc, gchar ** argv) { gint nf; SRunner *sr; setup_log_base (argc, argv); setup_log_capture (); gst_init (NULL, NULL); bt_check_init (); bt_init (&test_argc, &test_argvptr); GST_DEBUG_CATEGORY_INIT (bt_cmd_debug, "bt-cmd", 0, "music production environment / command ui"); sr = srunner_create (bt_cmd_application_suite ()); srunner_run_all (sr, CK_NORMAL); nf = srunner_ntests_failed (sr); srunner_free (sr); bt_deinit (); collect_logs (nf == 0); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } buzztrax-0.10.2/tests/bt-cmd-cli.sh0000754042355400116100000000627612531137616017415 0ustar00ensoniceng00000000000000#!/bin/bash # Buzztrax # Copyright (C) 2007 Buzztrax team # # run buzztrax-cmd commandline options # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, see . # test the output a little testHelpOutput() { $LIBTOOL $BUZZTRAX_CMD --help | grep >/dev/null -- "--help-bt-core" assertEquals $? 0 } testVersionOutput() { $LIBTOOL $BUZZTRAX_CMD --version | grep >/dev/null -- "buzztrax-cmd from buzztrax" assertEquals $? 0 } # here we test that these don't crash testOptions() { $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --quiet $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=info $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=play $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=convert $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=encode $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=does_not_exist $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --input-file $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --input-file=$TESTSONGDIR $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --output-file $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --output-file=$TESTRESULTDIR } # do something real testPlayCommand() { $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=play --input-file=$TESTSONGDIR/test-simple1.xml } testPlayCommandWithQuietOption() { $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=play -q --input-file=$TESTSONGDIR/simple2.xml } testConvertCommand() { tmpfile=$SHUNIT_TMPDIR/simple2.out.xml $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=convert -q --input-file=$TESTSONGDIR/simple2.xml --output-file=$tmpfile if [ ! -r $tmpfile ]; then fail "output $tmpfile file missing, have: $(ls -al $SHUNIT_TMPDIR/simple2*)" fi rm -f $tmpfile } testEncodeCommand() { tmpfile=$SHUNIT_TMPDIR/simple2.wav $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=encode -q --input-file=$TESTSONGDIR/simple2.xml --output-file=$tmpfile if [ ! -r $tmpfile ]; then fail "output $tmpfile file missing, have: $(ls -al $SHUNIT_TMPDIR/simple2*)" fi rm -f $tmpfile } testEncodeCommandGuessFormat() { tmpfile=$SHUNIT_TMPDIR/simple2.vorbis.ogg $LIBTOOL $BUZZTRAX_CMD >/dev/null 2>&1 --command=encode -q --input-file=$TESTSONGDIR/simple2.xml --output-file=$SHUNIT_TMPDIR/simple2 if [ ! -r $tmpfile ]; then fail "output $tmpfile file missing, have: $(ls -al $SHUNIT_TMPDIR/simple2*)" fi rm -f $tmpfile } # check what happens when we face a broken setup #GST_PLUGIN_SYSTEM_PATH=/tmp GST_PLUGIN_PATH=/tmp $BUZZTRAX_CMD --command=play --input-file=$TESTSONGDIR/melo3.xml # load configuration . ./tests/bt-cfg.sh # load shunit2 . $TESTSRCDIR/shunit2 buzztrax-0.10.2/tests/bt-test-application.c0000644042355400116100000000301412461665270021162 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2010 Buzztrax team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ /** * SECTION:bttestapplication * @short_description: unit test buzztrax application * * Dummy application subclass. */ #define BT_CORE #define BT_TEST_APPLICATION_C #include "bt-check.h" #include "core/core.h" #include "bt-test-application.h" //-- the class G_DEFINE_TYPE (BtTestApplication, bt_test_application, BT_TYPE_APPLICATION); //-- constructor methods /** * bt_test_application_new: * * Create a new instance. * * Returns: the new instance */ BtApplication * bt_test_application_new (void) { return BT_APPLICATION (g_object_new (BT_TYPE_TEST_APPLICATION, NULL)); } //-- methods //-- wrapper //-- class internals static void bt_test_application_init (BtTestApplication * self) { } static void bt_test_application_class_init (BtTestApplicationClass * klass) { } buzztrax-0.10.2/tests/bt-test-plugin.h0000644042355400116100000001162512466574671020202 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2006 Buzztrax team * * gstreamer test plugin for unit tests * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #ifndef BT_TEST_PLUGIN_H #define BT_TEST_PLUGIN_H #include #include #include //-- test_sparse_enum typedef enum { BT_TEST_SPARSE_ENUM_ZERO = 0, BT_TEST_SPARSE_ENUM_ONE = 1, BT_TEST_SPARSE_ENUM_TEN = 0xa, BT_TEST_SPARSE_ENUM_TWENTY = 0x14, BT_TEST_SPARSE_ENUM_TWENTY_ONE = 0x15, BT_TEST_SPARSE_ENUM_TWO_HUNDRED = 0xc8, } BtTestSparseEnum; //-- test_no_arg_mono_source #define BT_TYPE_TEST_NO_ARG_MONO_SOURCE (bt_test_no_arg_mono_source_get_type ()) #define BT_TEST_NO_ARG_MONO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BT_TYPE_TEST_NO_ARG_MONO_SOURCE, BtTestNoArgMonoSource)) #define BT_TEST_NO_ARG_MONO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BT_TYPE_TEST_NO_ARG_MONO_SOURCE, BtTestNoArgMonoSourceClass)) #define BT_IS_TEST_NO_ARG_MONO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BT_TYPE_TEST_NO_ARG_MONO_SOURCE)) #define BT_IS_TEST_NO_ARG_MONO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BT_TYPE_TEST_NO_ARG_MONO_SOURCE)) #define BT_TEST_NO_ARG_MONO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BT_TYPE_TEST_NO_ARG_MONO_SOURCE, BtTestNoArgMonoSourceClass)) /* type macros */ typedef struct _BtTestNoArgMonoSource BtTestNoArgMonoSource; typedef struct _BtTestNoArgMonoSourceClass BtTestNoArgMonoSourceClass; /* monophonic source element */ struct _BtTestNoArgMonoSource { GstElement parent; }; /* structure of the test_mono_source class */ struct _BtTestNoArgMonoSourceClass { GstElementClass parent_class; }; GType bt_test_no_arg_mono_source_get_type(void); //-- test_mono_source #define BT_TYPE_TEST_MONO_SOURCE (bt_test_mono_source_get_type ()) #define BT_TEST_MONO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BT_TYPE_TEST_MONO_SOURCE, BtTestMonoSource)) #define BT_TEST_MONO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BT_TYPE_TEST_MONO_SOURCE, BtTestMonoSourceClass)) #define BT_IS_TEST_MONO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BT_TYPE_TEST_MONO_SOURCE)) #define BT_IS_TEST_MONO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BT_TYPE_TEST_MONO_SOURCE)) #define BT_TEST_MONO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BT_TYPE_TEST_MONO_SOURCE, BtTestMonoSourceClass)) /* type macros */ typedef struct _BtTestMonoSource BtTestMonoSource; typedef struct _BtTestMonoSourceClass BtTestMonoSourceClass; /* monophonic source element */ struct _BtTestMonoSource { GstElement parent; // test properties gulong ulong_val; gdouble double_val; gboolean switch_val; GstBtNote note_val; BtTestSparseEnum sparse_enum_val; gint wave_val; }; /* structure of the test_mono_source class */ struct _BtTestMonoSourceClass { GstElementClass parent_class; }; GType bt_test_mono_source_get_type(void); //-- test_poly_source #define BT_TYPE_TEST_POLY_SOURCE (bt_test_poly_source_get_type ()) #define BT_TEST_POLY_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BT_TYPE_TEST_POLY_SOURCE, BtTestPolySource)) #define BT_TEST_POLY_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BT_TYPE_TEST_POLY_SOURCE, BtTestPolySourceClass)) #define BT_IS_TEST_POLY_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BT_TYPE_TEST_POLY_SOURCE)) #define BT_IS_TEST_POLY_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BT_TYPE_TEST_POLY_SOURCE)) #define BT_TEST_POLY_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BT_TYPE_TEST_POLY_SOURCE, BtTestPolySourceClass)) /* type macros */ typedef struct _BtTestPolySource BtTestPolySource; typedef struct _BtTestPolySourceClass BtTestPolySourceClass; /* polyphonic source element */ struct _BtTestPolySource { GstElement parent; // test properties gulong ulong_val; gdouble double_val; gboolean switch_val; GstBtNote note_val; BtTestSparseEnum sparse_enum_val; // the number of voices the plugin has gulong num_voices; GList *voices; }; /* structure of the test_poly_source class */ struct _BtTestPolySourceClass { GstElementClass parent_class; }; GType bt_test_poly_source_get_type(void); //-- test_mono_processor //-- test_poly_processor #endif /* BT_TEST_PLUGIN_H */ buzztrax-0.10.2/tests/bt-cmd-info.sh0000754042355400116100000000557012531137761017576 0ustar00ensoniceng00000000000000#!/bin/bash # Buzztrax # Copyright (C) 2007 Buzztrax team # # run buzztrax-cmd --command=info on all example and test for crashes # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, see . # this can also be invoked manually to test ones song-library: # E_SONGS="/path/to/songs/*.bzt" T_SONGS=" " TESTRESULTDIR=/tmp ./bt-cmd-info.sh if [ -e tests/bt-cfg.sh ]; then . ./tests/bt-cfg.sh else LIBTOOL= BUZZTRAX_CMD=buzztrax-cmd fi if [ -z "$E_SONGS" ]; then E_SONGS="$TESTSONGDIR/buzz*.xml \ $TESTSONGDIR/combi*.xml \ $TESTSONGDIR/melo*.xml \ $TESTSONGDIR/samples*.bzt \ $TESTSONGDIR/simple*.xml \ $TESTSONGDIR/simple*.bzt \ $TESTSONGDIR/broken2.xml \ $TESTSONGDIR/test*.xml" fi if [ -z "$T_SONGS" ]; then T_SONGS="$TESTSONGDIR/broken1.xml \ $TESTSONGDIR/broken1.bzt \ $TESTSONGDIR/broken3.xml" fi rm -f /tmp/bt_cmd_info.log mkdir -p $TESTRESULTDIR res=0 trap crashed SIGTERM SIGSEGV crashed() { echo "!!! crashed" res=1 } # test working examples for song in $E_SONGS; do if [ "x$BT_CHECKS" != "x" ]; then ls -1 $BT_CHECKS | grep >/dev/null "$song" if [ $? -eq 1 ]; then continue fi fi echo "testing $song" base=`basename "$song"` info=`basename "$song" .xml` if [ "x$info" == "x$base" ]; then info=`basename "$song" .bzt` fi info="$TESTRESULTDIR/$info.txt" echo >>/tmp/bt_cmd_info.log "== $song ==" GST_DEBUG_NO_COLOR=1 GST_DEBUG="*:2,bt-*:4" $LIBTOOL $BUZZTRAX_CMD >$info 2>>/tmp/bt_cmd_info.log --command=info --input-file="$song" if [ $? -ne 0 ]; then echo >>/tmp/bt_cmd_info.log "!!! failed" res=1 fi done # test failure cases for song in $T_SONGS; do if [ "x$BT_CHECKS" != "x" ]; then ls -1 $BT_CHECKS | grep >/dev/null "$song" if [ $? -eq 1 ]; then continue fi fi echo "testing $song" base=`basename '$song'` info=`basename '$song' .xml` if [ "x$info" == "x$base" ]; then info=`basename "$song" .bzt` fi info="$TESTRESULTDIR/$info.txt" echo >>/tmp/bt_cmd_info.log "== $song ==" GST_DEBUG_NO_COLOR=1 GST_DEBUG="*:2,bt-*:4" $LIBTOOL $BUZZTRAX_CMD >$info 2>>/tmp/bt_cmd_info.log --command=info --input-file="$song" if [ $? -eq 0 ]; then echo >>/tmp/bt_cmd_info.log "!!! failed" res=1 fi done exit $res; buzztrax-0.10.2/tests/bt-test-application.h0000644042355400116100000000404612144654412021167 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2010 Buzztrax team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #ifndef BT_TEST_APPLICATION_H #define BT_TEST_APPLICATION_H #include #include #define BT_TYPE_TEST_APPLICATION (bt_test_application_get_type ()) #define BT_TEST_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BT_TYPE_TEST_APPLICATION, BtTestApplication)) #define BT_TEST_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BT_TYPE_TEST_APPLICATION, BtTestApplicationClass)) #define BT_IS_TEST_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BT_TYPE_TEST_APPLICATION)) #define BT_IS_TEST_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BT_TYPE_TEST_APPLICATION)) #define BT_TEST_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BT_TYPE_TEST_APPLICATION, BtTestApplicationClass)) /* type macros */ typedef struct _BtTestApplication BtTestApplication; typedef struct _BtTestApplicationClass BtTestApplicationClass; /** * BtTestApplication: * * gconf based implementation object for a buzztrax based settings */ struct _BtTestApplication { const BtApplication parent; }; /* structure of the gconf-settings class */ struct _BtTestApplicationClass { const BtApplicationClass parent; }; BtApplication *bt_test_application_new(void); GType bt_test_application_get_type(void) G_GNUC_CONST; #endif // BT_TEST_APPLICATION_H buzztrax-0.10.2/tests/btic-test-device.c0000644042355400116100000001102512461664524020434 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2012 Buzztrax team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ /** * SECTION:bticinputdevice * @short_description: buzztraxs interaction controller test device * * Dummy device for tests. */ #define BTIC_CORE #define BTIC_TEST_DEVICE_C #include "ic/ic_private.h" #include "btic-test-device.h" struct _BtIcTestDevicePrivate { /* used to validate if dispose has run */ gboolean dispose_has_run; gboolean running; gboolean learn_mode; guint learn_key; }; //-- the class static void btic_test_device_interface_init (gpointer const g_iface, gpointer const iface_data); G_DEFINE_TYPE_WITH_CODE (BtIcTestDevice, btic_test_device, BTIC_TYPE_DEVICE, G_IMPLEMENT_INTERFACE (BTIC_TYPE_LEARN, btic_test_device_interface_init)); //-- constructor methods /** * btic_test_device_new: * @name: human readable name * * Create a new instance * * Returns: the new instance or %NULL in case of an error */ BtIcTestDevice * btic_test_device_new (const gchar * name) { return (BTIC_TEST_DEVICE (g_object_new (BTIC_TYPE_TEST_DEVICE, "name", name, NULL))); } //-- methods static gboolean btic_test_device_start (gconstpointer _self) { BtIcTestDevice *self = BTIC_TEST_DEVICE (_self); self->priv->running = TRUE; return (TRUE); } static gboolean btic_test_device_stop (gconstpointer _self) { BtIcTestDevice *self = BTIC_TEST_DEVICE (_self); self->priv->running = FALSE; return (TRUE); } //-- learn interface static gboolean btic_test_device_learn_start (gconstpointer _self) { BtIcTestDevice *self = BTIC_TEST_DEVICE (_self); self->priv->learn_mode = TRUE; btic_device_start (BTIC_DEVICE (self)); return (TRUE); } static gboolean btic_test_device_learn_stop (gconstpointer _self) { BtIcTestDevice *self = BTIC_TEST_DEVICE (_self); self->priv->learn_mode = FALSE; btic_device_stop (BTIC_DEVICE (self)); return (TRUE); } static BtIcControl * btic_test_device_register_learned_control (gconstpointer _self, const gchar * name) { BtIcControl *control = NULL; BtIcTestDevice *self = BTIC_TEST_DEVICE (_self); GST_INFO ("registering test control as %s", name); /* this avoids that we learn a key again */ if (!(control = btic_device_get_control_by_id (BTIC_DEVICE (self), self->priv->learn_key))) { control = BTIC_CONTROL (btic_abs_range_control_new (BTIC_DEVICE (self), name, self->priv->learn_key, 0, 255, 0)); self->priv->learn_key++; } return (control); } static void btic_test_device_interface_init (gpointer const g_iface, gpointer const iface_data) { BtIcLearnInterface *iface = (BtIcLearnInterface *) g_iface; iface->learn_start = btic_test_device_learn_start; iface->learn_stop = btic_test_device_learn_stop; iface->register_learned_control = btic_test_device_register_learned_control; } //-- wrapper //-- class internals static void btic_test_device_dispose (GObject * const object) { const BtIcTestDevice *const self = BTIC_TEST_DEVICE (object); return_if_disposed (); self->priv->dispose_has_run = TRUE; GST_DEBUG ("!!!! self: %" G_OBJECT_REF_COUNT_FMT, G_OBJECT_LOG_REF_COUNT (self)); btic_test_device_stop (self); GST_DEBUG (" chaining up"); G_OBJECT_CLASS (btic_test_device_parent_class)->dispose (object); GST_DEBUG (" done"); } static void btic_test_device_init (BtIcTestDevice * self) { self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, BTIC_TYPE_TEST_DEVICE, BtIcTestDevicePrivate); } static void btic_test_device_class_init (BtIcTestDeviceClass * const klass) { GObjectClass *const gobject_class = G_OBJECT_CLASS (klass); BtIcDeviceClass *const bticdevice_class = BTIC_DEVICE_CLASS (klass); g_type_class_add_private (klass, sizeof (BtIcTestDevicePrivate)); gobject_class->dispose = btic_test_device_dispose; bticdevice_class->start = btic_test_device_start; bticdevice_class->stop = btic_test_device_stop; } buzztrax-0.10.2/tests/songs/0000755042355400116100000000000012640736115016262 5ustar00ensoniceng00000000000000buzztrax-0.10.2/tests/songs/samples2.bzt0000644042355400116100000042546412144654412020546 0ustar00ensoniceng00000000000000PK9;+Psong.xmlUT HԗHUxdT=o0+eJiPH%n'bH,;4Cxݻ#-~$YuB&).xտz Y 0٧&. 5oH6i~~x[ yP5k @@cA6=C%W] /!N%g޷ږA{QoA,D0fi8HMC/hΨ)5M`>8jY %wӆ.;mG߫PK 9 wavetable/UT SHSHUxdPK97t!wavetable/Clap.wavUT SHSHUxd=WuO%AQ$HR$ IQA`B$s^6Tut.ϻ,luޱ}7IS۽:r\(Bv9!3^D"Q#YF gM][*B߽v}G}] ~۝܉-u.3zov< R'S,#-uf[}_Mc,r:;”/rƅ]l\.9MbuNri_%-|x#Mn4~>ljJfy+fge\ʭƱ $[2-|hE>鈺"lQ0JBߕj[EcՇee7}5gaYk:guhQ3]An]݂krWqv>R$m´ԇ~E y-_I+H멪T^f7sd;qoRns'3io%rr "κ8s,ys3񺣮Ttg*$0NwG+QGoˍRj4#ߐ<#uqq,zK_# YG6dH;v_`+Ubx7{{[) # uZG[b"o99f988:sɮ?@Ŏ kY c%6Y;{?-K5׼XD>~5_)"ߋz*k_,jezoVzgf-ZTL]z? e_ }'L,t7n|]/$Ew»$%,}GuOoԋTqTk=gnד92yPWoT8ܡh&%eNw׸ݿXί,sߺ}9GYu6~緍hʹ^{ܣTW.4;!j'7]wt?#9;~rU,uxPLHI%2:rsNW\ F_yo"E/ŕŨs'=U9@)qM$;G=ʹ~y#Ou4#\frיe1Dj gvVr\llB;ˆ5hoՠetwCs-r>˸ QIONwoϺZwtȵ#+9^p%앨uU*d#鍳e}Q:ҫ^;k{c!o:mԾTkkXUkK^dgϫyKyP9=\V>-wt5O WEp/Nձ9]5U^u s/ͮrf49}=f.x)Ð! ="hc}ijRDӊkG/{{{*~]:+1srG*'Z,?9;g;*R;;/:VL#1jz߫zV>IPorG?|-$HkzC{R@2Iy ݗ;'>weF spȍhÕ=<`s|Ε#Ŷ,8w,bMoF)nWヱY>Axўn?H}oRkޢK%r][_P1%N;'Oa_#NRՔ3Neۨ^=>kߥUki=%LJY)eUp-{Íkg޸mMO{MUg=:imb1UUB)6'd MgmB*Sbv>| LzhnȩNJ;[D^>PgLh'W^tKJt3]p!S>s9& 3(Hu9tW㐆AU砽 HM|5aM+ YLG1bǾ8"c& Ng{KZ٫#}Uc>GkJ&pQY+7hkaF9dtoqMw>6kkW}7899f+4%(Ӭ 2fUh͵&gؠ u7 fy/z˫ ٷR珮"wAqYe"9Z;66;Iad6Z^ogO)]o:C`D>Dhv]F^a49Wyj@-[^ [ݽ4vfc=[n砭}G]-"2e_?;-lwIdvωkY?Zxr/{ /|qG=bgDX9vH&T^H%+lY9j%6SNe+hTx;&IΔ*]tų/z;.wW\EfM.T~Li[ N+NxҾ}Iz]BtX|U/tl| iB&KuxǙS%foDV&EW[աw]\N߬qeOߺn[}vnK?J]n|$ u[j|nψXj-U,.hIE#Wѱ:'6+sŃ> Yo =MzÁ gn5itތ2YWwj*z{Ǚ;*zt(3 Y!K\\ ڦ՞(A'jXRZ_݌=Wo_7ZJb8Or5iFl9 U%$|mo^SϦUJ x1YD_75oUP wW */$ r(ǧeڵ[7K)sհk=6 w(!jچvꁠ' ^V5ۗk׮:(]6eDmX;-#׏߹w^w-.*~ûi G_utNV$HN.2sez!fpà)J\;t!lRzSҙ49.~v+ϝ>=T3ӮσrCΤa# *^FEgX9(-#W6A:X.85`m2\IgɵӇglI;=NZt=[`Q#"ʻk۳˥re%W^S?H wM r9 ^H*KR~]Ye?.^Pe?6Lys>w`fęoizmn^W)~[bB? +Fܺ{bǰ'Mݻ?gr?59 jDBJdrKT[#9P%jPhFp=s/ѷ3D΢AoR>:,dtĘqE#!R%4gtv co܍>hIJnzeϻWrlX")^nPfLɩł {GE~9)hУoYtĥIVFtʾ ^zwzp%qx4-Pڷka#~+(5xf[acH<z)"YE*|,bv8~7!XnL)3:}kJ4WY׳m%Cu$ې﬐C$d6w;B)DO%c*Ƕ="MǑІS:hsMri YCrGd,{= ute]=CseVh*DS?ڑX)bv}5ra䭨ÃgxCžyB&+fS <'7uMt7^'u@%{]> Öyy<2ar{>q sSS2.{BDِ#G m?bCtB!w8ӦRW1͝cv\)ROu,1957%:YY%<\u~ ZKR8[(:7]ECZFwI .t:|hpyQbntܛ0kVdOS칚5/}t֕ls"wq8B7>rՠr 6[+nP童nr3lghJ1FO o:@Ϸ9 rP{yG1z3)sLdS>3G]:GZ7!ۃXZ}NIVYj W?QnyiJd9H8\W? FN?{ĺ~!]p?rwTx^}[Lm}ʂIyғLd_iﰥRhp5Bsp?2, 'hO9'7vփYd]%7ZCKC?KJ~]Ւj:HI>Ygw:|'7vmq Y1l[ȅI?q]l푺]R/(!3'ONX9-}oG%RRY X_RR$I+^=Td@KPKid0)tq4s]xg5gU;!,Uȧ}#k%Yk2t.u2L}@KH74@RGj3V/i5g5:VS_մGN-,$ҩiζuOgg $Y֞Ζ::~ur. G&=6slA{Z=Ni_ެSXeaK+9rX.+ͥY5ug{Πl<6It|?Ρg']AkCufG;|ew'Si99Nd|ƂzHa4CާJ=4#ٔ8Jh<W6+T]R)y[{xzsAu R&<\%Ke߰HY"0Z,ɤ r'dO!6,)'ɱ Z`hke7wVm/0/IK2FSwR:+FHQcԈnfwhք]voBӞdcUK0X&(߀8z|Oʑd#M~$d)D0륽2ZemT}Y]~RP^];Sϻͻ[DR(Z-6/Q~-Mn<,xC"?'N@^̰v[MP%H-V{BL{KL~d1yxXix­t4@)wstr6snpwlvsu$rv!J9o/vLɝxUTi_ُ*GE iOic㘼^.'ool!iŵ'CV%͔ȵQR"yⴡjzR:S6bx6Z{WcAsvvqzĵܙhFJ)iAdVDkPҽy#_{{.zR<_}$緜rGyyoge2I]EwB ZP%/:~uTqut~\~91]QV*J[ ~JYSWA vwrUd_K鲜Lø:/99;ȩRsi݉b1 E*4G`zt6]dx4xؑ^;.hhm _mOnC_`SZu=-)}%eH*@>c(yvP+"A 3W=*=<=zvx*{W{+Q֍:Y:lyP"EHW/Lf)Z{vJ4FK,KH')d(U4HCp u}>ǎ -9DJQFd:KNjiZ$f}>{Q>(OB,ׄ6>J$]IKJ$%۹A%swC8}E9u5dܡ?M;H]:,v(4H%ortvqwn9'8Ae9B'?w5V_R˫rԣRV"vJ?JUt0XpRuO-. *ɦ,59Eje iT_ oȹ:iZLǒ&MZHm};;ͻAyZ} z _WH$XD4INՑnJw'dM+I~ZLz[/* 觴>M6/Wd "v| cڰ?WVwKLjIKJWY)FZNߢQt {T߾ %OKK^ڑKg0*✛/y3TNWiYmz"k!iGK7BbHv+ҟ$"` aXw"ۭV9BE> F{'{# ەJCsZ{u֐No Z>EЦRR.˅r9N*Oklɖ"v,Ǧ_ f8 g{Vy@ZvçV+iWiRZ [Z,NY mZT]UZ+CUwՃkKnOfC>SCm: &$#"+RU1p|BZGWp%+j.zB݌Kiӵ9֕Fd?>IoQi)H>-n!GY 묽\6ly{y ]=ЇoqՓ[KCɛo>-H[NU75gc!Ϧ,93~ KKO4VZIWNK?KOHGi5:b3 Ck~MF,qVV1Y Pk?Wڱ sh+tq~VD*)}(qk|{M ad'B]K R*gȏ;uZ.~a4p l/<PRCZP- = lwI?n]nt=CVz\{M58Ufh$f3?{48ck`U) /uG4.=.&g=܇aGkaKH)0Σl>N°s 9Q˱On$$mWLCh޻n{* e-YZFUe ;Em`_G<\)_mdi@z@9F<]Aўi@AC`pOkaNYm?ڳسh/k!7C^;(%@3KQQ˥RoDRJЩFAj,ƨrj M HvM~&j;:zΥm? [Ͼfؓ}sz0Eț{1dնT+?*x:M9F &qEM#RcbO]WS7Iqt6) e` +I AOwJUW*3)Ĵ)]TY-%oE$YvX8XXaMC~BKd [G~7]Hx4$w[0L`Ws [k +٪%j5c=E"LjA#'t(bCT:-RJ0Ot G>C>1BObeN % X`lt(b, }&k!bm |OyIFBk#Z"iqlx/ۆt>T1OHyT^ }ICf2i/j .kϲEl9 )hC}|yY{5^<<ɑh|99sC's9_)֫*'Ha*ϟg<9{*o+B+%e63 /zv #w۞$ˤ,9ot` J 7೦ö M1=MF?{0R3C(חoIK}!㼀}dqas5VTMDe^uD >.q$B(0RI rS9[Z_v$DП}>`:?xu%=ȫFd/knj+<};.c lΖ'D.o`m!)j`.t)\:5!oI_'akC{uzJUԮ\ +4Vtg)M{QxN_{o9bVS-i ӕ~@ҭxO3iT1Nn%K t-`ufc[һ󱧵'#yzf{4T.)h-'Gz }ZOg1S^Ol$#XItH:#F#v"AR%{ƳggwrO] o-[%I}ђd?ɋdUwȈ7$/ySaoKe56P^|dZL3-oc?Ž@,A*G _:>FT~Qn);ٯZim:V\ R+Cv9Yh9FZHzV(DLsG7XyZ`+)% i-ZYS0v Ev `ysxC(o:<9K;i'L{NFzHπj~t+bYpI5NuiGJC=NsP |Œ2rdB`;7WDgO+6\5| Ev!>hDߣisi*"-v%;eq j~rynm0߀/CSY={$7NR 2d- | mC!ZLK Cߥ `Xs?x٬ n[\ZѸs༥2t5x>ۓma51J庎νRNd G+]i4}ejO9LȳU^WS7Zf1RާGYШo`i E/t 8u4%Ep00 ,=Z+u&ʃY$HwqC)F&l^&-IWH Л_ٴ'"^GB#8enGAFp$ Bc&(ŕ Caz@JU `0,[rc ?7R"ݒJgLܩBB>[[cTZheD`I! T P6xpn6JI6;z89;w;;+;rdUvROڏ>֨J/Po'$P:@~D$QZ+U@&B3,)dY.&}<'N\ rfZ46s4Čavh.9I^h% 5DkiPD'u<$Re(Pj lfV-jJr]IUJaEՓ5U :=Vurt{R!#{>./xrX|͖BʪzQ5~َa71LJɆ] &7~DFvA䲎X`{\0 Y-v v5{6> R 8Z)l0CЊWh}cit^v#}[Ңt!20`vRX<6(=V+tb%l/0(<_!AL9u"⁡eVnk7yU;X ˪!&7dQ k+"6 қ9'Mz=D*.f3VLKS~TWqz8s@O]qAK fH7 fDYɪbU`A  <`4xA?'P o1@>}1k_h˵X5| {_ [ώ _fѸk uҚ.<'T-5iv6w994Ʃ ʁ#Oˆ,c7Ho%YMv ޼FV# ^Oi*,l#S+?mc1o*xL%Hݤju 8rmļXJxߡshOc(V $-f iJ!fxjve2U k;n"I!4~x%P# d C:6ndYWѼ`*Psⰲq)J]`=%0gt"9fM !N`1,UDd35\0,Uӄgwvʂ޶ >mo3 M]EC% 6`a<20,I _ cD'#^ pmJ2(2O 28̧?0g >=X [cE!Fk;;K ȓˆ>`90vV1]2+bć4d0:͢ ,S$wЭЫ.ϑE؉Yopp2Rt^ /ރJh":~JmvGt?T WKbwj;9]yπx^JGl \hu ^0\ z ^oB"ZmFDX vZ̠{HwU%sH1:1]|3؞ ou.޽ȚZ˰ +~x0tRdcp3ñװ *c-/\`dY|WS42|yt u|񝣗#G&"" ZnP{uIi< Tf ǪϨէЀs#VDDb3iGg34xT^d}|+V NƩjjJ("T@l<֝j@VyvB;J4*SiPpD #>Ѳj-E4V(_(;IQ#zwiDa 0֐H HGG}GI?"I1"ZqР:D->Rm*~3GmtyD .{&]Ihw%(=ŽDz/ 9C[Vg˗]F8x7hW{Q{1'%a;K+JaYD:\DJ1!EX io"aVz.dtuЕ z,]gJ{IHa ZV*jUh^5S- $쫬N{xsU W 4U)n} ڄmlC2*uVqkLoMukҵC`&ׁO^_f.`oWX">ؕ[Kj!ao#ث-*h3|]hN5&^R*.͇,+\P6_yvX= 0X@덹%!r =h}J!j%M'?AJyY$bxE' X[ے`\^0ٽtb=WY? Eb'F_}#eh0&'5BlU >x?X[J@ڈ `oBm]ī'ElMJ˦Ach]itO$%?#K/RMi5=Rj"|X{uzYejm8EIgLhqQ1jD }=9Bx/Щ:>V/O 1v4Y"rZD6, f&T0`^g6b9§b?cg΅وz}O ;f߆o-6T;x}#.cߜJ*F㩤]F3@i4UzCj*eӟK&XGsX2`Kgm0D%XnD4ɂ7#Zx`D$D7!X*0-XX7G`{$38 p*KÞ߀,z{Qk4'σ[L f .!}B =,+ Dcc؟ m1,G֟[ތ5 t "Fd5a jZO5}LXxCemL_<ٔwJ?K]9)YʐnIw὎ӗXqG۶W+m?xWzOx%wJ!-ZW yH-O;V;2.gcIr Ն>.@Wفvnզ9# }GҀE``3rzz`7IdS1`qX-UsvXB|D³MF z: 0<~H75lQk?mNc=TDrrE\\U{gேM'*"8-Q߸sb_CHx T<m$l,8%~M~u-w7?Vܹ t 啬rw_T+h鰺Z]nB4&bq`M/:CgC{{R)pާto1аn\B.s8DXM -8]kN;knؕL#` XX$![xhp `[OZ(pix:pqCc4M f @OC>1RU'!`KI9t{vx$Q >/;##Z A0|eH[ W+ńiԜІ.,-E~c7E-at b9K}8}fqdB\4\#GS~L0xO:a.5K[~ MAܖm#79ˌ\DĴZ Q2i:6 2wyDi;iDvCƲ"m&ݦh~1]Vw}8-]C b4  ރlKcUE)>qNt+џ`?Y}5U uIq~^P+jad!׏.\HYvª'L [x }8Xipy&ЃS!y>}E/ #H4=`M{H |}4\.n#C5(8p`_xŻ J?A7 ׅy8e(I=Oj[D-E`vAWBWjFg_bgK?:  q<9 %vFF^l> _? +{oW (ƽLI'\ B 8|XD_Wxί`ޕ.L3|ZüLZ~V VvS d PnQxδ0uiEg5V"woLNjK?a6hZu/Xwu R1v]څt)v&F1,+\[l @:l0‰;F7.vK3|BCR1uei-Wq4|0fh V /4Dؘz)hH]~  f ,B6َ=X۱1(DS{1{l~6`kU՞Y6قW4 q}HN)?)_"d^u^y4 27u "cw@75ϫcw~h4NZT#H.RtހE23-^"&j{ _s m<*-Im7"pZ'w#7A0neD  !.; hE}-;IAU8<6N?OIWc_싘2bx!ZL ϻ1T1`+Ka=%voX4`[Idh˰}4*J{0ѩ8mhlb19V+N[ Cfo^=M"%p'X`aG IvvL"^7w+rRfq/d^9#DK:4uMš`ay?`1pk0!Y30 a+|·u|C} 6}ŒXr KİB$oeGX Ĕî k/1o4L"Ft&xD]d{9;xDijE~Js=|tD(M(H&tKқ`Z35D]}He 'z hh< (LI`s/h{C{ ]x,9 6A(o;wn~g']i`oA*y_1YZy!VQ4N?vA{iUt B[G5UUo>ӎje O'Nvz:a^Aҕj*c mm/AVBI*m >>^'wd 0yQyp@hSɥ0(h½ tOi2 i ,$~+:6Ǝ?:pvfeM/'*d%XYpƸtLV x+F |HNC0bS&=^3v-y8@-q>?>ŽbЉx_-pOâ>%SI(ꂦSo"8 &/N@f?̅okZ(4=1L xayo~ARQpqdzq LHXa1z Ġ ·= V&c5LaOVM5K3.%|j]xKGBzvQqH1d )xXrppD}c!@؃h0?=s >d 87Xч`[Њ^ІhZ?^{:=O2;iF  >o'081hߘ XHE\ LσK ΃K%)բ̀e)Nvd3Rm6@ kk5| ]jOA~:I;'Q@ڸPփ Xx8 :h_~FkӾіgw/( ?&ON:Ңˁ4Ƽ dc57zq;k6pbg8#U3 .;boE#J{#_֕M1ҞUBWo@( z_%nS[m ve=D'}_C[l߇Հds`+VBL\Nbе гO1#M$Wx80qO⽜wUФ+ͱڴ$ >$`[u[@:֒ ^w9s/ZbEtr EtՊ#{3,= ZQF=O{jAaC+X,Uk8"3ޟ"ֈ cbo? \d: _tapk T,"1Kf,?\.| vԓ5 B  {%l~91}0pnRX׏+ Q @65aB>VX+=ujClelT#V}\U(Ai2D*BR;{ l W}yMa_@A` @LZM(OTRԤCB60Z1ͥ)j65YԒZ d^6Kxtg(tg08Nzޡ'2Ӣ+XR) D^k>Dc_8?7 ~~m,paagUGa^fz0xp*$812`1h15Q8Ɲ |z-XjEVV zvF.agC;AO&a?}\öijo,q»#Vz>c4X8{2,?z\s ܆%~2X^Xe4%*H9!ߕoRŤjY^@rXWk2d~;Hڝ~KЫ"RH(إXt7Á51bI3@Ƃ4{J0xCv}\"o+,g:B7_ގAl{uHR 96prY Ok[`HH4 PIx隣sm;C _O n9xf::;Z૚{6o4t.={b>;pnrZACJK +=u8<7lopCM w^rV ;oi0wRH }Bb^TBZ0/K4Tr%6n;Hb T(~<(\pRQwbm$ %BkH >0}@tVV02EǦKϤoӖ4 p(D؜ s8&E< y *o`mit/NzJc1;2M#JoN7nWk tj$f=_q~iȘ6X`3`#`y߁ Yxgᗦw:c #0o Plد@EFih위Y} akB5D6f/T=^܍mྣ!$t6 𓞈v%}SCS1^y-C`m @@k^@}/=i%a}s<=PxIWo yR3#<6G_͞<,Fv4tnnc{6 yp/j`S #.04j~%?|&q{}L?D4 eX&5tE-\6C/s܂8 (Pk/Ξ}U` 㰧k10N_UDǁ| Nht >-=#=4œDǓG{tOS`S;q4GACw .P _uȯ<\Rg݌[) tB`+" ~ثw`{S~/>J3;/8 puؚQzz;YZ:> _l?fNF#[ _!4szQMlJ@p{ݳ+Wq݁DOߚd_$c#!mXc~?XgHp7.p:MH}"v`5,.VSV-s[x]ca } 8O/C[y$[[/F#Vm;.zg.>T=BrTÞB,b=,WB0J4r_oVփiKNv?Όu;, #0)XRZ܏p4Md:|vm6E,4pڙE|BxjXşCkqŁvDo{cCw ?s֮ ViS# ʐa.NV bՅ9Y ].س/{,d dOGq{KH 7a`g=@y=+:;xVg;͸G!@SBʜzztZb^'53$[ +V.&|K8[ڀzo2j3h%W0`3hZ (]]^*ƪzA?ag@gq{5:` @c?S` @wjyw%?bAfIxod!إP6?yx`&?O3'aQ1?M;y ghTc{x7܂ẽu|Q XWH*Bw{pYK 'Krg4 ^rN L`:/bEc'NNq;ŴW*A GF<‹)?Wq!3w} yw?]G 4Fe!L2g0W`ۼXP+wߍbK'h](I.n+۰o'nj@XZ?x@B"pR-ݝ@ 0Xu|'vy vnX1x.o8 _~/an!u{k;y v20>ء?!1ЪFw^J4azÂb+끑BO5ՄN"[y3{ENh f c>uE/ֻG`>Ӂ`1ϩ_;R/@`#ij~/Zkw>tchnwȓA,`RK R%¸63+Du|y.HS'n.qeG G`o!e~8םwfCNOS+cΥ`%aU!͎Ev,S`Ͻfܸ_) &;sqSeco9n-R-ܐyH t B/jk ؁KXiCX*hOn/$@bM \`k>Z#a}:̻D2-@9K\\rXq 0O5XD3ЎOW``j+x6w9 ѯku,0}&ld4:;U߄+ ?w~ oqZ a%vo^Y^~s-DzIegD<0}iCݠ/@F\RD/ޕc)F,>_zcd ]mHMdcP 8+$2tp+N«`GqAS|,@T@_=wos6ޅUR~ c[G_@A#0視;X;1 Nj#L.9nw:ZZ ++(CKRqw!4vT%N׮#6|e*G-5RUYUחJq \oc\~ֳ%Ž~[XOXG%]@9[m[=,^wLJHTZK♮H> hZ{Y٪b a-]0]E"Kc'oayO#Q.,,HG1޿=DDz_A{~Tq/yo-j-+=vr}\ ^#"?fh.vb(zbE+ <\Ƿ _ jn3å1j[̘[BgAy^x{[70s%v$^#!WwVt7ϛC9'~+OVrCC:2Y%[tW s{m-CA"8< enR6`B,9w 9ݾdзۘQ6 \ys4Q9{EwIW0衛g{5xu.4[ɲ* We|W{zGp\0j.?Q+a7,ZHf.px&j'=v3o'vGe04ȅwdȄKyEw]vCZGijl] lh \GϬa޷1m\Jueb\LcJe$GËFOlOOkvsJ@OBbmEWE{ )ȃ*CDi :#_ ?ጭv%/k>' ):>5S?yL]kYrX>/y:pC|>w_i]"Q0L[N3mNSBLj90Ѭ"xWşHc?`Dy.Ex7E-3w1!G?)zgSB s+L!xeW(rĺa:C$,( {x = yDm"OR^E05.ܳ%DMH5re r=Y]&B4JA `=O`Ox'r:H%}.Ggu ^%Qu*wd)@%7 |d]ggL- 0t~<ZJ;"(CU1UUb1ep]rũܗ;7WMè {ub^iD)v#ν])>ُ;Ya{cw]X$*+`]kEVxmi/Rr6ȫ;ELW}Nx>+YbacaPI,ĉ N-@5D9h+B D'c0BW5=v>v} Q~QHu{GQ.)tV\TxGrn~b;q`M9OA.O kc֕|ConX?)a\*3( b:^C-N.hI )Kބ]ڂ4x.~,wI8f3Jx 1L%34$QO"&BN  \:b\z#}˜wF:N(`.pp<`]ܯ~9E/5G`gS'`ű"TC ?9XK_=~f~p?a=9g3/ <r {g~8q4byAEʟ!c?D͹5/VF| ms^7c<ϭ a"p@?g O0 xm2~.>AϊlL79yM"'_)CU0"'M`9N5R8&n,Z,β.-iz3H9UœUCaGsAJ<_ 6$ػ /* q :,P 1Prÿ'C s`٢>~ >a;e,j{/QjoL<KTUhke -tDߐOs߂uK`q9L!lzz:F f8?}+hy |ŹI-/ޮ^D-:CzbɈƖ":;+~\Ḟݾ <b2Z |RāuA׍vdf`E&3{ D;QA6;sׅtB/K })Db5X-qNԎ3S W'4ۈWw0e ;yk?\!@/YUG+pt< n.҄`ۋ:ˉIi%rGfB+XIЗ"9 r,7Ӳg,[8`ejo/% 0vt=);QBa=D֠J_-?H6 4=\hSS8AĴiL\ ,q (,bL}V]I&#we#!Z/oW\i.HW x|?J0?G[O~6Hx'/%N5lm}CDVˌ(8{-2~NxW% dy. zN]7`cDp/J?UIqƫ'Ev򾎦͖"l *0 4 CD^YŸʼng7v;v 爾[E/8hqV:儔SJI qwM&b>Vtr]ҏ/:t.EOEdžO )He.^U8W{Մ&gÚ# >oC5|Ǿ= =EB~B3H<?!" g(66 ~kb;{JiF߼/c*NP0-DXp d9zfaha#c/0J&߁.{D&=)l3*rӒ/[z$y%N{gB"Y{ϑSyFd 3qr`?yβD_lHcDqPȮwqci"[t#nSy`Z?'Jy+kHHi?N]<WqܻE5϶,jN]7وBv:GG=Xfay皞~UF‡"xi1&J÷oOC9!j ;E0[:U(5 [./#yGs?g%soQ_3؟ {0TDvm{섵Xn͙e;&*<[U8,"+ؕ8!W%[Aڊ.»E#,@RF"t3XDխ!730%~*b"d,ȹ'NlF6>s}"WBy9Uip r MŬx&:dqވN`g4ېz2=!п"COuleH5XJ3zI;G 5x#M9=%43 bFsqu(,W4𓑸"DѧΣqa7īOD堟Iìxxil2u4zOs+e6WV{qF"p"4̑_1x(gze;}[F\t=m$2z:Kd7q7|Qdiy$F7túnk7{DE#4+4?S9~:Lfnyuxʷ2q_tkD]ua(M{ W H 8*"ųƉ="3pO4 /~a71A8_S䳖`?#rY(w&+r* HͳNhasG7VďEݫLy3(INm9?)$SY"kU1{rJN}q8 j9 5wE%,\B+P}p麱jO V;)gLt;hV0cTt% 膺$@<]}A`GZg.1C0N\"kE_}#Wd c(ѹTR0KnMaSܫ3߄XZB~k"(&RsZ\%l-#*Q~F(g**3h7EO,:;k FīTdcK̶,'|7yw=DH4x$+"kI2p^sSDɂ-ȹȷq4qVq֞?y[D+?ϫr5,t[j"ǯZȵ@K;V2v8S=vEm?!2+j坌~'!BIœ]HG%wnq.`pboȖgYsv(zEIy dɟMw4K5^wîU#mYTAφ,g_=] ݸQO}o"bP*aZ mYK=e9Qa87^ݩ,"8*q8jD'8utl`D`*x 60 A"4a _$4s"~w]{".l+nǟ~?EpQ+ s\fb7ĺnO4<)*.D~騨S (f_Oܧ|}/BU5!nH˱C?'{Uod+0"BmJ( (&*z6`Ef<!2 %D$Vۨ̔%c"Zb? kk<\X&cωmX_\.:Q:]uOix\xz^v`2O.v?^0L: ЎGpamq4BK.yQ!c&_ZmX.z6?`0TQ-$*=3! /E bT &_kvX ٮZ9iDGyS\b5{]'^uYwELcFE?#,1BҫѡF"[i/vGc=7ѝB*"v 6S\Tt"5רv9}qUѹ-*χgqD^:"ˢ`qW#TM4g|ǯ"b(O9d!#dOWRF(#Y&ٶjQcNzB 7l;{$ kbr1a%/Hkkn1"Ʀ"eHi OS:~ZBX.4a,>3y⤫اlMtO$Rrəٍg>l`M:(a7z$gf2 x߹sAq O^B;6:'rm MGz^&gOг9qVtWijZ3- ZqLw[ǒ7QGԣ%)+@3g5u) 0c(}K5jP?E/ElNRŕ,#_QK+bXSda: 0+j"-%|w9NJI0QWTPnyuxc^u.GDQ!o(LE: ]ō3A:bIj զwEeC/E` $hN&zw;FO7ddo1a<*Pu?U訊L[tJqG;}[ﻆM5Y=0G1SnT$,]aLHizW.nW,owR/Fd~MNL?*z=;JMY'aYG̤Z"?m$*]:4?cC]谐#C&kAw4UώyC6f*'Em?.Ӱ+:O;(rfOQc}Idg"Oz+z<2Q#$HiLdpX# (d荞ӫ^Ra\(\p?C΁ [F2nC}uQ2.k*O&g7tFg2$ґ1Ye7{ ^5ēdэ0R3:cpz LO4wo|!2,^V0"SDgxJ]3-zQQ[n& ;*/z RELabm1FR$X&YĄ:6FbOcY+%h͜#@1؟Gp."z#DVEK&bhHē=qSz25||OoOn4jz'g8G_!\D;^d=^l={cBG  ?Ɍں`SE Q1광yP+8@4^#k0>-Эk`Oz֥O YgOfb5g+e<&Ihy%5f]t.g!\l3D B?cd, AE#^0Iė=-dyg2?ۈyN1ORAF74kHE 4[tE;gbMox[^;}^"ȭmVqUesu Ќ| \|\g&3I"^#W3H7xhXFϿ0gai FxTǐy(#TodĥcKQԊ=smW:";XWTΫ\7~7] G{qx')jdRU&*'2>DNJYT!U ׆N5132cI3;lTd $GiDJq3:.Gҫn"*x`w 4J}}Kڿ$4QOԗDI?h5fb <и"o =w 1835nUiSD>Юu#rۘEfna.-;ι ,~ƿ9NںM c^1"07ȾWF̢j in9;$]32gE9_/q\6"oCX A"W17%&ڒ_*cn.ee#',7qDO7tIǏCk%EmxED5׽(ϴ]} gJ9 +St\ڈ.WAƳCTDt Ƒ-vVB}tfr]kF?LKjx"E򘧾q٬6zU%{xU覎Q uISѩ?S?X*tMdJC1Ff5ꬥEM-jHqc22s'=j֛"I<;Zu?{/w։PQ u؜FՇYw2̍zaDtfYјnY`I9=g)ﺙJUL)R 1!FF+lX`bdˈ&XF5SD^Ȕyaŧf3 Yo=X>?O^cTqfSo0fTgI(H4s:e$X{ؗ 'Rm2<3biEgӸ[I5q"Vْ="b-S D1|r0-V5_ѕUKu;d1im_͊MY(v_dؐY 2v>0gc O4~=OKu?lffM 8:UlGI>5yУbمb('\dY(11m2-,Ǘ9L7(݆-K4LMMA`!#K9YR]{d3s3#Lhlm.# ;k\\1(CV|^/mV^Xo3foC$؋YH=2t(3.^eFr*n9֛wWlB.9Ɍzj7ퟃsr6?Ŕs->oD}`Z!_5Cvǯ/2nڬ5P#WiyP#0_>ڻC%[ªoFt*҆mi?I1VmNn[_=A+~: i>k,ÊL].Wè6(>9jVŽ9>["X9ė{m]Imvwt,%vomz?,Z%f\jHb_sjg2mY>],Ō7|1؇ze։L#,̈bL/R123V.3N1c-md_.ޯfص׏I9fsط̜W 3i;o&|R2( ݉#}CMB^R#Y?foy'3uqZVgLvˠTi>^|7;_,uA+2|Ç7\a,X9LoeM e&,:T39FGe4Q 'U}dL|q0R_OHxP\.{|F Ќ}$w%b1>d,Fnz7=eC.jY:Z.O܋u0a+ҦEYמm=f :̸MpQ0A1;idڬML_iYLDeg?Xk[gh8Xm괙D򓻕zsY}C\ʟј{cˈ$|j=q6K !$r~>ڗ>)xm󤌙)7r6_I3 q۽%3ȴ!5M?另!N:QͼMMs631ey;=}qE/ ~h6i[H-zӖLT3r{V;Y|YISo<,&i &745DgGVO:fOӣ*MSU_36V^bMS"l&^f4s 6?i^l4Aa [uzB I2db6Ȭf99 lV nX7- 2+nb7>ӇYڪ0+CcX XÌMYi6>X1!*rxJvګ݃U챕yܬU2{ xg<9un&67u;ڗ !MmSy$[,`FN[}5zzUgfeWӬWi +dB`bJS:d6\)S̖\a/3fْ3}j`$٬-fmvV|ڑqBz^Z@oq|K|&YLY/WtdwX̮Y{iz~+vQM ^ZU\;9mwf-KOm5eF^Hş~n +_ Hbq@YG O'm$[W91yVs-Eeڭ3%f]r?mü8u̅r&G2!bT<63Pfc!1FBgfA3M]fg2#8̄<6rodɖE#F@O϶>owʹ06ٞy5ggZkVWS(dq1sVٺ,L )!bRe 7}1i Ӳgײ|d^̞MsfGu٘ӆZ^6c{R+d`UhoEtس9*5[?oovѪXi2fLle#2Sj=gzZx~̪Zb'hգ_¿e-'ɏ&Xak&˰o1˪]]eq& k"f'=|Ũ3rLVCXTD7M+p>&d5w6TǷ*;ϰ 90?CkB͇ass`vvb#u+kD{7@Zm`uYXO?w֙Cq[(eJaĪ䟝1xz6yO;7l~p{l_mv(~XlG2KNovX߇+-IvϞ 6~kg\ŴtaS2_68Z~6aysڄH~nÄ:Y^쟡G t&oߊՉ?޿޿.l;}Ă!0`Ձsmh4gm?9a}d̷пl-B3]󒼶`!^@$՟ YdFZhhe>`>:lV2b:͚-ⳤ"SK֖L=itۭ.W+of`X9:>v=d~?gV^ǟڟ8@ vK c<;Znz٘8e[ka%lwW [g&y.gُƭl$iBUSz>dɘ,ÎCy{cc٭6Vҳj3lZ_x^;O,٥Yku΂P!o90gNi`V9v䌁l-E~~<0i{0@v_w_.}10؁g%$`;c{}Z>#}3+ӂY=̳;/2?s\;[aEV"5=Ȕ-lҋ]c^gr&앶?9':ݿ}wϰ[z.j:ny{!o5S Bg]&??mi5ʿnYqALݰ]&+^_c5ӝOdj[^?KnvܯjzrqVȲ@h+ k?qG~΋f Fޏ;oSmj ։5뷁osk,KUgK%F Z]>@Y<~I^W7 ,Oeh_IHd@ h~ݱi~ D?=koՁF~V15۹FLaye77dro`8r@λmt#kn|+vx- ljӾ3\-]gb׌2v) ; gheQZ-絔,:Qcgބw;k'.X3^~35z}-S$9'l󎚟3@WFؽO{>)0fȬ|U#˅aK?  %Î/=Cv('//g}{"@, {.o |"w4emB@~ߊky}o /1s^M1r YJӼK`ϺCOǞ/y* *~X/1+{u dN廲ky+a(gYSp\s0ϳ,om!Pyw,g) Lə,LGw\~os= ե\[kkT~dhG z38 2]y gu}mוڱ=R{7w]̳?9B{13++{XcG zm W-5*6=ϋʞ 0J_`v%[Y7 4NFL?8/z˼ xͽƾy˖_>}>=.쿲oP(y? ?ѼV?o-*ЎCZyݼ-yAVdO׺Y[ ܛ^p|CAgmu7=k-ڊPV >{diYU?VX[}|fZw2gQPFqB&\[s;JԎ:N, _#=>WI5 t*(O,gxdҮ׊P~myb$b-̾2. +o|mmYYkT03k#+y%w.r/86|/_Y1hGo?mXwV?[ n<Ӳ@(hU;Ss~Z=k <v;k}wm M3y-No:E2e߇vo_ Cl H7Y\ik^Ry]RynRX(h?>/7oEӹw$(ך5+hF&FAUYZU+t_{<.n|׍;?zܸg |[?lÚmWWQͣ iSyu?rIʼo4eD;05jZ| 7oz\'ǣI[ '0"wǭ坍07GoӿwIhcFTF-D!;>~gD)[;W[ Β?qnϋyO|叛?ϻ}dyV7Â'U?_۽Y~2x\\~?[U#y;s컟<Xc?w[5p -pnQ}q`}Ǎ_0Kl~~[{ˑ[_(#W?^5?}_WW3 ds2f (cnpe{9X;K]agݗAJ{@Z?z!F\P1VpT=JwҘρI>y6E$avCFΕWV`~$=_ZYmSk,IWE#@gϷ݋veۈzHeFEʺgd`:X;YGO~}}OR8mf^W_˲1Y]SB"[tD~?\ -G[B<ӂiV[U}e̎-DZ^gJeD rW飙%#љ{gt{R'\C]}h#;OhQ 9pyxeׂ4R[3U|V/АT\Ztֈ+ wWEQO^_llףy(~ix߬\gz :kђlf{]hC2r^$stUTW?h?>ybEޞ ¬f w$N\ı5 Ń ItE~;nždc{l/5a~Dg;RX">(3Mߪٍ*)~)*񞢳X&՞ĂSѫD8Yv* <s$2h1R@J^e%}ڏ1vǞq2>c֡l?]<6heT۳XD*܂Kފzcַ]7xdΏjy_zG_ɏ}[mPH=}.Ϋe&g?ft > 4o?J_V+XFb)'+QmI=ugdB߉T鍂qoyVmƚyuպ7vsVݾXS7|j>Gѣcj1e|뫰owW놜Mx+'˕O?Ϊ\Ss|=Q!o]t8g&4[կ<6K+泌qWowDDZrgyWy֙:YiZGNǺm<M, U(U}__#k ufz4΃2fg4*͓3"sJ~,-Kd_fEez5%Gy6kg=R{~Xsg{$^Z&W7Y{%q hX g:ݿE{ɟa!"ـ[7O [[m#_OI<>LOל=8pʯټoWE>Z)4W^ͲuQ3yg6PM>.|sޯ᳅rU&yj_OlA402g[n}khO~Ὤ1ZѲi3d$߈:Srl=h2h1C%&ھ]A%c6|.=lYλlHb7za˵>Ƶ$E@u&e6U3v[ArƝeJ_!LG;1SG3mJ yF[.}m=Ȉs})Ex+-ƜGf{]cw峤 ْbL>/uRPv>gۓ9Eެ,5t0>os8k舌tMA"1rާ+9-!qݑ9$]gL񞿘QʙuCz2Qa-O9v'#^[{*WBo0T/mC"U5>r? ^{K^tB4ssIZ4@WҬo!j[伬e!/dL/mϚX=U=D 7o|+j;#1'.Ziku]xoW\qj ++z?/_>?<~Oܾ?o功?7?/{?PK9Ruf/uwavetable/BD%20Full.wavUT THTHUxd\Xd|R uwnun]PO3@m Crrrr{_'͛4O&42zRa HDIP 1;&=QX@\ $ =\+TV˺n:3iT˸ _Ǻ<#Cs2Q dX}m'>0!>15H92!F}vW-l|c m_7muCy?צ?77RefK-[l#ww׸~`|q>'7ZyfKM̺fu;{N"{/o ulb|eqъQ(!' Lcھz/\{:TJ*߾Ғ]jtfI-m״oqp'Η;2nEwޠntW]":ҭ˺;9vjJwnVZ,j_4V=ů޾uS+j~ }-y% /#U Jz87&B)6zSe]y0^7^^W^bu^w' {>PCQ,z j7\yz'}Bŭ^sז_rC{smNJ?ѓ[Ow?7x;m[q ~|s[ტ^|4s%eMn9[>H,)iNzy L:W]¡r*\Ucj7ˆh2f -VnۮIΩ]wcHϸz5W^M{UOuwۻw~iT7vަvm]h3ZjIXl\25(QOY{5JTo]R՘ʍ+կ.^h}]\N]jD\fZ bF@pErsg x~{&vzk2 n狝px"x㣎m>H#?P7|G-qV'<zg۟+zp/]ZtY{kW/]^Y۽Kѡ' 7|9;}X3} it$|nDBbfōJhV.T]Ԧ;ɗ,q%Y7mٿv2ŽTK.}[WWRUyZmF Zk4nkJhiziFtu|K.m>Ҟ{N9gٞzt~[n6ԥycv4َ/;\l?ŶSi+iͦ'ZmŘ滚47`[%uSvXJ5WQ@U(]\9J)UߺbQE{/+{.oN;/ij6%!WG^&cy*4!1VQQ[znR;*گL|'xAG6 B_pyإ\Нwˉ:6XcǮkw|dz8xbɞ\N;]LЙ gǜ;{. K.jM_uCqEݮy}xC }l/MC<_p5B~yA̰_V['nk 󋐅W{ =Usd8.T} 63Z,onVr{̭R&H_$=ZD/kBGдwT~=ݞ?M}QrOr7o]yFkf]}{J˷/Bݿvajϝzg|o:~SMNo84ugJrݹs wPR䥽[_^}r;ިpSv-k޹0n{OPa>x<Ӭ/|^V~u7uvy7=pSЃS>ƇJFzf) Ge=uMc] =(OV脸jMxpօ:9 vVc"k+F)ć6;Y]m9aRWZTqEU~5Vkf5u?ޙ'jKn:Z nY}w,i[vj:6ؾce:j:СCRmmWᶥiSIڷ:2EhfݬuәM6ܨxY 5k0~@=z}n]ǾNڇkE,QsRճ}ʓ*5T!ܕkL(ݱTŒn-gTю5/qvu4N= sw(J >i5ŲFzVW,俧^]z2N^>kvƓ4GZČ h~?yO}C2P}Hwm:}{o'/z!.;=nv G\y-W]\uw^tЋ\Xx 矟?q~ow>| .\`qk]:w峗_yseUk.qFvߚ"N5?O?jO]={6Ӌ/:k3o|Vࡠg~o+v+>|OĸQtT@v_~]1.MºnIϥNm斞"H¬ƊJ[&4B΋t`T&OKZt_H&Xif;SK.+]]sx[uq/g]\P"DL>[fsٙo^dEQJW+2jj#1fZگko߶˺֫[_UT =k4w;M:7MlG3I͋8ҢXM--;*Uzd뾭.:Vc[yݲk˄S[-4'OhڴysM]6LlPT7ѿ:^QK:57HަjtUWYS%J*J*N\J>,#/Y*dXKu.UvN^=WyvjZե8؏a&ٺUy{eM\Z/l+G! ز5YS/Ϊ2ZIs8v6z/BS>=9qCcޏ 8ݜyUK-_}~Y*Og?yG/{s{][_#vۯnM}7 Fԍ{^o~z+ZkNW@/_=tuՍW_݄G޾v^ &}oߛ}#Z<:c}O=MxYO}waouo׾8(8h{%\xc!u>4sPe腰q_JGohɏ:5 2jX_eŭ6atEұ'XL6mx:>7zfǬrk!rN}^UCki{]zSղdw Oȏ&JIkˊYZZ[1Vց6l͵ޱfN8.\uv/xkD EEz.Z߇[loU,CŻQrX)G.{lr V/]iJ[*Ur**KT;VZ\cp̈́kikMMמWG]glݯu{{QAS,jڠ]Ó -jQƓ_k4dXM.4y$ ݄mB67 or&#oP㮍uv4i lPPz꽨۰ R;댮QU5j.^g;JWTUWePT>PɢVVYZs(,UvJK/պӒMK>*ѬD@o5{[w~s>꼋z-2OKOݲ\pL8rT(ܱh;Nfmk=ꡥ @YI id8K^tTH{ %޼sjK$؊D,+ݭyP٩*;+fܙq$xڡ})ے%-L0%~Bct'rp_ zO)!!? ^{uPi7 uxM떯Ͼrz5e!/Ÿw}Yg/vydޏo>xaiv^;nE* &T4 ΋;l;4SN;w\8߱#CqSN;^wYqww|,tw}qޫs}=r>**O=>?</,֯?Ff[w <X+vP߷Kppp׏tmBK eBxdx눫#ȁQF'DϏqk)q[&IO|"MR)1)S#S{Kk~%7c[}LA@yEE1%TuPUWkkuqh]W9݈bՉK?ylD=xV#0lxKBEJK Cֽmmη+gaѡP6NZM\]ֹVq6Gw,^n\Y ޓ }^w~?⻊{V±꒼RKZ:t2+,Und7媖]WaD7*W\1bJ+YVYQe*<]uzU=MgqV1ƉjnQӻ֐Zj*W{Rk{\gEuW?a73N:ѵ7n\;֟*z[stMI}5׸_mW:jjU*VG;T|\a嫖ZF e˕=QDå}J.UԡK+Q5k޷oJŨb+}\|Qw;"Ëh ,SW8N=ZxDOqWw ps]ѹJZPa~]mG6l@[-XX(*{+m/}+i%y#&$.z/.LL2F^a>8ul@>#oٮgf GStt)qTHWu/;U+eY.T1YU#kg6sƙt*S)˒&$Mܓ?4XA1WFmQF=} Og?5j SקOO'YOD>@D"ŸD=~$IS~O+ nPװEaaR5|g4bb#EFU>-s')vlX37?.8\ &%J'߫/QចOf w(rHK_k]\mQw1>|Z[_,XQߡ}|;W|H#œ*1ā%?^yNjXa]nWP!][EߊحbkEL +0B ++/ʧ;]nt9ro-[lbeڔI)tJ-PRN%3Kl.Qć㋋b}csh1=/iW$e ?Y3csYwpeCnϝ9t\hmFT9z9~tXb?Ѿ}Av|5ld]Us,,Y-vȪBH$M$1@TtFY4$7yxy69 H8F$D֏ f35xzݚdZ'mfEvR,U=:E#E|fV笸9N'33^LKM"O4:)-qLbRB]?u{g-c_t3:2jT*raCGK|$lɡEC?/\s§}z~$diHWW~ls['}aㇱ(}-x}^A Z4/hlP&AU|$At*0=0.0,08] >/_~AA.AE j.hPиA] z~.Ǽ_~_{|9~xA}780X 'd`Oc>]Djy/ˇ }62@{2%&d;KQDb9qH" #TқjO-nP7 o&/Ǘ  hpP$j!Z+ yψq It[6YPl1E!PT'QVܬY߳vbv-[]{vj;S;,px8ccB =/diSsOΡn.=\6sw+VmQ(7wKoGGvs.{{:x끗˳p o/|pza"͋+"_X{W{owmN,:T3g%> bu+6}b,|6;wi߇ _K"~ZoA~^}KKKKo!xzo~-JIb|o|,6Xb)8t>ѻEzXdiE ,ܲW_/{<=={L(}{9nevmv94JΉN:8 (THG(=8lkan]%Ylm6t)jf}zukhVsYyX[޳\g9Ȳ2~m$Fi}id3W%>,,\DӅUIÂA8#-ߒ׈'=VP)\Mv%=`bKa&3NЌn.A{Z;EXk}ٮ)P_RPU OU+UT ebV\]?{Eֵ̡Ι3dTM_0mX,hjԯ)SʦK|1G'qbbڄ ǗFT6.뒯UƮm9uqy:CCtP֨QQ'#D֏q4bZDˈt3û Qx_~)*SX@ɰasƅ kV-xX002,#4S UUTT~-jBSU3BCRCijh7@3޺9c`.OGw4Mg!w1$Ƒg#+V:0 Țdory|FfTU5G=)k^y^gL¯_? Kau`&JXJ XĊ*G?m%-%%t4EZV6NvZ$+g1E`zXmzm%nfܺ0T!66 mٞuke7]}K?[9;vAq>ǧYZ^hoDž :p4i]X'KhWOY{:G8 ]JpSxk=׾3\^r}j,nݞZ7; {Ou_y=<@L&=IwO`%UjLR0JK9*û MQORꂞ Q#jݠJUP4VMt_*rOSdtT _>DIv_%hi1 ²e˅'-?ZXumu*Jmiz!֬M3Q6+mNڼɴqnvva]mvٝ{no'ob~zSON: taQ{8q==xc#QȡPB u*4B ].ЧBiNNN%:MsZm7 I\չsPE9w99ٙvtpsKwQ.S]vS.\nwy%KDK G.w]r?\tpbt|yNO:Muj_j5*_(xqc=GkB^I7avٍ󷳵 =a;öm,CljX؄Y^j䠬?ZZb۪U1Y,YZZ[.֕ Q{=!$ER|NEřLo]&Q36lq.ۍ.Euv}FjνѕA&b aO'kPM! ##LU:PCY`ahʎWWׁ7wSl1'W# t"$X+8%x-H+OS[7_G\4ZNtE*"~6IPXRJ^2YEr].IHJIWJOIJR'YmY\n-aiQߢlW---lx-,Yαmy22RfUԪ&5j%*VAViVbk/JmZO^n}k(k˦MK6ml|XzVmbv,5{m޷`dyؕk`ͮivK6m..͎w/a_ž}{>/l-ggNE5whaX69q8:rxCCC (u`bGKGYGh2gmKb'8!g>i~}kraz]Wv(-cmٖlCli3ЦMCS;9(V۬&Z*au.Ygֲ2V?,YT(d.{);.[&.k%+%ܕ.6I$K)$I'IW'k=bq(Xt[tDJ4I[TTI.≒ƒ ;  ]@xA``A27@ow*xq=T/F@"NV'HM##DE‘P_@v2ەc%l:O'34BAW%z; ]vt.XwWwTJ7EOXWJgSjõ'kPiet{82kMzz$UR-Uǫ:ʩ$uj:Jebb^'._-$%:(GV,*+>D&/3$Lƒ>PIPQx>uӕiAi֧ME^7'Mz#u_ RKuM姦|Nyr9H攥)SFNi_{m(IHOLN~$^Kg%Oޝ=ykzhɋXX y>/~Z$y9XXGlOq(D9u-Z}'NNNJ'kI65hJ)5R꧴H dLԔ)R֧Bϥ@SSSRiSOjԚ`wcS礮Lݑz,zԐT xV6ƭrzAsӷ_L.(Q?ǒ2B2t3{fNܜy9}"PVuܙY;udz`|~=yPVSURlW\S|T(JQH%tUUQu@X[uEVk;G/_W"lj5^뫭m]ݤ=}fh:G]18zAͨub]N:3L%3Ƭa07L,e"lu5۟.b'6aX1J&jm~Xb.u@< >Y B9XB6"CEFu|OƒJR@|1s[S}Q j9:~=©,JsV.xY<(&(.+?Om#{ =|V+=aj6΋^DRqqq#T˳ 7dTRL@K2vuD!֓vN.ސJ㥬ll>QY,Ql,Z԰hmb"MG-nXbfAZYz[VllrdE-B[̂w*gU˪UVSYkuKVVuqߺuWcgUlk}louuZdccnSܦ"G6}llnesM76!6a6q66Vhkmd-k[ٶm}isۖl[#Zr&xm5kiko+U$|yv۬bߦ9aóI>.WNzkujU5+G+eyTˮ5,]-5,Ylk1ÂE ͔5 e'#ҥV*Bo ރM{Ȱ&{4~$-.p/A|OExyxxx<-CPFTqJB%or9lJ# :"xA\$ D'Ÿ!-;`/V\d[/V0oHS)˸1bFAGѯ1z#=Mi/ZB+tѺúuYѺ>r:'O ;] 6Ӗj5ǚӚɚn&FP}XL=Bݜ#Zj*WRVyFR9LPT+g+:9x1Rr<>Qֱ?FÛϲRfd<dїҧI_fWoׯ?'gkNp2dg4/cdd\mnc3b3L̢2ev -ܞy63.S oT4fVaYs6e̺1+=K*K"/>K$R!--%m)!&*],^>IRBf-󔕖Ր5M-1%]8`Y,U -l--,*XԶhf p88bZm,X\kEE܂Z:XzXYiȲe'˞-+.\mr3W,o[>|eeeeҒGVVVV>VV@ VXUYY5jl?[y*%;VjHxJYmY=",,-nYXg1TjcQՂ^wF:j D;Unxa6R7H& %9 Y.#"Il%Jqxxx*L,}=m U8CyQ&pꅅB ȨՂY1ւpPKlzʿǿ???߅UTI+ߒO3x1`sya~<; nm-AU7ؕF~ 8B%vdmҏ&D8O&VӈaDW̯rDξ;ngbC؎l[gI6@y99 ,c2u 3 ɤ/;z7M2pgRZvVf@E:j:.S}=ݭ]muגx+,MMM)85zzzZNQTQSMVuSUWtP]AReeERrWU:IA(Ac yf*r;9!OKxp6yIִY:f5˪U)xgc,dfefgFo3d˼y5bcp2dܚ1sM̕+2e.bax-ȜRcUw Gܟy(8Z'Oҁt4ep\ن0S%fTqLj,yg_Tv! u}yƦZV@Dq"|Xs#86B, V@%.fc0d"x.7Y"Q|r%j)*k" ʂrjfTj5*j'|DVWׄו7]Dó{k'plvZd @%,^N!?P@]~[R&L"ayQ]QQohLn(P)JiE"px@}SwP8qK$/IiIUI}I+I'I?Hx9eӒ%q N—ZJ I +HkJ#3+;+҇җPi4TbpQ.󑕒UUՓ5?;ɺF˦ʦʖVYnirqx]]Ļe8f9՗UędZ  =+#]-%GXZ^.9EI^Kn(:4IHI8X|W|LA"{Zpppp+(UYXTh+$)PSUf)k jJBA?Ŀ/4/=2#W8{{;<[:jo6JUB 龍HˣoO`Mn w}McS3GOpy<-'Sr\+gB+,v g$\YQhh tSe)(& +WlSQVT\T\WUƥrrr>$iRB9P2TuՎM¯vC'Q [ *C[fVmw@toU7w/pQ|9'x J j s k;GWod9+%&l$l'%*( m^ _Pg Xd'rU5uƉ+)ZE> : ނ>}ED Vࢇ #JHvIvHH6HHVI⨩q r%%h|*tPqgq#qEFLqoDw9:-!",j"1+$a J8C8LCBXCXB, UxA1T$#=uem<#O~/OkoůN|/%?]m-⍃kkΫëW_%1J"s!:jP>nΩVPQ RPW5SUUUScP6M`3X',Q#z>DiԋFD ,F,I'$;0/g˘1SOph D:<CH 3YlH$;=~0r\r9F'O#8);TũJT]<j,5ZJmQКTJKIxN<͟ג׍777wwwuvOΣPwȯ ΍OF~ZO&ZVtA?N`.t4u ~  tP*  [  GӅs* s«s(a0J(j" nRGP\VQMK_4X4B4F4Q4]4\"Z)Z'7[OtHtLtJtNtQtUtS /z$z~>EQhk Bs$_k S= yq~Vj~`R+Q}QeMd+pN@ -™±g$ k KB,A#< ]'.UOPI'pH:~ ?#Q{ॖg;NWya7 9NZbLP^/pS^B<U,Oݠ.PG9RTSQ@HՐ ,ER^3j-KJDL#/d0 Y{ed'6v-\Lv";vma+3W֎,ѢO;)\aNCv2ATf,֋*,Sqb,2dJ0O_gۃy)=G][alSvCwRKZ7GZW*F}=5\ EL[M[\iU8Mfffff+S㠑h\_}@ 9qP`bSuCu=Geuu9uu)h~qbpEވ"j/SvK!oU1~8,Zk7-qNAOzzzz=I=.Gע Y0VAYQ'J5 I4GGS ~:FFlffZ6~x+SM r& .J >yjKjjhh>Lݤݧ= oPV%J\u~P<|*1?T:5|5Bet%ݙM'U U`(}> 3CrZGr4jZLCTW혮3 4fYl:̜d.2Q=g3j92b֖uceQc>ƲSP-bW`;+ٛ}05Ʋle)BLؠJ ‘jrl#X֗L"c>"\m!7/7\=Bp"h& % d5.~ًD"'3Vñ2gE>$_(2AQT!T*UlDoL͡n{P5_R/`*JųnUu-N.nACx^&O-^MC}[Gg{'ۏ/p0|>VPH.("(V  ttG8J0^0U0K0OH\Z^p?IP28y[p~ D&,$|Xh!:nD1𳴰"ZW $m+tO Ä#1Xh #&'!&15O zS Q%(oʍr(1EQZRAT'2|r2y\'TΏJg6|zݗH7=hOuI0]!6ݟٺ .ںrB:֦igۨhwiׁt:k[kjkh+hKhh]vZjɚXG;0{ffffLXP3d*?U3G8R3ndf0f^41AP5ǎ֌E;5g隙84c K\#Owg2tS,-*EU*5RݨЪq<0n=:]nRT8S4G}nsxxUyy Au}F&-[=;xxpQp|ɼ $BowWg(/ϯʯůoo/؞ߍߋp(\xyKUuMp{G'WwA3L*%X`j 6nOG U˃,U5u@zWWQ {TT%'J t8c?<ͯ{5Y)Qf*K]|AŐ!&<2q s`'rx Hb vDsQHDF8Vpc8&a~a?o\sv=w;< 63+je[>͝u$,%!n-n܁c; %`6plͱm(ӗj9S˸3v!%[4~M?;nQ{mPt1u֠{ ]՝vCIA_j*1{w\_#'?LPw6ڞ,ę#⼫@p:[۴;Чp=Gڳe5M-m \[\'\a$3^+*-%uRg TFWDj ^\ yn7F2^;iuF累g-{:J3hBT9+͔`ʃUᬲY՟@Ylˡ_A=a^1g*^i, .Vaև-Un̶b۳݌Ncɮ{q,{ `((`.8Ƈ# 2=Je15PI6 - Z_СhksӲF&p\;E5=^oP_0Y`ڤ5Yt>eJPdc%uo?r(4e r9f -P;OS-TOG <^< <-E5XK*5Khk&2䍁BOM̓^/7A}` ieU6<#SxWpxAOf$/rf<Oˣy,!D| G ӸYz#|S?,|f~Ep O (S_Q~m%B+|gY}HFAw#2ȴ׷:7W?~F SQӡHAu~C={p:1j5<8 c>SSͩZQ婒jFJѤT #ꝗP4y<يYYL#gRLSPA9G!kU2Y$]I'Ԓ[$J"KO@*Sab~ ty0;bV$*aCHb0c0C Ckgٓ]l5"ꙨMؑ}l' |Z[\E(ebݠ+dIV Icp-܀ert-Z z3'ӑi*[J3E7ƞ -z .} *xMoWҋ$@eGf#].I{9$tpA';⳺#- tK'f~OGF@{躃]tuthkhkEK] mkW .Zr oht78Co]_?9g(h2B7J7L~ME說usArԕ5uM}Q\i9E\-8GpJA`]F(Q)$U@`$`SExdN.t/z=MOI-XOo]9DDrP8Fř-WU>ӌitBmӇ_5 _5Y,cV2yTF7C^1`Hx&3jfHVYk:"lQǬVmlCdn @ɨ"ۗÁG;Yqa'[=fMq,~LΪYeY<-*Fg•͊~*꘏uzphMhn`ZA#$b*1 nm.'ȶ#.b?v8N.׈[=x E&BH+"Z$ έt0Y,I[k#ٍ 6n>q3%TsOdHHrR?,BUX*GUB֦ꡢoFځ|]P~j 5,BhPۭp~}P#3y xx!N1 n-LP`c$NӨL0R J2$',y6#X5KJʀyU"÷G4ikV浅 gӍ< UQ X8.r>#@^x.h5gWD?W^ z!VƳL\W8*d]˨atvSۨ J8IXj(tOxvjqk}b>!=d&*d$ '|A>;1~8F, N-fs~ G/MzpGeAI>8ERDB$ c_`x7G:u8JDF~ lAtZ`ŬS uabvaG3/,>c^|]ż=ne70<DQSb fl#hm؊lG1be@k2(O1/LjinT pocQ JׄG^)j]O8ghZ%?ЯG=&j z^AOCyGЃ~nt'=ݚnA7ѵjtu9E0%w;хF{ڎ-?$1BB&^wO#528|v%S{RՆtezQ aF28N8_܌fT@U^`>1_R9 F0 :Iwe bi%l r&[6jƶDu;Ɏa#@6].cWkᾶ p:ɞa/m̊aOQbј=pc Q y2 a_L&f%0ˠ?Qh l3F $8ԦَmX Dݺ¹d=eJ$B)/zJDp-IgνBU'kCp79.n$9]|H\ ۋ(<+ mQ j~!x2L%3?%CRRPІ:S'U* KC+Rfp!Z݊j>vA91 V&#‡̠fRrsZs3|;]vQ{𔇨`18xzD= ws^Wopqq ޥ!C#ȋYt~Πg&5"M4 T@;*SkPUd*BbØ&lcL17G+}'F>'Wpq|LN0 $.wn B|P"ݐ#,ᤄ$$HFeOD C}@%YxLf'Yˬ,f*3 e2.L;&k3՘Lh10hWj O'dit 7П/~{xqN6Xx }H_FG@P}`nz;#'sܯ0c8b7b{~x-pg:$Hr}8\@.gWп-%.>D?E<_z^ \a03H( (dE:Ii%HDC22bTV7Ɖq 3>S dTc\)F-ǧQp'FcYَd?s9:Cz{ƭsϬR9 K\ț`UYHUMY#Vmshȫ!FI!Sgq\+5M6dv?{y~~u5̃p`9~rh+Q,\R*Q`5*G<3̋|1+KrO*ά16N>%^ZDoCFM &v %XH,&@UkX$BG7*|{ } -J&Q? GAP-rɢPˑj@*oڵ!ہw] ^?r89 ԛBN#gɹBTKjMPp'vt xSy5y q>| ~AR#'ɏPda$t<N#Z@䘩kIIP)=E(R<EmA Zxp4ErE D)DiDY X[>OTӿ`RTI8.vЪ;h-eE>EՠYId%|+~q9:Ƒi7#JNstwwtj!YSU"Y,E'}Px.P-iEH*=.Jj'>E- N)0Q7rua ǩ=ȿmVdFjs1trurdb,ry15[/dy'=.X+9g=*E ?F~&Y椞e_0GCl%fEo70iPfSm?.v;ǵ P_[ }Xv6KZ([-z=r\>Nvzf5'Tt!3Mb `vk41 u5*Lex r bi$S\EfpQn;^\ feƅ{ў\xU}8ŸzP=)ACG+*w50S WQε.>ilɴe;ݘp}I1:C}G`0Q#LMgf01 N+0똍OPSt9ɜ= G}w>N* e~IF7_#PX)*?rCUS$S匜NՃoqJ:rNG> 9q&αjh]:k5zv#ٺ k7a({}_;nBg& Y'X1LTM:1FkT9ab6zbN!|@3?8V(UתVnрhy,l'kzlCQǎ"IkmM6n[.@9v M!:g\ tK¡cг$蚞t*ͱ@,;;+b^)|ՠo [m:] z}`xaPp $zJN~)@ E h Jx=7ג P vz% MGGAi.΂! EKWȫ\ƅg.bQgASh<\{pn=6Wk^fS94c1ňtԎsʜs*Ib3v6{sjPeO#NlG zFVlfl`BAVp|[]}1qGB[w#ZAs\EߥX?;1*(f, a璙8+\$3 >b \a.ݝB bwۡ۠ӛk5UP?XX ]_"Bf3wC3ܜ?A7?hc!"%e9W V"V7'}b=z vfEڍBϜ q$4FF2\5sq4zq{{1|'~/'S F=cF\k ʝ#U-Z<Ǩjl MTaہRQtG.8epTr85T3@YȤsZ N5!v.~cQ= g!s+W+#c]/7;Ts0p;D`izcu~UѰ( D fdF[ԑc0;0Q,i%1ke1+kjrNgkƱ5g[g#MOA0ny[6BoBwC@6p};xP3.AӮt;P9A^o@ /czP+@$C3S4TPPd@B$R kx{ tٍև7(C)(/((Q ^Σ*T:=G낤p) 96h$ \1D.CN98-k[}=p~UXTQi) jq~c$(x&Y5%M}S4F?Hwڞ9=s M rlڎ Ȉը|VYfPQ!fr|C8dhjPw}Dw\]vDSdpCdr=j8vUFG֗ܗ/7'+f#-fsLO1Ӳj@+GE'YJbQqdza~ \}(aM*[:zΕuڣⷂJ"h,>@}AȄ"IL"|_^✖Y7|})cd{s9X"H2faz'&(͹1 L'ifpfvSl`V[s,qM?nr~زVȶlߦ_l%Ԣ٪dOo9 >opp8M>S2˦"ju뉍и-zNo?T0w; rżݼoCI@O|> r4|xG d|F|?p_zRF" f <܌ǃ Pu}$A$MCzy@(PC"t\," 7 3??}7i< Y948sFYM:jPIh\~WzzQ16S ǤsNtN{wh;fZޟ\Mz.M6:qȉpNz2 p?/ToNݑQtrMϧVȻȿfVMNEv#Gk#j"c#s *!+ p*n$WOr=5 <#;-fޑ)1,Hdn1hQl ޥr-^g۫=1:Pn g%r8ʝ;Ĺ}vrیU38Z|hlSzM2n~PȞPlWmP7g.6Vj`28 P䲈2PR cq4ۗ-(Pt}x $ {s19f裘>|/׳\$SWTHѦ"^pU_>51Mu9?!cLj&#RoL_f8sztEwT'GܚKm4R*Oe3*QusUq꺑TwwwZ=6ZoP! D^O/ bH7ϭ]D?=]Dp0])S6a,WsNi9GEI<_һd34蘆 r %=:pTһȑ9\j0t^䠁PeЯDΖy׼9ϕK.g#8e9gsICgbc=e4K殞h_9p9ԩ_rȦg[0G7= 臞qO9=yr7>2G Fʝ^6}܊s&ۡu٬[ 4nxgpv9o7HiPԉ8QH.F@w!z@ћ{Bh>q+aax_^W.pz5緮fu3iПGA eW?+1'Jzܳazg!F!Fs1qF 8_p3r@㘴Rn}Oxl=rɜL;86^:{wOk~z:]tS68:jQ8_SReJO`.W?V(2 iΡWl/DL1,bz(fՍ|.9%0yAC0' NrIb9 e`oA:{vb5Z\-3db׆9j\3%(n<idX5$OvJLj9t Dj̹%qODeI5J.UTcSYU~&S d]6 *娞SYw.\9.'e͑K. nPbH0чX6Ų9_[Tq gze,@9%qdK" |"o&3\^IͺW8{xh䜞twN鮙NΚ﨑yzwЌ|cG@}l4vb=GC}ꩨ\COeRbI,6E4Er4,Ӓ~]f˹UwVpW"'Vr_jnNϖ!6pf@zm,E_:lұ*d2F2]!Msc##Տze)>pE6>q 3R*HH3@, kIFnpjW_Y0%0чi9?P@2ʄdcsBOle;Gfg\t0M϶BwŌoFգrJpqeMHWS*9kՍW. ˦^ה{Rלy-84k6POC=h`b2+ٕnw7Ҳ;ѽћ[c!rĀ́04qd}lC|'_L=cEۛܵӅ[3 8έvh#Ɵ =|=cf1N_Ǎ=IU̹8E.mF"z_d+Ft[rYt7F#a])/92"Lz6r 2`. ϫ>dΧ>dpT1\eS^#L2r@-ç62C- ,ׅAWF-f2̛SMYmٮ@8I昣s65gғS\3Pd+m\!GycT0!`e.l 2S.͢.oƕ9('oGr4-nʓUƯs(cCF ypYd.{. LI?Ź;gdP_T4Qan+e3Ռ?a2HlΉl:rWfR0+7ܼWyYK\e+;g6ԜKSd1+۲f`\Q]צW*M< :byQNe=sg`_f\H@}+NOX# M0QfaPvjU9 ?=̷_?Knͯ<5^S5g_qyi Èe;F!%mK&tNܧ- LˡR6rdpUB}Uʠidgp6 NaySz+;h~VM]Y#irqRq(g:3r(4yVr2Z7e/ ./ȽUMӕ\Ǘ]k?k|lF8ˆs=bxOK3@cldgn|6joF4dPvӟrے<#?17B~=/=_Q 7LF#:g.Ef'_ܑ)()ggBvUjR)*{a䒩ʥ!g_քXt|ƃ-e\Q&so3a?fF)L'þL+3CfSP:qfp5#s0Z5ӣͤ%sK6Uy:6WpVy~愕 5X^45.{OrWf{Qcy^☾/r^O`)Lerk@z0/̉w1aI3_o6G4ff`.&{6%M̫)q#13ӌfљ&sTf>.g:Ӭmdi!2ߴJ0'9GL8&ͭH )WTQ jPl/Қf<0ud|3?MWc3 =̔[GPF2/~]Ie4i/NugAtLk"6o'ye.r]pOni/gA~oӧLK,Ǩ[:-_LgfwJasØʜR[nO~^Ƿh޹iڗjNil4?{5+o_Z{̯)o[{3q-ǮkO^Pmc~sgw w|7=M cf{~1}`0c~/ j?ZG#WȕwWx\X,?˂Z}3 +yy^]4ۏcr{U01 Ε<ZP R17m%-tT9`JG,_[+DE5J^G l^PSoZ9g5{ M1^۾u~K g[+;b_!V]sdT0?$y׏RRo3gݷ\S-|_Pߺ}EgQ+H(u}kȼUȂfƂFg{1,<fz {-o/nߛ3 [^az_m%Fy {cZ7ɂz?Yu*3}wpo[0?6[M_oCZ mfZüDY۫;mz weηZd?9~~Mg:_]>\SjO~k}nzmyϟ ZqWH}l^.+دUfϷc3A|(X[wPv~n+y̵g3~?>}R =Jk$>?巷Vӊ= ]A~7_]˝-6roO43;#j?t`{5o.ƪi-=3C~V)?~ﯞ{o%{}5c߹g֤\:k5Wn;7|.Wߛߋߕyc13ϯJZ^W)G,r_ wLUyW mjoz~>;t?u6ӕ_{kgɻk=/x=5o=oK.17 [3}Zk9y^e+-;oo?"ƏTgʯ>Ww6g'޷:QA?:Ϯs>kޛ_*=i߾=ː? Zg{=]Tu?13WAiȿ׏zVSob {۷=_ɗ_~T.ΏIo{bַ5~\fXQ>{s{RgWW^{]ӯG۷yׯc=+sԅwnyug~jm6ʳݿoa>}描NɂYQp[|=:?їP綿7]U[6} ?xӲfuO7ד{Ǜfϵdz.wvkռcz޼M;6䈟;3pDZ *d섡 W+[{4nӔ_ vh$O˗\|2PK9I5]@wavetable/Crash%20Hi.wavUT THTHUxdct$]E/8c۶߱m۶m۶m۶'3LfoWJ*眽W'iݨ~Stݾ^acs`Qv0з^3C_On53{({u [{3aOP=0&BOtk kY|#Nqt@YK[k68 m!\9=Hd'9MfZˌ #wQgcH7H'X {eq-k`Kٜ3ӪG=w)ꦆ݌W? &g H}SfV14UtsC/i#VBl_zjoLw3olC+AD inŝiUߩs/cP]TØg{_D<կߖkfJoiAfhTޑZ7YJ.G}U5qqПZy}Qy|!AV`r ;%jn0X*VJV#Ǭ,  w|V;G%G h'8#X_5 d+Jy{xIXq02ux_C\?_AۂͶ%ϗ͕4hԝ,#X& ;S6߻)}}}H:hPz_&e׋ībv1!ab*y!æ9k̥,pJaq7WL4aC{HR$"y#<:m֣(O .w!8>v@.\ 0l>w'pj&IqR&Ϡd{41h]`62(O)ru- s>|'ԅBW)aWvY0:"Z|Q-Q{b^CD$8KcjDUH͝L잯0#v%^sk-BJNG()ur4Z"eY=IqW`lAg2"[%T4~> *R-^ߺzáo~P+FZuI 4_P ݹlgioJ\vPE?eR@p诹49[ܿ3$ߒ>y_'U i`w/pD\! q#^M#S"/FDD 9-_Įc#$/G.N]Vӊxr pgO|s\Mٙ@0GS/ nf;?6X˱0TMk{F?g/k%ygBdHƦt~ڗgErF?zX(DPpÛI߂RpOHUs.]%ChΒ|K̠x!d٨H?damgNٟfy7tnd9aK:GӮ~f}~xW }om)T|| 唞Dδ?fglQi'E i4.PBcgf_e p piwFD ibtntv$edS}6sUˤQM,ҞAGdžq.b9d푅;J tI-ͅ9RE]F wŋRF:mJE[QTʳ2iP냗 ؋(#^ޝџK}mGIy'͑OVe ޥ8H)ZPS({a.0@E=2h=ҽSO͌AOD.o:m h䐎 y}6+d6 8fݨLOlr*L Pb:2Zfqu7'k hqNyM#Z!!y]KulJ[X+(N^K32{sz#GD@%|#d`W<5~ej,Qx\_ږ(qjCs h?-}Eo(1 :+[Q'L¶:v~( a_Qqgg"{W 9cFZu6ɼ\dgZ5ʊqtAr0>G{ROf2):L%XQؿ>ĻB 4#XXd&Bl6Od;۾Ցd.|˟qvT:JV@;1܍8 [XByK+]қJ8?m6ߊ-|&t#U\^ g!R<%bs5^8beTr)\^Sޭ Z^؊ۻ$Ako=Ҋi ГL ]sҗٮD-!?`n$pnCݞ ڈ4bacHN8IDD_#YZOtCY5iaɿD5ghVV, Zxև;}9N[wG^[dLtwl'#op{GI>g$J.um)ZJo.'0ȋcЍG+;$͑Z喷߳h_`EDJ/MZHÎl&7ZeJ3IU;vDAoErB7Ử#B]VvGugg=jf+㉥Y"yN.ee!7㡨_sMH5 ̗wt.nE>K4ˊ F8G-u.EI?ݭRj>fO3$OU+q#Iz{-P93,,5.VE}Q)z̋|N=]gXZz良w"o^*vc}*)m:E zX3žRVF[uFċͱ{4n?l4X{97w5|*V fw;rQ4$?S1KQ=̫YM3\'(YՖ⸋^%hqÚnyexsRq)p %6EaA!ubh}T\(HNd2QL ˣif7"3Qi3[ƞ`Gɯ 3ofn2pVR!Z 1l(*9L)=lӫ"P[ց4P_uw=d5׌woGZ^q%ZG?C$y;V}bvLk\؜N:l[!jvTjU@RԥxӲwK9 ' 8)d 䍡j-0 1H98J%Ol6>XCTydad, fT vֆȹ7)õu@/60 Xk {!ڳI+ GGszmyAv2"=b9X %rOV>-,V<)ߏ#ʂy}um@˭MDĪ?,Jr*Ii\UX%jQxphq8hA52pO`:;g_.J߉_7a ᛅfo%*|&O#B3&fnFž*1t?t6MšpL-JI8~>#/{؞0B 1(mY7G"~jvcND!$+ G :3ǿ:i/ma <,CZzb"acZ VC߅IOc=Y k{N:~{7~]qtZ7_H<6ȨZrgmNxP[6_1[i{^Nn*ȣlN= $DZ[_ʳbXSOV^jkͿ0_lu <gR3i1w5m<4I1yu3䝒tW(*ٳ`4Zk1z/v[F˔IVdoy,ElwyӏR3?RwP vĽS%ߧ9& 3Lk #Vǽb0)nCDHKR{dxڃe_kz=^6[b?!a3Sw #If9PԫmVD%ɓX2;%z{LΑKM^.a<)<J^r:#e)4γ[{aw7p%($]gK҈+1@؞ƌ(%)YB'cQwzR5Gx W27ʳhnM}[tf[ԤAͭ,OǓV_P^lg/Tkcqs8Rti_dRc41j%\ʷ{פholP聮C?L[}=v-ӄ@ u rpW5BՉH|Z}!,Xf-7 Jӝ=}6׻#2O[>WqD4HIW#Lp~&hiV?@JNP q>-'Ooj5.TʹZBBHշ]N{t/+xOJ MN+jD꾘pNu¶_y8Mǻ|6c8[8X2k%8ѭ{rI73M?o1NW1@#4p_pg8VO8=.j6v2m1都=@!-]׸ɛc0Xքd#[dvWMyU;X_(-h)^U+\)Lq{4Db88PJD|Xך4Tfz Jf]sfc_+%Ji So9ʝkMY9U( .. [^)[|W_  Z­Or+΀a\v4rvSBǼnJF&IUj8l9W([xn,#15I+ǩ?NdT"FlD>E+1CD>R#ߕFLm&B2ЎlKȔ闤#1S{2cܳDY`Xx YjkZ?m3`SmBǴ$X[1$:5AsFq$ȈpntZX< I\vOԿ+ MlZN>W@su@aGy/z/5bTQ&6˫7A~rR{ʥz 5rgG#i"~_Gi".&SOPeT(6ށ0 ԑ4 ܢS Gxףj_D+ Z4KȅG⢴0z!SYp!xr|48-!DZ^B^^.6SgE{F%KL+3(yr A4c ^6 {S`8[8-ows|=fRN| +l$,? _+:*1=HM썃A$ Jj>\ 9޿${t\C9U,Lwa{,`W`J%MD@ͩ+eDVp *)ϔZO/N.ḡY܆ H`5c*,|]In ^G] ,8Ml3 u(Ui38cmԓ"s2z؝B>a߄ߔVx %ayS{Ûf͆}/Ŝ!]buLO6;P~Y,yq9y0119ʊVepn,W`;tUndaþ=Wt'%3*T4Qށ)~_aDX߰ϊzf 3޳;8'1-~zgEjYGV#s\4uodJ;4[:] CQcȨ HJ%~UY, dvǜTKH_j});E c`j HE<{ %`So K@'[|Zk46 8KzOMJaL5풧:ȢVQFVpUt*/&^t(BC;e\ ˽q-}bsg0͟ l @&W6„p0zхVH\2c[;i*L[vf=&iC[zsX߸t0K9Ňwl`}*_Rcz.)-Lʋ{ƌ@C'0M}c:{[] |ؘ^I)]z2ʸda: ?]a,1wo")4f7a6^ȣ /q8yi&F$IJZ*8,mg,yܐ& /n,'fi-.l>yEK~Pj,fgopu[ÅdgӼ8s!M&?kz^XÜ*eא]x+ri\P[1䂙8g Tmx=tqo/ w~2浜ree𒇠x~H{jLs6>*nRz{aKI2Ҳ"'J9G!KE'i++`eKʪ, RS3妮MyCq[_$zJ%͗BSUzZPŶK+gK<^g\OM^G( ? X[3_T&;Q|,LhI.XA9Mטo,϶$y6uCsB;n T[Z[i\2H<)L^SXM6Z4j>bUM c\s Cz3<&c5#ehg߭|O]`21|?BWvTATհUGGZx-CQOJ4>Lmn̪DOrKe?Eaƚ}oq/ /—wwyoD{mjId*iͬBm{n8" #9jogу E9fzGGhK=x6:J0,ߤP cJ 4?5S Lr_Q̄^9*Y^|ɏj{R dIgU9KeӝCfO!id{q%hcI#~/yE]q\G |B[!t=F*uŲ'ߣCO 7 6 vl񰌛`Fxt,뎯 yz2/ED\ RL8YDNyϤjy)8:奿5<ݻǟ͸gEJAEc;c`ggk`9y퟇;]tkVFYQkI>'5?'0owOCZUijF[Q&lVa1^y}]"% kuu 3 t8XquT۴> ͋B82+F4 V%.I] >X5$F 0)7hjSPyh&g<_uYL}i5Ӕ()p]{af,pfVM gy-eؐËyO<3'(?uf6aY_)39XV`T-On0V?NRzGzF"V\hbH$˷]ziD0>Ra"툟r=#6t6r,Ln ZHlh;-H+u2eL7 -rOp$>HZ+5Ds,L._pl7>Ӹo\T?5dOA*/v^l`xڞV`tؖ_Mz:'!8M`= IFo-e%}bzg^bWHXUD NHW c{k{X7M/Fqi9Izo/'ޗ>Y ET'`'k}+=m ޲Fua5XI_,Oץml}>8Qlm6"Ilh^ 3(%=,`4 .ve;* l_'9G`<,l?ߟ(t$X y3n5zmN* +*>J}7.fwͱ^)t: ޢBN2'T|riIC68r)bWyہkvHa#G ^!F14}Z﫴hwTnyo5Gh^'e^TLJeyp@W`?߶yt ~0^89әYsƗn$748R΃?58+“a5r9,2.(җes}3|nK=mUH"r> E7Hu׸ :|OZ~v ϡ38Hjt e"dQ;Ke-ElrqV X<5f.t78Z NGX0j6l$}jʼ:=X: 3KٴŜ4PBaMByEZNpu6pYץ#cuqG,XDhX _`r=c ?JI"40_Y b+?+f:.6';5hn9M$*h^ӵZE<Ɉ~ P'y,X{R ep}bwV9+$7Sp˞Ya[AyEZj2Ŗ}A/9ἠm(eq{qCyBzh?9xFæ;* NIWrUN|_G@)'C*][VH#]`0dMiJkԷwk[NrlE~vF}9@%UAa+e4?${Zۥ}JSjr/7Lp-p 3  B>j7a>%P!eưYֿ98YEJ{m`^h1(OZ.8j|׸$-SN G`-\ O|:g2rY(D#)'Y]qg9}MFXH Jn5քfN>wvF=BGrY# [jqrxO$I*1x-*DtL%i7xe+K)Nnfۭ,ve*奟 D؂3ƒ+_{'l RO`]jImEXEhj57+fkMeoJ AW\pT807Q]jik~!$šN'(t %myVXFFMsg;Z 7SԖct+;lO(GPO'K=;u<*㓵΁<0'f4 [;1 F)!xt}%bV=_V(;u]S2`2YlM[;q>)\FtPc aT_kǾHt9 5`S7٢׸x{&K' #rc4W]Uʲ 6-P]L97'ZȣW*Y|5@5iLYCn<(RGZW]t)q'8^OI;# ,-@6vK&y@Χ=ྴ5_pv ~PW(GӁW~ T3!FR/ :ض+cX$p)p3,赅}8Z;d_RX3]FqRtI4>3R^W]ߌmbL &<@7OMfD y8u=Q8m֤f<& (e3RL|5[Zc 7fKyo  /!cܱ= +y ̪t?sj.r>mT7҆B({eބ`B-BϤ{`"ڣQZ|pxIuvmp|ީi?2N^{=56J\d!S^Woq Dթ4%iI^TpeQiҗԦRԓɌ7V @{v|hK7v rE[ ,!"kPoyo45x mJ5&xɖ ӌ,Y'%ǃh#;: tv16i*ieEx)OzD!g G ^l΢14آhk ^AX焬P<cC>5Xk Vύp >'xU_)`Vh襸5Y\XO]AT*%%uiVpP$ JxB5=]@m<zO%MZ]mP`kVhf7Wv{:ifj +Řqr>t7iS x ڊ#y ~eGs18Vd'&#HU'Ʃ==3FT ] %*h(/¾z qe'0eʚ&pYA:x//uf 7ֿZmij`Rm;Fyne jWJ}3K(3df;UCPG~` U mQ䗭,C"EGOi]ŻPi[/.㴲Ƴb[_ቤ)E"_*(%m̀hf ՗ૹJg'9{0QE_<=f*u9A my"qSu-}}@,ށm4yg*F@b{e? KB9np>! \7iXII.HX}?6D~㔗vUX)47G~k1*KOv <-V31mB舰/Ff }$&t,o25)pAwKPR8B=6{lVhGyS1r{`9ei&!_"cTCTPl \f~A*c9u6X,VK/"Cs!݇H &K/2@Q_[q.Ffřyo7Ymy;r"Z&TZȜ6+H`af=@p+lX+~^|QWPZ7/h*%Zwc5$K5'wVBs0l)Kh\m6SI+);+ v Ifh%$;n-f:W:ҽ{hɢV0^08*6$GDЖ׬H_]\}x# 5t,Za/V_6VMN1aE8 &AFZ;XCz1F1p 983BI.'@Eb0B{)OqMT)>q4<pX/ 7,]!#bV eq8,l ɼ I j3A1 Gpqd`ż<"ffh 1_z@,4b9ϺAUg31Zˤu:+;܏.GmXfհMppB?-}+H6qKoEXi높2>u5_ B =xyy<^yF{h NVz/Fo4K,&]b ƚw4]ϠlZyIw&m2\lJ4QCnrJvobeTe*b_x&D8)?ANr"0KtM]z&J@nm.XO wtƴl@ âq p%;BjNYƜ_BllVX qc=\] xG#G^.F@)Gq68._'CNCJwb c)pl1T0<f h>#4\Zr:p i.gEހ?rz1X gLޘy-#.%3zbl \@=[KZ|xLEO uw՜gC{,VlVw8',M_®8pLXB ө/n@(̂RG64L8O9j-e? <Ym6 ?Y214ǰqoFR$^\n V|&laL %z,Ӌ[ , !Kxǁ(\"H] )$]!(CC<< fq! $j$ָb݄DJͧg; 6&pAzWhwHXdŬ/=< U#X%c,EnUY }it&8a$y 9/.X ]~GTh cMyfE{˿QМOvTMgR;Cs Y^KkcCХ]R:Fg౼-sxvE4 ;ipNP~]g;a-ބ2B4xK<9F CElF]u/9fU}qMr\՗!%^!zfY Q4n = 51REsiv!? H9}i5La^R5]MgYW J`,尻SΘ]<r=` ~Yfh mQ*ªhHR, ~0PIl. +ϯ3u%| 0/gY˷!?zit1lzv4F53X䛄\1`@T[ﭺϢC8.6aqFPId!C a+<LrC{=O`0` 9zڴ&fS]bYmQbDy&g#vB1'KgFZU>&v{SO}W8/JLJ h0Aa!ֿYB'!8`},AH6$ٹ Fc:ÓLP43rrVc$C"~Vӷ%M1[rj l"GJw5'9!D"a.+[ "K`*8/m{ZܮK0 <0CE^ʄb&8Ed #G{Z&4;^ Y^B(,1u(Uy{ސ-kլFc#]n {-&ZeI!Uf,LA>|ΚZr(wp3ZGy_PWY&/qu!\^ɴ{r'J+,LVђfqх/HsUhcH1{.S<`<9FW TO2Wx|*!DMh,p ̋ A9B4+wQ9f &'t uڅ%w>m%T0Z0"m7J{i%2m;_8n!9V>~Rl%@~|1FmZ*`{/%#ô6FwRX൜څrkՂ'> YEz}:YӅ}BS)!%>JENҴ:ftCd5~jm[ jG ʨ l:k*;h[I6Ai>X^thy0]~~^3 <EeH֐Y|B`7<]ӭ$RGUB] hC\J2DY%4-I$Y`tFt}SBvMl& g[Z*I  d ܆ˬžV2uٝaf[G(8Fc"'SW[uW\&bmh,$fm/75Hݡ[> 6K4Q-̞[hBCa4]~zK Vq8\]He^0 nXK%t1dyU*a]Z~!*Ȣ%|4Oi]1b tfìx:;@ eNɝPme4 =s1<8ntWʦTbpI!>&k=倊%6BE)˾s65rN\p~?|O[8C<( N hOB I7<)n!RufWPP ERlC){MH6/š+HB":N(.T5Agcބ )܇?1?3DCCRC&dSigI~'HX*҉B{"ڢny2X%Y`ZyV6L } K{ac 7ꀵho5&3P XcAeUX\Tdu7#7[I-xB3YNi-Vu"l"HF=++I|F Jbƫo֒?h4LXyPwOi2JAzF e7U?j'('~}6#;`pݐ ,aIf~;kr45`y|v ~b@4xnXI-8/>LgRTWs *oA7[A-p ygT9 å6}7m2#fga$A;G-s㾠?j0 h}*3T[^rHt!-'tx MG0U([8Ht?Ġ ?#4:MիҿD@D$@~C+$ lA:,-( YtPMiwȪHo~~fre{L ^!߲uRi7Vv"A`>8J#&90a  7B99&ZU0%xKVY[A$Ji*mŅ&p OFd,(I`5 0UԊw^jO%ı]pǒM7z-N:ŋy2Rދs*RPv+tBv3?N =$z.?½ѝ2h'CQGi5o\OȀZb0 jn -/Yv DK&$74]9E1dG- n d0V[<(Ɛg|c  4ZS-F Ю?8(7/yIo>H·/X찲4N|÷2h$ݧg u ȼo&pm7yoRoGWC(6v{^ҷWa?߇XP4NP(5XF)oF|4oOP:|?"Gא2Z t֯/@[Pq9@Fr؍< ?&t!^n%,OoUT9! _ K cۃ9/ڰ\^)V齨)?n*"ױFx48׳71 - y EB8(J y32&,WI%?2Ajfv Vlj/'lrNjѣ(kC.aO5Gau&Ol P-LN{FQV[XA`#x[-L X?#-4&M=@OL۹Jh3ko YGjéK;Z4 AC؊!"`aȤg}xa413=g|{Gs$kiA|6Dja$}pU[% Y)$ |&Y [UcY0%EElZh&[8 U>U efK`+n tU&jkƝ!|=B>y*Ap8 SB*҂M[6ÍС LӯSYtOei<'ׇ}x}C#>CC^՟C/Ż8|jJQwXn>As0)ϟ}3H=;zЙpW>~Jۅ ෂ[>#y=VaKħ uiqڰ,]bmOh8`9ߦpfpO=g[Jjh)-xo op3Jg}tS>&`X2h [[D<L/-Y֢ iIt.džȱ < 9̓"p&)J2'IXcՠ l" )V/6`!./VnlcHJCH&s6( `i bP>Q,CmDC*t5<W U>c7Y(#Pf:q{!yoODx4I;8'l@[$$QASq<jpE7İh|_.&Nq[D2z3҂F5#+8W#>֛7"426 堋̃T:CŊ@-F.mAy3^Fr9 -f@;#]ا?c[,m7CUPy {C",pLU礪J|,efY@L{G EY6GS|mل^=yݲ[͋+6<8lVU2@'ai,j޲do[+zG2'q[Lb{vyWB0Zgf㥄B& Yf8䇝Ѐ| n3lP s뉑|l i(eSlC@#9ϢT?4?Zc6I($me_zԚ AD·!z:n{m!^DVQ ?j+䡰+Sj%=gd^ꡭ@ڤ㱌ޒ(t ᤤUL'嶪>k@&2o;b-\-d>8e@AְQ<G: еJ0nX_f& x==`ͲaU%~7\^B(P14'5huR: ˕T .~ uf+Bi.g>4 4VژOAQ-:a|gyPC'כq+& Wg1x> Y CׁAXB+K%I0,$i4D DAW~NyIk&'b ;"n 4D}ZZSfxXXT˃/%Ƞ CFWP)Zcs"J6xS%󷰐L,"VV HXvs0k"Puçu)hl:̎f҈ y ?ᡵ*`5Wɟ) ڢ4ڎB yHD&,/ʡw +aYxMj[@ n?Gp>}ႄv^\jqB` /BXx>ֈ2ͤ1>ry-L@G0\#Vű: _S,;v:ˋQd]l._"(>;xt9~sB6'xMڱn~3!pJNW( z!;8KÅ&h@g'vݼN/VG,/̆ ޔ^~Ԃ`gT{IADDlVE'H}pEJ>#NfAp,J0* W`!Ynvh] zBWyk~t %B ` Vm[%2=ny8h;}Gѝ|B|=1P#h3R&8#~yzFwwzWea0EI ȇ6^[4̶Uc %lŅ!826 ^= ,I/[3^,2z JF:ƪԸJMk;E.X4@[bc <+T}E(1zS ŞBS<䆋դu3Ә],p2L{i=lCq=`ȢZ6K q$ş1<#q_l6|j`[nq6t m2Ueo4 l"]A^7Cg}`~zo.N Wֈ`Gޅ" wP6}afCxn'Ģx{KG Ix${*Fxc7/ZC}𘵊>`SAZ:H |5gl g` 'dՄmay3"Fix"@^c|F8 iid2WIu ٠,-ZlxY BQ4ނg芧 Ztzl+(b\ir~DmhDU@^ 3sQrMmvBO9MQIfv87Aò,&R'鶡d&]FUUբ"3[U/'/fGy]=қu23g¾T& _mTXf6an)]zʇ ?$t)&1^ Q6s&Jznns.2ۇW I;>ӶKye4F%.'/P)킨mn,jt>"/6q|j~s=1A~ R4NWTu"& Wٷ`[a꘮bCrYAt1)&vFq:qFRFiԞΜ˫o-\Gldz+"Nj2?ǯ.GyERwdJ:b4C6$4%mroDRJ qT53.pWMvU@qM%5G Qi ed56:t"ԓyh»>7Oe2\Lm3iVtUl\ 01Œ2T3Jw0> ѹaSWߌQ=1>QTVWd۰J1:3r1(l+U3KQYQ(*SQQd:=FtmL2ܶalwA[tOUO:ĝ%z.ѽ$J ՞lwiWyö*D6:}5NGP9De$/3'4fl˾ٞAC#h)|HP| T?(h)N.oG5x25 ~}X, EIk-^JY@$0Uŋ(C%Ef)P8XлtlFE]z$.o\ÓC=^TW%M5E [&f:9ֳу&0yUV1^ K ~|M|>myy>UEp^T SD0*YTmu$jOic:ӲC^-3N+/GbUH+ƈz9|M,6qJ()=Y|G_r7N(J_gL{K3c\Lm6%RU\o~aYêHNw2]c#+r\\"g+I0D};EGU 'ƐpAhlKi(^:q ,nk%[_#a.R,r4ܝ7{ m\\mH&Y @F\Ld+x8LO@g2TAfSwoP ]QV}F?QG'kagg}o#_?2>6RQu=;Pgyv^Csx~E?^-2lY;/D.zA`>S_Yhwi2WwEW1:QUM bרQm6Vn,6rLT.f7]hZjmb,hSiXEU6Z݆QrMR7"~:UtW8wZ# we>ڡ S5>OA +h!P5J4MkzݾTo@ 6/4#z·0zY?lg+s5N({hާT&MPEUVJ"95D|ղOXvHEVè#GCyWWdCjQUS;g<_VOPu;t{e?dŰF_AXM#,"u;λGR.>N5Fem{~u^CoTP⎗Ms~1K>s!.rj5GȎ m+-u\xG}rT|􄆀k-R{/{[9޼96&^iWuE=cuqLCgrnIKFyyV^$MESٕRfr&"*Nyr :GuկHo7PUf> 9 Fqp쏹Jv㖱krcYUL9scZM`TW7Tjp"-kjϮ.e*cO3tVO҈WVW?ss>x7HP9x՗wYGezdΤdF/gQÍ=#Ь+G'FJ̜TDP5Jj&jBӵV̚fmեoF-I|R~Tr3ߠ2-gG3uN=M;Q'#VTZ"Du#3sy{\\-գy/MD:ꦲtswT3IBWQ/©H vhù=$28Mj iK _Pu=V!b ee hX*x&lbV 9 r$6~*-vrsƬ&ab{َ4ӛ}U-X`:KL31oS5j6^ԧHm풽2 c,IZ]O0x_(]82LƟq DΗy[f=A53d*!>B|Wr`LsBz,=4W덳rӧ HE#EE>yǛ7ߔ+g'ВS",; 겘2Ƌ`-dzh֠E 5٨6P<7W+A&yWŖBE? у+]tk,~9"V6TQs]_r0AL}MBG‡>UfWZ\_:fq}VܨmR45ͧSV@KU6*%8RaOyG]e;:' !޲͕VtW~,R>>0Oz"C؟"ET?{wƘb+;#ۗF1JS`k`[+t4˘@0c>5=]"2jv^^ DwօODTWm I+|w靴5# љ"Vq(v}T\X}\^ԙyQ]L5Jhllkm₨F/ԩ)ՌJs:C|,QK"nН,R~T15VߓWB*MtHɳqYYQSU~*et1Z|Ǹ";";f-\waMJU aE Tn&/OT\B=jg܆N!1LG*+Cކ`d6F^1]ب"2qy М*B-mҔ)z.ꊹ2З >ƒg]rD=yhbTd*ez {z 6#3! ꁺPM4g@57)8IWDzM9J\Tu+BP NHmPYRϸ@:e*&{\077`=jOzJ Mj~9Lħ: EDBX5Ꙟ~֩h8@Mt_\H^ѷo%pK}gDR![v]tLeD%U,fZW"Wt 4\T7T /za!*3*T'cW  \}@?&h >WMVb())Qkjy,\'z,'j,:F] S-zԛD1T'^4X F:ogVJm&rDb&UOAѹO+eJgF2Q:8LE/x8%ߗx:U b;tz2Dvp;r!H!Rs⨑]췗D>ʧjyظ,skDjZh=ٹ:r=ݯcxtZtEƥPy(/&t7pU_ŌJBNF a = ƊkW];|CwmtǨ.gp>Su(]G)]9IMxn?J'h ʛq.0G֧2g4\d1!Ѻfm]FyüQVJ,5(|MWצU~DD*rC"-~ 'r[*/J{teDg*6>YpsU\[jȋK*:;%C|磦w\Y{)O ǡh>jnmi<>}:Ks>4;ya[\ ATUW3Rɦ1F%㺍pNN\ -#hF#D65cLù6R@o\*nHG1WS,G@32uYt)YX\pPx3@/O䶲lz>Ϩ֪DH5VeVzz9ODLD(^ZWx/ڨRQvV\V4lL̴ EnK ʝSn2eiL2/vrS ը_";A.eEGD~%#fe18J0FvE R7~ GL_wS=?WdA/ 174ސd?.5R_'{>J&-v@ISE~d|DΑśtV3eST'*%)¯FУYl`x:EDv{<{~C/ g`6J'k8D֑)A]JU܈_}4鞘]u;O'hR=޼`}( 'TuROѡ HG i:GewO%U}ߖdJ Fݩ0.I>PWۯoEf/-a:BUTtYVχuԬeb{ݞ4Q[4ϨIt@⢄H-D6ͅx6'&Rup*)r*#'Eozw7(?\rFΉ.y.,6ڮ7> 1]@oJFP~|M"Nk<fvYOtV![8jcj-@N\E?3D G|Ɠ$!Qԫ3DA*+=P_ey*onb?Mm1;fo]QgK4}7Rn1ƅ&0rp?$G)VE;9?WZc^SUo=]$;UOTj"P}k O$Z'˴ ukE/1Vj~\H|}n.zO,ZTfn'15] ֜\t`yOfM`vӁqQ_qV.m*f&"^sBXBũ.ӑ 1YnfSr}JQwf^8S.%IDjgrm8E9t ՑхN_JIE!qu`% @\ 1S ڃDv=d3/Ro T^jVRj#g"Zoh, `ʁZ2/B& 0IƠw2NBQ]Rɋ0z!.SRek4TEl''f=uԓY@w}(?WEىS)`/ u;C<DwΧnS܃AL#i,5[Pcq/zBE8;xK{og98aNu!4U;R?r7Mu} uz9mgEATT|w5ݰmOzX,M.8 *L*ֺ>Iwc:W2sA>ۛӴDnG4yu"M]溺HXT5՝<ՓwщNӛT 1~Bt҉EA/pUjV2v}Z?15BV"X%oDP1х3#f25挎{(܈(B &nWrJ62+r&>R'+Ge.S&2AnjX)lXX=#x52D؈Z}!Rskĥ=S_S}Q>@G϶3@T|V e)ZF^:zC4;:dVQihή$]+93\73_nm`v·L_XsJ~7jΝ/1-PfuC/'炔 56:E7u[&RKIݼ^k#GԌC ]op#lw*N'}l;+>TH^Y."G~ܟB*! : 6Q7U~3 VqFޗŏH33⊬""y3Oԣ7_^R:чJ ~@=K1 r1:%3zi)sPo{n5MA=թ%q0lv|b(;O)|HH =`l Z%D[Q >#Wb=tA-9=wn:LL1D-t׀KR(>zb ܝR:)"M:*P0\Yy)"%E+7%,0U~INPۿ#u6zGw88Sip΅*njl`,P^L@^L&QWN6T=WCl9#~@;_QS&tdPU}?ԎQ}Uue럀o9Ԍ4wd_ E9=pԁ")#DTl9!Sr[oa;Bl7) |ۈzWV6]H)jO,"X^eqz3q^]z^r:'&oJ2V7ڏg7:"=QJTtDGaç=ӗLӯxtD=qrR$O~v2*C*,{:t|L?5Se3X4" F UFG 6ma6&M-x[A^NZujJ+K5,1Dwy5I.l*ڢ,"2a96ʈ~DRN@L_ "Ї'Cz17NCw):fG%4GͷB]LKi40J=ɮ e0U~(LLb\ CW3h'иtʛhxG=~ zLe.D=]Ȅ"<ȋP8}T'POns1. =@O+8m*.k9^3~%rp 2]֫8Jx1X6p5ֵs : x4`ޫK ?㖢.]#)?02C]B%@RYtPIr"gwk}`E(E[DMڇʳ5o8)ǀ(4a_LG$4R_Б^1Er =Io@_qv΂zpZ2`ŤT\8jF5d2Ǒ2'e>}B3ǙOUFQM֧7xzj|Sf";8}Ǩ==*/:^kq!d^57+4B3тr{qJI ,t#0VOnŽ|n/)K|Q?3}Ds@x)z5߈򈼱l~Lލ{NG!jSϛt`YiԂUȒɨ[u.%:Nxo#]mh8hX\t>/Q__v;pʥ.AwЃ^P=З@4{z*].&ڠ/B9-@uj n5'.g<m毹&=B*E{?=XӿV]qX?E<* ts!^B_9jUwCgGbcJ fsL,{^WA|Up9+L-x-r>mFn,ÙadFaG>z6|>Ѫ`7/xytvǀc ) ٽ]{Zp^&ryN9 8AI)}Z0 ж=O80܁!#ǡV(G n.+@H¥OHx]sT;Cll@ "=zTClx+D9|p,0܉sB 夦##[Q t1rkM5Rm&@/n $ 4tHn8X8 {\Ȭ@Oh:sп ӷx1ZTN'eF^-4j 07ԆN|obn/-)=:PDS$ñC!_/%7'm;4 &q58AG Ygx3 7Х| .6r~]ꂵrcz0pl TV(-2k&N+w9]A .b8RXϻwQ= tmPsz8zM?3B[ ,.PU1 kHO²aOհ)5=wn~A.G\ Fnj<0xtIEo*x'h2u&"70imAv).ܒO;,_Jk^RMod'lc0`m8AFBg,-X;[F $~*k;+JKiۄGeG5(n)w7bW)E*SZG_C5?)04""2by نp`cKD]6Լr|B%l;Z7CԮ ˋ _y :҈0KĐ}xT`эekh;wGM |hԈQtC 7D76zv6p?4rRQQ>Y; 5&8 x 萓2 Dpˑ@"u+dh QiQ_ Y ѲH]@nH6:"%v;zjQ{+uQ-}BۊhUtB,@ǖ+ᅨIi!:Ŏ;/gv߱_Ÿ}Cg:\%v!wF KNZIS38b"xUwcO=֥1z :=F_z }*u?|@ލ ~+ |3 \ 7e"aG_{Jڨ?j!@%عӎ.vup7B\D;jq C//VVQO| _amx~DOSǀ|I Ɉǝub?,݉:Cn]L3'й"V"No-`ViԊ䈸ȃa>@ DG׆+ 358-FV{V7AG+#{RVѯޯ5FWP#qDW'TC\]+EAȘPe/s7mw7_H ܣ;1p/@=sp޻-^kx~;8qZ .#@ v[1l)@y^)hGMTȞpx;B@*Ȁpee7,yyvމ0 @g@ȣs/8n@NHΎ;ӓF)X51"4:Xw$}CFMeSŒ;.ǧ 4s`1Ȏ[ i {f7I(. ? q4!\K}#`IEw "`$Ȯd"u$z00|ؿ;2;JgydGw6 u={ Dj οBrpx*_6x"aW h#)؀{2Ej9$"(+"O0YoqX$ "a Vj'BG+FL4&b! Gׇ;vq59>v>椆mbpsD}FX} @$͎|}l7?2qU< V<*jNIO"")X;  <]`Z]81~?đ޺ DF%( kG" T8<BEyUap'±èy[P^ Ws?;1`]o'/2`X-| b|\ 4M>]IGrQ7%"oD["Tؿ#;+]>{G"&3bWQ.$xʎN-#b)~SBsRϑYc8 1>AӼszg?o/,X+ذeK66̆S:o/ K`GΤBkjg]݂C㴈͈:~Eq0)89#4`q~̄}:6⚰Rx(rQb'"H:lI k_zI!}%Ǯ28%rSۈg@ !),r_SOuԧ9ĕNI`&n>ۜg_#g$*S}BHX]jJ;zF=q\п/OblC w GS!6ϑBBxБvX1t@찍59bG'8\j3_ ۆyœȉ(~_=BCs_@ur6r? +G.(Hr xݔ>]IQaO8f6墜9ٱ @DG m6NcbXہ ߱ ItH ~ p Ý;Vts`e'Æ#;}{0u *Qّ!aȳ(D>9w)q.*R #qf"~ay YŎ=&t~;Z:8Bìȳ X!3-3Nۺ*O9 359pg4Ga7)pQ83%v 3c2tZyǙ!My9<"7Nj'378C:9c'VE83y||vƃ]d↿B6GεəQ#SHn/3 y*3ÝUN\uHqNjHgt:<؉IOBg9olw2;։±_?\W:7gHGWxpZ@ epg]yW8yiҹ89d`v+^'SWpKVzia('&;5^1yxR'BܝtK 8s0.)N=kCܼtz*]{N/Edž=۫2 eīlK#_"__YPنddGҚbbz̿Zczm*OQ/ׯ~/#Z/}]΋~'Zjg!^ŏ|?zu=\Ϗ%]߿τ{̹VGwb5:"ܟaB@WF} U`+L=Ql炱v'ݭj[䝹Y99;}[=kq=1YV{R̒=c53W(=|9kWm}o`յ4#7WVy ^oo},=Zl8=*ZG)>/F>ܱ$yEIZ1޿]nV:Ƭ97ZS 9YP&Hrp=OU9wnirw&>;cufzg HlF%\'++7B|+ +oqv _פ1>sq[8x/Cjصd3w{: Zr#oYeXo7Pg (&}z;\::oq}FkY#GyV3I$#V ѯ=Pu$zNLN0OgBV<N}I?#}?9vW5.j=u*{{l=(qy?36=EbaN_y㛱YĿWinw=oYj-NC< ]6 4c$G.|XQ(yʏ}?⮭/BGPϏ^.U൭;+.`m!;_Gp׬; &᮳*AHr7oHGk+f|>K*po 跶IhnU1p$ԕw= mmo+zݿ}WI_b=zLOr|=ub^̬yH4?57&ֱ̘}o5C&FBۧ}e*1wZĆqŬV_CY{u(3sBޢgƭDcx_pVM[Ev~g}sm< G`z(19}!u`Q;}z[ǟgB9V0.Vp]5 VvxJll {>23f !t.-pU݈V fun_g⊎^}Ǘjv\rX_G#ŷt+LAH mNǢ׈m>~b^-fU@6b>~[E}uQ>'mbzj]#Q3cqФFu/pӇXp]gv594g=S#%=Y/ M'O⦡%淸Sd5=/6{?6ݱߡ?Su3t^ QPEkQ=rZ3P%eXNSQ}ǁk?y={+2}M}%3똫 WNU\ "z| &s-P>nOܵ+/KMG_^;5Y1>_D_1婋U n%)z{,.x[~ąO5쾂w%ꬾSշ:xiꮯXGPo7o7Bj7j\֮_AF5F=֨Gѻcl*3ׯ)q4ծڰkxUH-T PK9;+P song.xmlUTHUxPK 9 Afwavetable/UTSHUxPK97t! wavetable/Clap.wavUTSHUxPK9Ruf/u wavetable/BD%20Full.wavUTTHUxPK9I5]@ ^wavetable/Crash%20Hi.wavUTTHUxPKz)buzztrax-0.10.2/tests/songs/broken1.bzt0000644042355400116100000000035512144654412020345 0ustar00ensoniceng00000000000000PKi7 VrSV broken1.xmlUT [G[GUxdQ(K-*ϳU23PRHKOKU qӵPI*NS*+U())///׃He+qqPKi7 VrSV broken1.xmlUT[GUxPKFbuzztrax-0.10.2/tests/songs/buzz1.xml0000644042355400116100000000360512144654412020061 0ustar00ensoniceng00000000000000 one buzz generator buzz 1 chip 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/test-simple2.xml0000644042355400116100000000406312144654412021335 0ustar00ensoniceng00000000000000 what a lovely tune test simple 2 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 100 8 16 buzztrax-0.10.2/tests/songs/buzz7.xml0000644042355400116100000000620712144654412020070 0ustar00ensoniceng00000000000000 three buzz generators and one buzz effect buzz 7 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/broken1.xml0000644042355400116100000000012612144654412020342 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/tests/songs/simple1.xml0000644042355400116100000000462012314033741020351 0ustar00ensoniceng00000000000000 a sine linked to the audio-sink with a simple pattern simple 1 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 140 8 8 buzztrax-0.10.2/tests/songs/combi3.xml0000644042355400116100000002672612144654412020173 0ustar00ensoniceng00000000000000 a three voice melody combi 1 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/simple2.bzt0000644042355400116100000000207612144654412020361 0ustar00ensoniceng00000000000000PKJAsong.xmlW͒8)T>mfB \&lvT#K$ÐߖUTY}y$فBuϢKeͯ_ல`\tφ6tի-@yDQL9BC*J[:5c@\ OPN9B)z+«/i%6΁QV)Jj $a}eP҂pwhmI7`?wΦC}Gh˷\mp?|J">XVWiDsu.qcx;~h SV]q,P|̌Yu ;fuc|Jjl }do XgM9`Dgq!-1hA֔%DsF%6b#.r+áP%1:*;ۣRkHqyqR9BˠMom7Pk;bhp!o BTm0zS2E%ۢ)K̬ H3tSmj{ʽol&͛OuUnU͒E͢5V~Ħe7 pY:$}Ex>I8"}p{|~狭8wONӊl~}Z]Z/ R&a h) K@'Dft{h(e< \R(ELQwʶHJKE02G<ĵi"I2 q7D#9hl $q(C/a THtnﭗCɎ/a\x!67*hbs c"d q) *(HcH)3 Ӣ`0. ;H0*jKk"qHR@*)8M@snɔ($&R[WYBI^ :w Ҫ]e0$LJNFmc d :*6}㼗\vy=tx#\od LcS$֒r`[3hdLܛُRPϏk77הٔ~ƢUH?At1P>m`WzTJwtۓqTf$rl\v,oK磄雴rϫ)>?Mf)$1 tGh65A1T>Мff) m) 9 Cl~Nz%x4jNħW#jOTn 59At|IAum̞A_c:F7V_gbmmIsO_5,OWOQkdt$˦+$\W;+"4쁃WvmU{hWDY oF9t+܊`(5rӸxԈk'.|{M=70g `Όhq"6زNXY)`pKZPKWPKPAWsong.xmlPK6Nbuzztrax-0.10.2/tests/songs/test-simple0.xml0000644042355400116100000000157212314030555021330 0ustar00ensoniceng00000000000000 what a lovely tune test simple 1 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 100 8 16 buzztrax-0.10.2/tests/songs/legacy1.xml0000644042355400116100000000374112144654412020334 0ustar00ensoniceng00000000000000 song with legacy pattern-id references for pre-0.7 legacy 1 2012-12-04T22:10:56Z 2012-12-04T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/simple1.bzt0000644042355400116100000000234512144654412020357 0ustar00ensoniceng00000000000000PK;Awavetable/909base.wavPKPK;Awavetable/dreampad.wavPKPK;Asong.xmlVے8}W(~7ef(@v_&v*dɑdo7 CVAIvV->Ԋ:i&JgI) Ob$no֜N(QX tw,IRkvttUkm]%Ϧ]cA(5zȅ[sR#SRb0Gm%ML;IgT7 YޣՂwg&} Jż{OpDZ76͞E+Rc\y8yKd\} =N~Keh<FE`]H ;šo\44hD]PIn1I ~K#F𸉴5׆imKڝqp&ygˈ,2!6ܺ < vEKhP- $[Db%8[ /);q?}XGꮂ,#䂟!:R:f~m;g4NՍP582)~G /[pv ?Ɠ¨M rڹ;a2Rwr0G8A Ëa :G4:[-(@ʃ PPr:6T~u5VؑV&u/<m$'èTrl fNոvgz(԰OoSTDhҡye<#0BuTʘ&9hLD*BOQ}E#nO#)&PKWGQr PK;Awavetable/909base.wavPK;AEwavetable/dreampad.wavPK;AWGQr song.xmlPKbuzztrax-0.10.2/tests/songs/simple2.xml0000644042355400116100000000721312314050521020346 0ustar00ensoniceng00000000000000 a sine followed by an amp, both playing patterns simple 2 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 140 8 16 buzztrax-0.10.2/tests/songs/buzz9.xml0000644042355400116100000000566512144654412020101 0ustar00ensoniceng00000000000000 two panned buzz generator buzz 9 demo 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/buzz2.xml0000644042355400116100000000362212144654412020061 0ustar00ensoniceng00000000000000 one buzz generator buzz 2 demo 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/combi2.xml0000644042355400116100000002547312144654412020170 0ustar00ensoniceng00000000000000 a five voice melody combi 2 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/melo6.xml0000644042355400116100000001766212144654412020040 0ustar00ensoniceng00000000000000 a three voice melody and hihats melo 6 chip-music 2011-10-04T21:44:56Z 2011-10-04T21:44:56Z 120 4 16 buzztrax-0.10.2/tests/songs/melo2.xml0000644042355400116100000000740512144654412020026 0ustar00ensoniceng00000000000000 a melody and a fake hihat melo 2 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/simple5.xml0000644042355400116100000001243612144654412020366 0ustar00ensoniceng00000000000000 one sine-amp combi playing a fast pattern and one sine playing a slow one simple 5 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/melo3.xml0000644042355400116100000000763612144654412020035 0ustar00ensoniceng00000000000000 a two voice melody melo 3 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/buzz4.xml0000644042355400116100000000377412144654412020073 0ustar00ensoniceng00000000000000 one buzz drum generator buzz 4 demo 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/simple3.xml0000644042355400116100000001212412144654412020356 0ustar00ensoniceng00000000000000 multiple sines connected to one amp simple 3 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/simple4.bzt0000644042355400116100000000223212144654412020355 0ustar00ensoniceng00000000000000PKNAsong.xmlXɎ6W&2%ynC$CˀJ6aԐݞOQW; *X,*gd Js)?ѧpYaJ psJwݨIN WÁ?kș˅6LĀR: 'A,z@9\22_r5)2bE)1ĬHSv a three voice melody melo 5 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/melo4.xml0000644042355400116100000001153412144654412020026 0ustar00ensoniceng00000000000000 a two voice melody melo 4 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/buzz8.xml0000644042355400116100000000763312144654412020075 0ustar00ensoniceng00000000000000 one buzz generator and one buzz effect buzz 8 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/buzz5.xml0000644042355400116100000000642712144654412020072 0ustar00ensoniceng00000000000000 a buzz generator followed by a buzz effect and a drum loop buzz 5 demo 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/samples1.bzt0000644042355400116100000012774312144654412020544 0ustar00ensoniceng00000000000000PK#r8wavetable/2600bd7.wav<\װkiضm۶m۶m۶=Mj+MYWz4νvM5:\SA#'SX,6D,֒.lb ;G$ِB(XbP405,- zxg!W0Be_ B}D6fJ}o0gP]JWZxͮfLZɒg,%d(n%u QA`BXLM0as%ff7deOcoaa`S [)iYϹ pJnEK\/o&,`$VIK*ԪZ~nJl')u+ ~^m@ԉ.a ިCdaD5 /Ư?~-eʟxMo5%u~wUޏ{?,p}|Q~I9v}×_n |)_}|-U}|+5~}/%? ~9繟Oͯ&:/J?sonooasS>o|jik[o8n-+7XG^x}d, `0cģdԘ:s<ӂefMaK8;8E縵ywy;b="DT̈H>IJK?zrb⭢rҩUVEUGiu'I [I{H׶9uU%mhlXml0bEKa#c+Ʒq QD'~zS /"O<#l0O Ay7罞+W2_|cw1||%7?0 "\N69rFY%g霫9r7ǒ8!9fx7Cg9sn\9؜*gN΄9sT)I~#矚+Gg=w4ߒ|C%s}@y筙WוA]y&i''Ot4ܔ!~DyMw#8m`z]EO^0ccp0P3C!MP?O_OŵŴVnMNFH]_QQ VQSQU|"&k%KKҧR5zhH ( ĄfF^./messpT여iՙ:Ozwu::Ҧ'&%$%&q4,6/V9b05, Z+J'!t!{d[CDy^nZWvAcG``XL/~w7F<=<=n.f&:*tssspWm)|8GoG+G}GiG>!r>_Wk#Uq~^.vVFfC0ߏcccc#9:+ ppwpwv&ZW9W+hJQ3%utθ x{z6y{\wwWp3d!g?/P9049<  n rBUCCC_Cp+\03).";t=D1C  YbExĉ7Q!9!y%LM-L=KIm_y32G2LY8^n8ulӋsTNyxx?x#'~5LCLFESX@4TtRUOs$ $K$%ri;:'A2\]MUnPtTWSȕM ie XIEeRwRTWge45;54mupnKHett+ut6oߡQ$B. !}^\qqq1`9hu :nB7Wo4r0+ƚcxl[v`{Qv]®c7`]W3'#0l3[ǦccAX/-aj,  ݎ.G'Ѧh%4*FƟG5)ƞBFgxodjjbf@  @ \~~>GԽuUuߴ];)+ XM`>nΧn: kEvJBiWSLS4T(A%LY}@R^Ij 8ťED>Yha)GpR0\PT`M< w9>ýə)qaee5)q{ w%D\rdpobsmB/wztWi9(2?R;_  ݡ^!c}pMuP|XhEF>w~ *]rt7t\]]] #*g7gQgqױ7.MP[>N fLKWKUP_.j5jF T/K.r9M6'+EH-#C?+5EvjJrR2X^U6W7477077{Ǚg”ϛ_]YLbdI6=\Nn'ϓdRTGjOݤQAJc)einbYd9lyhY"֦֡֏֘5mm훍c/nomf?ln;Z888:R.E+Ns5rMvq}frusv=u=<'%;~vZ`rl( 46> .a$9]:tPD4-Lb.3)nlayL/$$'%թΩ)Kdz|Fi٘a e]`YuK/FNoS;(m%pD36^2n6bL F܏ΉV2Yz4]EDDE~wᏡv!eepUEP|8ܿܯu^gGy.]7]]]\.U8;8 :{}=i`;nkj+gH f8k[k)<, 4(,~uC-FR@!9EgM!jȂ$Bɔ9h_/ϙ@uݼżڼ b%0ty! i%-'/6H9 YK"{Yjry|B~'=$]GuFSKexΖUcEh-d͵.>ڬ"[ [DfUiKۧ_w[x!\ U=ݍfa#X.pX%P =@hYԀFߌ׌sulpð0PѠ͒t?2iDD_oGVH]]Ag^׮V~ӌ>n6-ӪٰGYy\9VY[)T5PQR_/7?dddeeA%tiDFZQH{ *"pp X{+ v O \5 g)ù˞ƮN dvgėF8V釩9)r TD_ofj"yf$SqD3~w=h#)>.hֆ߇6:ˍ.A,37;P8W3;y>ww0,tsM:oILWSqrvssrl( (:^ծ;lm{lSl]ll[zκ:ZÊZ3eed[B)u:HMPuTQD)(>Ő^$?]:y yMOkҪU>gh{{GRG G?2YY9˹֮`]wywo*n3s#V{' 6o@a`&jZz焯pȤȅH8R2MZ8C3b3c7cX,*)/y$jNMN Mӫۇޮ̚z۲좜1$w% y5s*A'nEPR8AxU5}^Cbd$)'/}&U[];?&ew67p5*!Q0ʡv֫́Zr.+_.Ϛ Ǝƙƃ'ƠNb};̏^u.|LpEDc1O%V;#i xK|%~ MdI`&I !φc2D67|G\$kdbѝhI!Jy)g=T s^@/X58>x,h)ׄ@+`|dxX=OEV+ƺǶžňx8 ĉ'Q)9)y=NM-H=I)mқ?y22G3LE4݂3s>xxàF /ZaGNl~VD%Vu/T[SWZX6DvXc^Ї+*"~ݪ*z9qji;/ڲpo=ץuOQ}Q9aaᎁ2h5ˍgXh!):]g4X- 6 [:91;;OR!a 5VD?b$t98}H&ډ "& 15053U1U5013750PTT ) oL)`t}L$|b"1 BMsgͰlN¸`?G!l6| c<̆>AAh$*F-ƚF1`xf8j٦Af&d@ջYnTttUu"'QTc HIOWT/]+ਿǔ5'`x98('`RQ8UTʥR=dj>wP" a)kɵt ̶l~`n Xֺkǭ,VT65w[68~ˮtTrtustts(e_`keWQ\K^xZz{zC]_;ʻ+U mq@37928Ȃ95?#%&4,܎#UI9ڗQw$39ؙbP9cExąd@-o@Cgk*+Ū^~Vr:svpHNY.íś{̓C_@0HpBTNWm&Z jwₒtVMݐe5iym u<*~N'괺fƨm][] _W@^PNOHCd,y$N`f o IC!cK86M(A+YP+C\ Vif" `B l H| <N'Ab!"^8nf fEF[FgRͧGEGđ'EaqqhyYHz\4v <3PWVg|}+}}N ==9MN'S39 ɥ*r= 8E^ ???@^M`Ua^FBʿq`--,S-,---~D=4E[* mZ{{'TN;fLccǡ\:宪6gz^9&~~O:aA=;h|xdXmSZ u(cn3Xؽ?^?$ .J4I,KJ(퓛ߒT*>dfff,݋d\9u /j^'_^A8[p()+"E#>q9DeIBRM:KzSʒ՗͖ݖuswy-temDi[YX5PKCWV/WW'U5#555v֪umtttVo?#ՑD\0f-ˠc\bF+bNVxe@|:?_$N"J4#@?|s8@} y MR 3!21 !('k>qrMlN%g *E_Jzn 6{D;SBi^Rzz~{*|ܨ,wKYDym9_ZIC#KOK'HIӒŒfx8hh!<&&,!t NoK |pxgxhܡB\3g';{++[~Zjedg2*`Ljdxʒܟ$[]Ļx˸<$ V/bn2 =- ЧQtqp%#NpڡaΨPP0xZ0Ӯ:w7Wɗ.^gG>㖹ƻ\,L8^gy̑´?lml#lMmm\-n,k/ٜZ][XZ:[jZ Y?jn,f3"اP/C*yAN#Ǔ^d%وCV!˒%Bd>2/i >!%`jd=1ٖF#y@~,y+ "u6༳5a|7Ei--u,-c,oXʬŭͬCK?)+nfiikol{q{fu;i9Jy:8:B [~'jz⊸[g%a^xR>o _/F_W?Ŀ/ LX`#ܪ !GPOx{mXi {?¢kt=dN2LlTt+?SWD$7)]SzGg:X‘'S5uf7`/cɁ47ʛWA7YPΗBh(-j '~$HHH^HҖҷRlL/" +*Z)++D[ʄjʦ ?9?S{QkѢY?:>W?I@VAJ"=Ey"3T44,|3d Em[,(@OoPJb=u#xx~ lr*߇__ #DA"р@'FsE&bqxN[K  (a 7kf G 0q8 S$ = шD&Vsa> 5^/+ {ۈMc 2`7=?-Pq?AƺƼƔaa!B"!H=ĈxOs[sQ>8]#skoiii+jE/ci&LcU_T/VWS{TwT+TU9*rR8+^ɷʋ}+qȄw^))9!+,Is3rQ[FQ^Eh~lc |wco<#3w[jNK󄽈݄efMg`1q2Ohzh@WjO{ʐz\l%%'%plltxd2?=<ѯf _"""ȇp!)=5 Q 8ڷ͗sxρUJuwyz{bPrwG]]\\e],^8g}iw\qpYcl_iob۽ζ6m}b= llmj-fZ]ז3)P-]g|j 8n.UKɨ8$OmO;ɕ@ʉ'ٞḽJ#q1RGI#dҜ2'Qs,QxB\ υdCىO;^>\sMr p.ՙBM"XJY[[&@8bgaYk9k,ZZ-V-6ضvi achw5*㎏ss3j:zJJ]n'3ɳVnf}|[}|i_EP2mgp _9ڡI3@^-OaUEdqa  h)f8sq2EccGcX;^*1"q&LONL^N2ji[)V~zaiZiY1z(VQ(9v]3s6~ࢼE~EWTSVŔFU{* O]K=I}VPt &)ݪ}e^Һ^5zE"k$41040 18ĸxͶ@.TA~ 1nm@wPGq9(M/~: y@&d-06 +UfWcҙMπDpV`w=|>q XL,!\70(6 <}`DZX|QLЏ5t: rQxϸ￶\7|53,g -rtG* rĢ_ꝺj: yo6y٭Qh~'jRuF5UHB2CPQ~WPRTVO=^EebfiiSrV2(7ůEEDZ7Na/(~ r ~a>;+spp`&O0lՁcɬ4ˈ3 ӬԌTTG5R&JL1|KCOn [{dm0bd~ચ\2 An3edg7;01`lر x\x S4MN!\o?PZU 5ZHe| NSrKK]KW8 [ϖEi-6<:zzJYyz!C'6Mn/goU.ӮrTtrsswœρ9֮◮xr= <==ռC۽Ͻio``;_?ÏA7W`۠$ 4+t5  ##k#"aj4xj|4-ˌa0~$31o x(^.16q>NTJNN^MRSSt:1)=՟udac_fڜٜw=ـgl;]OH\\um[ą$%$NI)pIOZZ6ZvF摕;rR\uU@UJ=HSI4Ҝ84KtKt7tNo?"J:bGA~Abhla<`kh)-:]^jQ Vkޏ`!LkQ"| ~ ĝxWD]-x1XBl$^"/hcd$&QEXV%0Ml @'J"5J 7&%qX/}_O{-sp9Nc`kYXo1V Scz%k&hqT/njKÌ,_.tCCYlEF#͐$A,}})=GKwB7OQWB~N6Z6dҚzz$MjJܯ(_)6*)+ber\Gv\6VVUƒ=v%{)-g9D*;&bTU[KP@<_|ןWg/'{';cfmbu"hgi9@@X哾ĩĨD#~ /3>3vy]mEg[EȲHK p:>.!w O+o@䝾Rwz>ke/lygGgg1)*Aw'ڛ 3Os@F|2y |\̶4-q0G`ƛDHէJS%$xjr9lE"8XDrsk?_̟gW7,@9nΘ9Ԑ(Y,IV$a}3ɛoIIeJR6@^G҃~w-,iZ:̺z$۳V`+fkbf[f;i{m j#7ws qr\tpsǝgQW'lIg]ӽ}mq#20'e|-IA7~AF`lPG@l KvEXbdThO_h}QӜY/~/NO,HQrTΩ\>-jfƐ;vNbYs:JBeEz ˑoDjdgXjUX8 ,cTNЫw4ja=i !xy!-x 6lb58N\}M|%a#DL)\w ˙J 8( _ve[.OO @0l6o;q|#>ϔ/ v[dd.)䜫h4/15164SFa[2`C]b8̆W"W)05hk;h i 6P0erC:kʳ 겦#$.Ɉ[7"p&8$&("p`EyPns3Scgf`badae`o.iM]jueJz\l'$f9J܈OWӱ 0sTeBK)Jt4r92%R-Boỡy!qEpmC   S+z__mU{yyyjy@n!Ap\eu^u.svuW~8h(H_qfCe^.[m7llclM]f/t؜2Hid9&L-Lu09G,p_ETRys.Pj:Bݦ>Rm-,--,---n ߚZ:ٺzml=y/پ|\ rY'{^1ұq!qVtp.rr~qr\%]\]"wEwZ-mHսo_Pk_?$GB dOl\deBCCC߁mÏp7RHD[tSCTɴbV1IylqiLo_g{&[$W%%5v)<#7mN 82eX׉dg?` 8-8+98:nWvono(+ϟ̿O –•Bhs^q_!0bt/-'';'1C)E>ewf\D@uKEʩUF9&v6-[}kL)/ Agjn,2T󌇌ύ~lnGo4J`հdl#v{ٰﷻ`|. ?w)\E_nLt!3>,qXMXi2f{72W2U6U n'ZUsySIS1S!S>m8$SSNsN\:Χ#x.^G d7el65*@%]t6F7a 2.6436 Xd52`HHL[?m}LJwP7UBW@Ӿz!KRMwMYMB ue@r7xs%yb4x=*yf )2t4*9-(*IgIW_8HXL42o/νʝƭs.ssqilu5UϜ ϸGCӎTTh=ĶD p)"" nE+DZEԑ7a}KhGg@  ;eMUq|Ͻ=~UO;t_rwvq;]\\]E]ssS=B/e O-;b؞dOTl^ qbKX%Vee+9ElRTS"PQJ$E~=K_?s [j $̘iK+^{᳟0?Rm2RY\|,9\En|p|N"=dTPyTimi> S2X֖]P , k1k#k_\mkjU0ݶvf-#?,GmNY߹y)wUrv-s]q]*\FwBV@hwwkG? n=io=W{&F--6.>rLe.3qOlbtl—(<$ˤƤΦBJ dVfFnjZz̒۰ײ?]SL(7-Ǜ̻KjE57pYD'NqH8\SRl%+|HN (z(v(>)ʖʥ{ʴj$su*94ZmCtp8J5MHd!rY``fo8fxgH 7oF1ZmAWgзhavXl v7POͶ0ʶip-CTL r.&+#X,Ȥ>W71545320571ǶD5`vY.Vdzm3 9&40D1HdoZx\/ujb& t):mGxʸ8X32\5l2L433 KO{EӯtMu&]@HE;X[C+֜Ҵ2 iZUUq s2Xh@BK:YoY!=)$!HIK:IY|@ V :'l998y9ٻ}y?XX=Ygf{sFސԫrIIbvA"n&j*3+I*QAOkȽH/ŖaaehUmH,tN\= tfg'پcBCBD}xEq8dmz/4]}2-3Fk60Ƌ7/ߏ d8""*LKOL32{2w]8rʰdz/v l}ۂu^Q?N` !#-| ^TvbDYEUIKwJK1Y7ٶlrbⱂ +KV;꨺ffFt=jDjMGE> \C)CWBI'X8޸x }>ZmGף("X 6[̶tq⿞pq,Bы\I!k'AK' NW54嚚[;:%;t2u4uj71ѫu^a0I=s_JL"zDYDHv w6|>ʶym X.V`z݈NE;UQ#3~1^1n1N4v01*Nc~LCC5@ ; Hk0B>OKӺnR:v6֫YNּgZ:N-V}RT}+UUR UTP$yIJplz$$S%5$UB)!$/;ug@@di$@ z6||||||5;܀2۳NE0#,AV!0)@@#3i#c"rT,<)O*BI,----+--a͒Z:κzJmEmͳҧlm^>۾*8x9::G}8 ͐%.=޽ڝqtMӼ'=><Ձ@ k _CpIN0,_ۇ20k&\.22r:#Κ(̀,TM]c'xĨĩ?Q*9*y&LKK]L`S3ٙ{R ݞmtsOr}Ps^%yu|0e&W!..%#7:(e/<$IHJOH2|UtPWRH j?U(z:. <ئyd GVU m=%tK^F!{ 1F6nlE9#ƧFQVrDwП(ŪcݰU60|.? ?b!cjb?qE<%>fG$FM95MuML[Kw1653 07M=M݀f0^=0Jݼ&IfbY>J$@D} [ĶfAGx!\ v Ϯc()z]Fۀ]kЀqq( 8CC 9A!`3~}s}~={ۭku>mڑZY|M{M!M0{u^uquTPAWULU, )n(+Z(t_PSWgddkd]eeN i})O{֮Gˉiѿ+•B` _o8$=-sqr*rs~)V's&3!S>OIJHRSCSERd$8IOA"$k]F݁LCLMLM#MLcaG{ jj.^Tܼ@j!PE%o`ny8{"(m1Wګ)Pq7bG }jeRxݸ8X(7 s*dP``م,Xv/}9DWwMTWWQ'O6y٩Qd'9r-vn: h*e'eaWqY1[\aPXS2{^PYYTzS:_JHI1SJKůDDEw+8'(&1-r;5{5xՎfˬʹ(2okӲ23ũVQiK1n>ipѥцQA1nFK藑5U}xsG P7x*81X#  h%A <_s=x{xy{R' nkkK<tq;c&GȾ>^Ğ}]lh˱e_W:+mhfmYhdin)mZ`^7Saٞ%)#%^\ =L8{gB$JH.ζ]oͯ}|||3<' ESf PݒI^Ie|JOjR LS{Ue{H4t^x?FXW[OZZ-VmcS+;ڧwo٭vccw6U5ȵueuiܣ[aD<:{xG{x_{JΘUT  -׃`Pː8\/<=|>  |6">kD'G/D}2٫LXط7&:&&&-ɏI4)-%{w dveJxXؗQvutې+y}{VAap!GXB4ZtFW Ғ ҉Ҡl#+&*? =J B]e =BuDWeRU/WVԥ4ܯ~ ut#u[R`]EH4@#gH !\q[chD9.ec=Ab[ /v/g}^] \#1Dv? >k{9ڸ>%tO ,Ǚ&dc $fƷz LGcRD_@8n~Yv; ®b;y搙z`wbw3]WEކ޳m)P,W${MnRlNڢYvo׌H4_SMԘڦZjʫr*/fb1*I)TECZ(0nl,=IZKʗlt$1HqYqHtY4[+^ .AA;+ssq+rÜ *}=]e]fMdUfE3332tt u:5*U"eKJLJMIHqS{lGG }a15F?;^t~Odo_ßP+AmK`gz٫Yz"[EV^KzN{fxztSifnj :978;k:Nqٱ|lj_mjg7ö7Z6~^c`݆uEggMuPe(M!;M:`EH#$LA{f@@@Y?!^{2gas#0e>"=!CL&{X_2 F"`ݭݓn;[c)2ʲ~XdmjX[E[D_61l3=ccC,<|; g+*^>mz {;xx/y=^ 2,)ه~,.(p3 v > fBBB^~fEE&DNEtOz3D[<:L:0bbgc^qodbTx™(C~5{8ʞʏJeuUPUR= ۷Z ECh[/h| :7OӋd%r !C-0ljeoW b܋}bhVñ jFХY,zT$9Ƙa=d† 9qR1 l}L\W7ARG>nԎjf&~ު?ƪjd}1JbBx Uy99#-[.k+df w,IdKG+[y&"pG#e~ID^U^{;[p9w ص\V}u733S'IIJIgRWSsRRdd$q11)Q)Oӱ sT`%p(}NWSڑLaxQYN!";x 84X2 \ 4=yvY_];[<Dw+EݴkkOn gqZGMR)9"'>y<<m-iLV%KI}_?~ }||||||({g}i ^51_4_?72Sf֓`;}}H;ɣ`?dA5PCP3aYR7OY XjXYY@=({ֽ;ִֿ5/lY={6&}}](hx{vZgl.Ks/1waOgB%yx'zxx*=>O_QpouipNJ,zk'O݄^@ߢtɨ=Zf~1xklsS -kdˤ<:*d>{]̷ >ȶ spql`5ne$^W?4,<H-oZQg****$$;$$&iw7QQQN/? rTPkV=QqԵ'f5it h hiWhokCb.:.~8TBwnf]p`6H=s=F-wwta3Mo1oc`WW8pu*\1A$vljk3+Aj52U6et =4444biiج1wo54Մ Pʔ4MQ =L^DL!]ƐKZ"=*x{d-`SZl2[Q"́DO)PyTA (mhddole,aΆ [q2i?/?NfR=^֣Y)IwGkEꏪC*KZٻ|T VTPky4YL&H/iaGrQ2ERG‘<wߢp0- ݿ?oxyx w+1r OnV/V>LLttTܖĒ]gXǵM1]=hYDo{3;'>.vΆƅ{Ayc`{OP?׼󽭽F_)4OcL7Jt]v-quqs1gmPs\P:[M|m/P Ok]5q-[,3--~OPYP=(J>"/W1']k+7J.LڒE&Pt'L? g`/[VQs, U0d9ٜ sKM$C@pU:rS ҞfjhyiZּj.[OY_eT6ƶ"ycvqvs,v^a^9ѹtƺvB/?9ޞ՞*|5|c}}|"U`{(P+06/% N Zw ]JG6呇6]L_}th y˨bc+cbx 40!J6H.ajiqJn^~ee6g(V HYv]3s>ymxxy(;+*8(p G O rPES)q8/H"`WAi9l?m+/e}TGYDUI\UWSQRT+54S4'55zm}l۷DWM7DUXԷsH'd6ry$<6Mk.pqq1hTht9}Ԃ&Q=Vk 6>[`05xq: gi6gBC``ED%QڂуI"q01݈D%ѐKT&ʼnBOȈ47~|;xA\O)vۅ-&aXi x }^Awh:m43n4N6v3V3ƌaadH#?d<)RG#O;[ [չ-Q+!$MKM>MX${c}FmS]S-=XVQ~l)IE|E{E~O~ ]^\ݗť%CrIWI~G|AKϠJKd_dTFy.N6J ty`g`xF@?od?%޾^Y{ns㜝U38X QՑ!kdi?j_mnoogn/d6m+d>\[%[ [&ea`,4!֝;` GasKֻ7o?VL-n6VVV ;Ͷ`Qߎڋk[اWwأv#?Wkg3.9xH9Pg9g@lVE)vrfb.]=Ž}ŝr ,#ǫ;{c|y #"P!3$p.#}&3( =4t1D`#;O‘pHȴB7яi.]E Lfs(buccbbcxnppnjbXbg]ܗ|jƤ±|"7dCy!ȘXXXY~VAvjv]3V~Jx5yxx?xj~cdIh@'l&)<+hH%%%C$[$$QIaigYoBVC6XIvO擡mGrW4PTlRPre%ew eXiPRS-QTjuEu'UwuRkiBب9yqk$"PwӞ&Fr]a]m]'Pˍ#`ou.;'7^->!z$R)TC"́d2LC"rdYYVðW!KӹIXd82tG#-HM2R ɏ` ~~~~~>^OꜺϺ]U::.ikoik76ӖMBsA]3G3HBS^hRjRX}\^]Eߪ{F*R>PWWSUU&? Q=.ty'y9LݖmMV ef5:0ii^iXVrX2W]RV"_WV5&:"T>n t&5*_;[+cÏrq[rsÜGm:b_d/a`f'YXXSXY˛Y韩eOg; 0:)mʒ\,dIHHK[#H[S/2KL%FrybTuP>~ݑI֑"TkLxyx@v^@]3wSAV '|?}3+|||u|} _,wwwWxoǞ}ў^6!xzTvܯwݗ'+܋D'ۺsݵܕܥyܨqk*+r[ pdJڭqP767JK+Gk[;\YÜ/š~w- ڞVa%-Cߞx~U ES:D/OoGkDF_FQ#S,aN2k[KƧDĚĵğ Y:-9'y(HNJMKM=KERyM;Ҿ4͌+qg M,'Kˮ^Ͼ5;$Gʭ]=J>R6i`KO>* l\Ke]υA!&+,Z.:/ #n(&^!>/(fy$$$K$$%^JZNQ:4"րݿ9dy||&*EEEkPVY3oETRQPSQTWR^SV@JjZƨf֫Nn@~"*ZFE5̀rCճz;g7w/o՟տ!l8 lxWv/ C %i>&2<cu;u u=`l)u~53LuKuyjjjʨhUNyGyF[Z9]9LIHYAG)S2 blaΊ: DV8w东 '{5>b5deR_YzC[X:BFZAj%$%%%$%5%-G[ˊhh((#%'F_ w>!K[pKG0[KPC /+M 2|%{ ^}^~^{;ۖ[+88{888U8}cMޱNr̙LLL:5})6=",]8JL]KmIONK RdNr[rr#]t%&'%%j'D,9~!&>&"^".[bbbbc5cx,|e.3[IL{`D?G'F;E+EQJ_st#(-=w -~Fu   O 7 kqp ݡEqn2!<$ /Wg;*BV3@OM^l`o`C`Q` =m!KT  @; k\_o//OOwD= ?H4"2vnRgyc?򁚁&ށIyP \ < P_ M!' 6Tx234&4/)t$t=*D|*&e]Ka3B1UL9~Mjɉ-KpB G]䳤+)OM5M I-MI=MYRtt5-4 ,<83V V *q+fgceo`ge:NNGxFEGAaW}#/^(?o9>킫o@-,>?T@[x]EDEE D}7N(QJ4!^'>!~$&Ԑ ̒ܔ8$,JZXZ]RrBv m;_iP*dEdUde$[~9M oMqJI^\^2E3p;yE-}s+'or)CrFH!UjVSX6L \f oT 9-PyBNT@| P~K~ r1~FrX9qa@n6jPBΓGe_g3X3ͲYȺו)e,Y@JIJK/HH7IHIJ˂=˥)؆ߠz$[ud4йlk$&&o7=e1W}݆JlhhH! K=w ; 5ˆ]pm 5᡼!8w%PlL[3=ٹl Gy0^,˓yٔ铩)dw iq:z >75(̌v֊bQnOW`1t/].F㴀F,GKCA]?2*,"#-+6(|=|2/rQxzxlx(cUqVB0ք%a~8!~~>A$(t?t't+t3t-t5t%t 9x<}]?n7_ބއ~!;ĿX(<5a=PPtBFxpp7hsgB~>kp%|cwì"D EFjED:FDFVX9 DGJt= ݇MϢ;3M l_?|PkM}ᨄRL=҃i f?syd 'Jrcg6ǎ>1Ttus_ S3}S7?%''$&ׁ?H~OTNFCjXjqjwJmʕbttӴ%N#rpt<3ԦX38z2`e؍}Ӂ'Ofv^ӄӗ3s6]=̽ p%@Ѽż=+<+7{WmZAQA-AGق #`loARV6,j8?OdU5%%Z%%: |y).r"W[{A=0EPVtQ|G\ElQ1["\E%e S4ta8 |Rύm@ÒS󒫐CKH^H^JI>I~KRb$v "({>>ux`$_%a:/:y,'%T={XWSINLH2S2E2V2L$/,B"$CKIL|O|E|F_MJ@`ϧ< pfzѪ2тP%(+}A=7KIMZzܛFO,2JS]Nvm-Veyu-BwztF#xtTKUzz Ge/ҷ;To/@[v^:NghaTEya-JAS;8:-;:4:K(e1a3eL#-ӝ \fi&+C6N0+[YklplRl~l}lwLFy[xq}pB<_(ϸ[ț(MMOMOKJ\N%LEd/8$%%5IA2gčĩ>8$&$%%Z& $*[PoύO7q d,s>^BV 9u؊ؐX_S;TXXXXX>pK5d A34`wy(5=*:Q/r6r2r0 :YYG=>2:2*~!R7rOrBTp$gD;WAgY,rf:ӝnN' S<S)K)*y8 ({j`?i7`%Uq۾J~^\dW;XXYuVIVgPUFP͆c Sǩ4VUyx>E|As =N.nt%]hɦg&q4˟;a~&*~ĿLUy3I(-s=:۳17s(-m u PՉKS=8eda&L4JKJT!+ܘ({ %$r$T"?#~8+=1Z__Fߋf=a[Nd3)DxJc<ꣴGl}yQԐnwҞ--O_W^vw{}ߤ7(6ND_? kǗWW$mo?ýfx4=/Q8Q2qM|Brn8\+<wJtKLCLI| *XX1/qL%n[-FWw뻍ܧܖnG7.|$fkz~{MQ]Y|{{qg};]"ԅk~eCxV~g\`mH> __}ϩ J+ԏt>*#>3tD:u+ަjZUW Vq_PϮ bvP۞RX% }%⪎ja^Zì LUxA|˶صSv;j쑰=^lm'KdN$TqjBNKw9#c.Uj&*t|N,!7T>5D:*&9-ҋL182 ^#_L_΂a"#KGB";"{pdBEDDD#ch4;6GزKq-5T+Sp:]^#;#[f~7ת5"2=212;xgXdPM+TB#GƑGpH5dM%#E#i( sKwv;[_B8;T\+N{ J?Bfoq㱋1W9`u}>l7?ᷗḿsP]Pj]og-u:bnm~VX 1Phƕ?fճ[wX7Ys>~ƣ/ĥOSQT};;Ԡ5սUVW쾾Oԩ5z1tC{wӜhEܦoХtҗD.:?ϟO{}WvMD}mi.yǽvo[A4?_o 3ϥuy}pY}>C>]zN?e쐽VUPUՔ lw5@ ㉚[ 0Kŕm1]m]gUN5Z]pV(kNk5Zb}gaYg˖bv]ʾHn׷O:؝!B_{=|=՞iϵaz{#op>CN +DL>jNis=>6XTө<4DO8͝pNYuy rPMp;C h|Xh36љLBOEt45`?W3y=-':ShNO84{?h ppz:]+T=63OsIq}k8՝{ng*BruUNQF'Q؎g' U^aJ{>ςГ=(=cٝЭϚ؏ d+ڥick˳[YY[K43k5J;0 (uUٺźUo+.-Cj/Rsp!5BK:KZիp*\*=C' ok z-]ug~Z?uu}/A:ή- {F";ҟO?G#Pu+UtY)1aA:~vf ^OszW䁽fo\[-$fO ?AG׊ 9׈ QdT 7Cr dxB*{1r,/yŽD9N{r=v^w;.w'm6=vgh;s}\{9/ϻe⻊El1Dw%2[;*:w^{5Fͼ_:A.UO 2Pou3o:֗7|o)T. 7{߽tf8wKxFg[auU2z ߀9n_X "Y#5O-tֿ컾ʇ'/˱ i<e5l_\;zwV/+:ެw}(u\aY";]ľ `bIUPծF%_ˮkBhn>vGe LifgRo5Cx1xLA>'ؓT3{=Ͳg_9doD{ZB[v <4Z,P|g|[_s9\{6ߚA%c~y }@_ơ({;u(n&wя{e}u:rs-cрYǮiװe0VɦȩW%Œh;C{V>˘0 J<<=2O>ͣ0k |~aucn;0[-Muuu;ލ2ViUJcgϪj/Nf-TsWs5UMd}/37;IϪ1x^[|z\J%UJ4ʫrd2q4ǨW}#>g^Y3g=NGBAPb+~A?&tmS5}7w3,/ sl3Kn q  kdb~a =BW%ꁶfP~A]TpK%'#cؾPNqa;@ v/K6و~!~֊Vz2-ckRo Z-b8B^/Ni2! Jw5ruz яVzA~Qw; i~.^O={4rAoI{-Y< HɨUk3 2O{[[;ݘ~_?32'k|Bbjt=6 㷏B9";s4VURv%}Kߏj!)OVz{M{58rTzF/d=7zޫOsmes DDeu'p{Gz W~ ?T㈷laC8'hL&bg%bP+/(1^Uٺ T[ZO[mvV'%S$?@![p(3MxL`;M'o$s|[k}m-7.BKej;ȵhڌmdN8{[{tGKd@tG9{Clӎ=D;A>ekE77ӣio퇰+KdyoYTF` |d!`]?7TI}2w=/P}b0ҵ@PUYeQ T*d9l۲|2KaJHW6*=>[Rx>VRYu y7`'V[2PUCy-uߩnEף2B"*ʇoɦ"Z_)"wEo"F)+qKoP~@TGDp'Qo#oAD> N6ϺKAޤ+H %t1XΥcѠ/$:L {m__pw?@U|&3|Esp_AD3>&_Fc(]j V 6>lR{}CM-Tolqd^o ~hޢC'Ci;MGG8'h(dNB}dbBoh!]/eW2jkȪɟQCVw=]xl|m|ɿ5u,EP1Z}]^,_UkQ=np`wVO'w7VROݛ55jqOkHg/\\"xTMz0I*ҳvNQمy6E!|IuPp.u1mmUzxjN\=#ڨzY '՗x08\Kd~@SSp]LrzZS]~m%w{n8#Ipz"+WiA.\_nB0*jkeM/L0$ "UֿVͪNyDPQ}#C@ZcƲo,z\ -8c>;M bԀ֧Փ_˾<}0=0(= Y2߆};{{;.-.cpcaZrlV:?+yu)#|>yF~L E /b&gjĜ 1FFa!zj{zp3jZCV/fqaCPZeeCJ_J * eGQVq. |?w?E4q!oz^'h-R/#]L?COARX!j4&BLx5b"Dtk ib9U@S85@t]]G`\5}JmPUߎǻz*fXRZzTq5Fʡ.PA/(% ̿L3LѾ[̓ml-.Kd`tfXxJ 'q-823<%^T3rYy ^a6ί郇6\Q'WҚ;.kKGK oJVU$ނn݅SmM c^:a2t#fгиn$O^E=u/sܟ 3z#1:r`|*Gp+*#jo[Cr料OyHŏg՞u X2^=ɦrPgEUr<1ss ̠N OfAYd Ӿܱ78,BrZjakjzL@4mYg#fyg$͸M"C-乭776pr6󫆞?K@K֨8ȸܠ{1e8*y]ʝ jytce gid^x"<'\6mz_2CCK7ݟ,bV{^]8v|V X-Y- kNVPRMu_To!UoRwVOQyyC$uSE I^3*}-u7]}##s/d2.mؚ12#BH14z^*l3[2f<466zTkj@ueF3rMyb\:3o|8*^Yfm!vqط+g */PCeQffkTxȬ6 I nO%<"sOsC+ݰ8xӔ"Q! 49dcCC%y>{ȝD65umsz:b+9ZVp-KxyP_dPxCSY|.ՅaTޙ*1$i86Ԛ(S*X2? Ϛާ&M0;Q8Ezs;oʽ·Y"Bǥh9\"IʀFK[v۵:d^HeC_%Y72SF[Cm풶G= YYEf!۰+T8:զfe.KyEVY Ҍ1NF+fk)DƂ+޸De&ђˆʏ[ k"wBoK-ƱyUm"l}Q#EADD{iL0 zHQV^Qv3 ( FBJ8À9#V8{PUy6eev?4_V]fiԃa6slX Yd::^Q]ng7OԖb5lfTQYЇ~VV=$^*#`{PEFΌM2-'|8kC}-jJJ+%OE̜VLlf5p EDfNd5d}mqijsCdd^-Š-YݦZ5h(%\"!NK$sc~Qd9D0(<%OvNgٛH=V'$~I&8E:*DG$Kv@?qm{G'JWC|s05PH8ttH*8O3=tymoGӒ/]Hf*'s2 v#l=̘eMꭀ[S&\F3tN~2m ?kn6~{|x{N}+ay}02GY0xRHƓC{ }q:}DjWGb‘"xcEyR_ܡC'f^|_, SaV(n 0GE!{A9*, U*o0D%<dNu)ٖ1>Ч4*%OJ^d}Ю;!Z0jy8 $z}lY@+-$\2ƹC}i9BGjf" `ir&-ziQ(-0c_/GOx0glp ;($WPS!q6 9pH$*g+*W.Sӓn~%%WT>my4(-#K0䋈X +LyMe?P§>AF8|.(5y䅳sφ9i9:!UB0OOyXH:&IZmSGqr1w\rKϕ yWAG\E@N3p(C4R})tؗKI/df̨WH&Dj'>dzsWgrW^Z^KmC+y6}3>\'xT;炽fﻩQN2'T&RO@&hx1K.ƹRf;/Ϸ.^L16.e-eKY޻:-IY9 +lS,gQr\2 FrJHnx{4i22z/ϰ PK#r8\wavetable/2600bd7.wavPK69=~' song.xmlUTHUxPKGbuzztrax-0.10.2/tests/songs/test-simple3.xml0000644042355400116100000000556512144654412021346 0ustar00ensoniceng00000000000000 what a lovely tune test simple 3 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 100 8 16 buzztrax-0.10.2/tests/songs/simple4.xml0000644042355400116100000001171312144654412020362 0ustar00ensoniceng00000000000000 one sine amp combi is playing a pattern, the other is free for realtime control simple 4 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/test-simple1.xml0000644042355400116100000000336112144654412021334 0ustar00ensoniceng00000000000000 what a lovely tune test simple 1 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 100 8 16 buzztrax-0.10.2/tests/songs/combi1.xml0000644042355400116100000001070612144654412020160 0ustar00ensoniceng00000000000000 a three voice melody combi 1 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/empty.xml0000644042355400116100000000143412144654412020142 0ustar00ensoniceng00000000000000 empty song empty silence 2012-03-27T07:55:56Z 2012-03-27T07:55:56Z 100 4 16 buzztrax-0.10.2/tests/songs/buzz6.xml0000644042355400116100000000675612144654412020100 0ustar00ensoniceng00000000000000 three buzz generators buzz 6 dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/broken2.xml0000644042355400116100000000333512144654412020350 0ustar00ensoniceng00000000000000 this song misses external files broken 2 trash 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 100 8 16 buzztrax-0.10.2/tests/songs/simple3.bzt0000644042355400116100000000217112144654412020356 0ustar00ensoniceng00000000000000PKLAsong.xmlXn8)eJORV_KAK#D$e'}%g9"%n %c#H8sȶSS#3k1>Nfj&;` i^N!.JSR񚋿i*T_EDuֆ9!@Ӑ00+RbiHp@4 .bE ._0 {!  $ GK޷ XzD{w \||m~lη`;-*Wf>\@.R 5Mthh3ɰY8\Bf4u~͛YbǸk#qh3Ai%#$s5HTL5ERQSeV-AӴ0,|-#8!6]$ϗ.4;ڸڟ1wҴ$~Ţti5k6S.Tuٲ!]7+F\ 6_6x` /W!`eɵ?NWûQKj lrY$Wl\:7|1ի :ʼnѷ7PQ|&k3`Λ |VZÝ vc}MMh شDMYK瓄^Oyyϫ[|ޝ87Oaؠ4OPiDP{cm wӧ4;ud"i$DBnbQ P[3KMq/FNL62=ksXJ_vG35{Jmdm?JeG\+G漬卥@1~ecve%:RTc949,[˥4:*ʣM this song misses external files what a lovely tune example dark-wave 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/test-simple4.xml0000644042355400116100000000776512144654412021353 0ustar00ensoniceng00000000000000 what a lovely tune test simple 4 dark-wave Stefan Kost 2005-09-20T22:10:56Z 2008-03-29T09:04:34Z 100 8 16 buzztrax-0.10.2/tests/songs/broken4.xml0000644042355400116100000000031112144654412020341 0ustar00ensoniceng00000000000000 buzztrax-0.10.2/tests/songs/melo1.xml0000644042355400116100000000565112144654412020026 0ustar00ensoniceng00000000000000 a two voice melody melo 1 chip-music 2006-01-12T22:10:56Z 2006-01-12T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/simple6.xml0000644042355400116100000000317312144654412020365 0ustar00ensoniceng00000000000000 a mising machine simple 6 dark-wave 2009-12-03T22:10:56Z 2009-12-03T22:10:56Z 120 4 8 buzztrax-0.10.2/tests/songs/buzz3.xml0000644042355400116100000000431312144654412020060 0ustar00ensoniceng00000000000000 a buzz generator followed by a buzz effect buzz 3 demo 2005-09-20T22:10:56Z 2005-09-20T22:10:56Z 120 4 16 buzztrax-0.10.2/tests/songs/test-simple5.xml0000644042355400116100000001077012144654412021342 0ustar00ensoniceng00000000000000 what a lovely tune test simple 5 dark-wave Stefan Kost 2005-09-20T22:10:56Z 2008-04-06T12:58:20Z 100 8 16 buzztrax-0.10.2/tests/povalid.sh0000754042355400116100000000370412640575004017127 0ustar00ensoniceng00000000000000#!/bin/bash # Buzztrax # Copyright (C) 2005 Buzztrax team # # test po i18n files # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, see . if [ -z $srcdir ]; then srcdir=. fi pwd=`pwd`; cd $srcdir/po res=0 fails=0; checks=0; report="\n" echo -n "Running suite(s): po-missing" rm -f ./missing intltool-update 2>/dev/null -m checks=$(($checks+1)) if [ -e ./missing ]; then lines=`wc -l ./missing | cut -f1 -d\ ` if [ $lines -gt 0 ]; then res=1 fails=$(($fails+1)) report=$report"po/missing:1:E: $lines unassigned files\n" fi fi echo -n " po-translated" checks=$(($checks+1)) fuzzy=0 missing=0 # we need to redirect to a file-descriptor to avoid a subshell exec 3< <(LANG=C intltool-update -r 2>&1 | grep "translated messages") while read line; do #echo "$line" n=`echo $line| cut -d\ -f5` if [ "$n" != "" ]; then fuzzy=$(($fuzzy+$n)) fi n=`echo $line| cut -d\ -f8` if [ "$n" != "" ]; then missing=$(($missing+$n)) fi done <&3 if [ \( $fuzzy -gt 0 \) -o \( $missing -gt 0 \) ]; then #echo "fail" # we don't fail here #res=1 fails=$(($fails+1)) report=$report"po/*.po:1:E: $fuzzy fuzzy translations, $missing untranslated messages\n" else echo "ok" fi rate=$((($checks-$fails)*100/$checks)) echo echo -n "$rate%: Checks: $checks, Failures: $fails" echo -e -n $report cd $pwd; exit $res buzztrax-0.10.2/tests/m-bt-ic.c0000644042355400116100000000374612532132271016530 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2011 Buzztrax team * * interaction controller library unit tests * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #define BT_CHECK #include "bt-check.h" #include "../src/lib/ic/ic.h" #include GST_DEBUG_CATEGORY (GST_CAT_DEFAULT); GST_DEBUG_CATEGORY_EXTERN (btic_debug); gchar *test_argv[] = { "check_buzztrax" }; gchar **test_argvptr = test_argv; gint test_argc = G_N_ELEMENTS (test_argv); BT_TEST_SUITE_E ("BticDevice", bt_device); BT_TEST_SUITE_T_E ("Btic", bt_ic); BT_TEST_SUITE_E ("BticLearn", bt_learn); BT_TEST_SUITE_E ("BticRegistry", bt_registry); #if USE_ALSA BT_TEST_SUITE_E ("BticAseqDiscoverer", bt_aseq_discoverer); #endif /* start the test run */ gint main (gint argc, gchar ** argv) { gint nf; SRunner *sr; setup_log_base (argc, argv); setup_log_capture (); gst_init (NULL, NULL); bt_check_init (); btic_init (&test_argc, &test_argvptr); sr = srunner_create (bt_ic_suite ()); srunner_add_suite (sr, bt_device_suite ()); srunner_add_suite (sr, bt_learn_suite ()); srunner_add_suite (sr, bt_registry_suite ()); #if USE_ALSA srunner_add_suite (sr, bt_aseq_discoverer_suite ()); #endif srunner_run_all (sr, CK_NORMAL); nf = srunner_ntests_failed (sr); srunner_free (sr); collect_logs (nf == 0); //g_mem_profile(); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } buzztrax-0.10.2/tests/bt-test-plugin.c0000644042355400116100000004067212466575707020202 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2006 Buzztrax team * * gstreamer test plugin for unit tests * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ /** * SECTION::bttestplugin: * @short_description: test gstreamer element for unit tests * * Two stub elements for unit-tests. The Polyphonic elemnt use the monophonic * one for its voices. Thus prefix the parameter names with 'g-' for 'global' * (in the monophonic class) and 'v-' for 'voice' in the poly class. */ /* TODO(ensonic): * - implement the property-meta iface in the test machines * - add a trigger param to the machines * - the trigger param counts how often it gets triggered * - the count is exposed as a read-only param */ #include "bt-check.h" #include "gst/childbin.h" #include "gst/tempo.h" //-- enums #define BT_TYPE_TEST_SPARSE_ENUM (bt_test_sparse_enum_get_type()) static GType bt_test_sparse_enum_get_type (void) { static GType type = 0; static const GEnumValue enums[] = { {BT_TEST_SPARSE_ENUM_ZERO, "Zero", "zero"}, {BT_TEST_SPARSE_ENUM_ONE, "One", "one"}, {BT_TEST_SPARSE_ENUM_TEN, "Ten", "ten"}, {BT_TEST_SPARSE_ENUM_TWENTY, "Twenty", "twenty"}, {BT_TEST_SPARSE_ENUM_TWENTY_ONE, "TwentyOne", "twenty-one"}, {BT_TEST_SPARSE_ENUM_TWO_HUNDRED, "TwoHundred", "two-hundred"}, {0, NULL, NULL}, }; if (G_UNLIKELY (!type)) { type = g_enum_register_static ("BtTestSparseEnum", enums); } return type; } //-- property ids enum { PROP_BPM = 1, // tempo iface PROP_TPB, PROP_STPT, PROP_VOICES, // child bin iface PROP_ULONG, PROP_DOUBLE, PROP_SWITCH, PROP_NOTE, PROP_SPARSE_ENUM, PROP_WAVE, PROP_COUNT }; //-- pad templates /* static GstStaticPadTemplate sink_pad_template = GST_STATIC_PAD_TEMPLATE ( "sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("ANY") ); */ static GstStaticPadTemplate src_pad_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("ANY") ); //-- tempo interface implementation static void bt_test_tempo_change_tempo (GstBtTempo * tempo, glong beats_per_minute, glong ticks_per_beat, glong subticks_per_tick) { GST_INFO ("changing tempo to %lu BPM %lu TPB %lu STPT", beats_per_minute, ticks_per_beat, subticks_per_tick); } static void bt_test_tempo_interface_init (gpointer g_iface, gpointer iface_data) { GstBtTempoInterface *iface = g_iface; iface->change_tempo = bt_test_tempo_change_tempo; } //-- child proxy interface implementation static GObject * bt_test_child_proxy_get_child_by_index (GstChildProxy * child_proxy, guint index) { GST_INFO ("machine %p, getting child %u of %lu", child_proxy, index, BT_TEST_POLY_SOURCE (child_proxy)->num_voices); g_return_val_if_fail (index < BT_TEST_POLY_SOURCE (child_proxy)->num_voices, NULL); return (g_object_ref (g_list_nth_data (BT_TEST_POLY_SOURCE (child_proxy)->voices, index))); } static guint bt_test_child_proxy_get_children_count (GstChildProxy * child_proxy) { return (BT_TEST_POLY_SOURCE (child_proxy)->num_voices); } static void bt_test_child_proxy_interface_init (gpointer g_iface, gpointer iface_data) { GstChildProxyInterface *iface = g_iface; iface->get_child_by_index = bt_test_child_proxy_get_child_by_index; iface->get_children_count = bt_test_child_proxy_get_children_count; } //-- test_no_arg_mono_source G_DEFINE_TYPE (BtTestNoArgMonoSource, bt_test_no_arg_mono_source, GST_TYPE_ELEMENT); static void bt_test_no_arg_mono_source_init (BtTestNoArgMonoSource * self) { GstElementClass *klass = GST_ELEMENT_GET_CLASS (self); GstPad *src_pad = gst_pad_new_from_template (gst_element_class_get_pad_template (klass, "src"), "src"); gst_element_add_pad (GST_ELEMENT (self), src_pad); } static void bt_test_no_arg_mono_source_class_init (BtTestNoArgMonoSourceClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_pad_template)); gst_element_class_set_static_metadata (element_class, "Monophonic source for unit tests with 0 properties", "Source/Audio", "Use in unit tests", "Stefan Sauer "); } //-- test_mono_source G_DEFINE_TYPE_WITH_CODE (BtTestMonoSource, bt_test_mono_source, GST_TYPE_ELEMENT, G_IMPLEMENT_INTERFACE (GSTBT_TYPE_TEMPO, bt_test_tempo_interface_init)); static void bt_test_mono_source_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { BtTestMonoSource *self = BT_TEST_MONO_SOURCE (object); switch (property_id) { case PROP_ULONG: g_value_set_ulong (value, self->ulong_val); break; case PROP_DOUBLE: g_value_set_double (value, self->double_val); break; case PROP_SWITCH: g_value_set_boolean (value, self->switch_val); break; case PROP_SPARSE_ENUM: g_value_set_enum (value, self->sparse_enum_val); break; case PROP_WAVE: g_value_set_enum (value, self->wave_val); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void bt_test_mono_source_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { BtTestMonoSource *self = BT_TEST_MONO_SOURCE (object); switch (property_id) { case PROP_ULONG: self->ulong_val = g_value_get_ulong (value); break; case PROP_DOUBLE: self->double_val = g_value_get_double (value); break; case PROP_SWITCH: self->switch_val = g_value_get_boolean (value); break; case PROP_NOTE: self->note_val = g_value_get_enum (value); break; case PROP_SPARSE_ENUM: self->sparse_enum_val = g_value_get_enum (value); break; case PROP_WAVE: self->wave_val = g_value_get_enum (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void bt_test_mono_source_init (BtTestMonoSource * self) { GstElementClass *klass = GST_ELEMENT_GET_CLASS (self); GstPad *src_pad = gst_pad_new_from_template (gst_element_class_get_pad_template (klass, "src"), "src"); gst_element_add_pad (GST_ELEMENT (self), src_pad); } static void bt_test_mono_source_class_init (BtTestMonoSourceClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gobject_class->set_property = bt_test_mono_source_set_property; gobject_class->get_property = bt_test_mono_source_get_property; g_object_class_override_property (gobject_class, PROP_BPM, "beats-per-minute"); g_object_class_override_property (gobject_class, PROP_TPB, "ticks-per-beat"); g_object_class_override_property (gobject_class, PROP_STPT, "subticks-per-tick"); g_object_class_install_property (gobject_class, PROP_ULONG, g_param_spec_ulong ("g-ulong", "ulong prop", "ulong number parameter for the test_mono_source", 0, G_MAXULONG, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DOUBLE, g_param_spec_double ("g-double", "double prop", "double number parameter for the test_mono_source", -1000.0, 1000.0, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_SWITCH, g_param_spec_boolean ("g-switch", "switch prop", "switch parameter for the test_mono_source", FALSE, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_NOTE, g_param_spec_enum ("g-note", "note prop", "note parameter for the test_mono_source", GSTBT_TYPE_NOTE, GSTBT_NOTE_NONE, G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_SPARSE_ENUM, g_param_spec_enum ("g-sparse-enum", "sparse enum prop", "sparse enum parameter for the test_mono_source", BT_TYPE_TEST_SPARSE_ENUM, BT_TEST_SPARSE_ENUM_ZERO, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_WAVE, g_param_spec_enum ("g-wave", "wave", "wave parameter for the test_mono_source", GSTBT_TYPE_WAVE_INDEX, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_pad_template)); gst_element_class_set_static_metadata (element_class, "Monophonic source for unit tests", "Source/Audio", "Use in unit tests", "Stefan Kost "); } //-- test_poly_source G_DEFINE_TYPE_WITH_CODE (BtTestPolySource, bt_test_poly_source, GST_TYPE_ELEMENT, G_IMPLEMENT_INTERFACE (GSTBT_TYPE_TEMPO, bt_test_tempo_interface_init) G_IMPLEMENT_INTERFACE (GST_TYPE_CHILD_PROXY, bt_test_child_proxy_interface_init) G_IMPLEMENT_INTERFACE (GSTBT_TYPE_CHILD_BIN, NULL)); static GObjectClass *poly_parent_class = NULL; static void bt_test_poly_source_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { BtTestPolySource *self = BT_TEST_POLY_SOURCE (object); switch (property_id) { case PROP_VOICES: g_value_set_ulong (value, self->num_voices); break; case PROP_ULONG: g_value_set_ulong (value, self->ulong_val); break; case PROP_DOUBLE: g_value_set_double (value, self->double_val); break; case PROP_SWITCH: g_value_set_boolean (value, self->switch_val); break; case PROP_SPARSE_ENUM: g_value_set_enum (value, self->sparse_enum_val); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void bt_test_poly_source_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { BtTestPolySource *self = BT_TEST_POLY_SOURCE (object); BtTestMonoSource *voice; gulong i, num_voices; switch (property_id) { case PROP_VOICES: num_voices = self->num_voices; self->num_voices = g_value_get_ulong (value); GST_INFO ("machine %p, changing voices from %lu to %lu", object, num_voices, self->num_voices); if (self->num_voices > num_voices) { for (i = num_voices; i < self->num_voices; i++) { voice = g_object_new (BT_TYPE_TEST_MONO_SOURCE, NULL); self->voices = g_list_append (self->voices, voice); GST_DEBUG (" adding voice %" G_OBJECT_REF_COUNT_FMT, G_OBJECT_LOG_REF_COUNT (voice)); gst_object_set_parent (GST_OBJECT (voice), GST_OBJECT (self)); GST_DEBUG (" parented voice %" G_OBJECT_REF_COUNT_FMT, G_OBJECT_LOG_REF_COUNT (voice)); } } else if (self->num_voices < num_voices) { for (i = num_voices; i > self->num_voices; i--) { voice = g_list_nth_data (self->voices, (i - 1)); self->voices = g_list_remove (self->voices, voice); gst_object_unparent (GST_OBJECT (voice)); } } break; case PROP_ULONG: self->ulong_val = g_value_get_ulong (value); break; case PROP_DOUBLE: self->double_val = g_value_get_double (value); break; case PROP_SWITCH: self->switch_val = g_value_get_boolean (value); break; case PROP_NOTE: self->note_val = g_value_get_enum (value); break; case PROP_SPARSE_ENUM: self->sparse_enum_val = g_value_get_enum (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void bt_test_poly_source_finalize (GObject * object) { BtTestPolySource *self = BT_TEST_POLY_SOURCE (object); GST_DEBUG (" !!! self=%p", object); if (self->voices) { GList *node; for (node = self->voices; node; node = g_list_next (node)) { GST_DEBUG (" free voice %" G_OBJECT_REF_COUNT_FMT, G_OBJECT_LOG_REF_COUNT (node->data)); gst_object_unparent (node->data); node->data = NULL; } g_list_free (self->voices); self->voices = NULL; } G_OBJECT_CLASS (poly_parent_class)->finalize (object); } static void bt_test_poly_source_init (BtTestPolySource * self) { GstElementClass *klass = GST_ELEMENT_GET_CLASS (self); GstPad *src_pad = gst_pad_new_from_template (gst_element_class_get_pad_template (klass, "src"), "src"); gst_element_add_pad (GST_ELEMENT (self), src_pad); } static void bt_test_poly_source_class_init (BtTestPolySourceClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); poly_parent_class = g_type_class_peek_parent (klass); gobject_class->set_property = bt_test_poly_source_set_property; gobject_class->get_property = bt_test_poly_source_get_property; //gobject_class->dispose = bt_test_poly_source_dispose; gobject_class->finalize = bt_test_poly_source_finalize; g_object_class_override_property (gobject_class, PROP_BPM, "beats-per-minute"); g_object_class_override_property (gobject_class, PROP_TPB, "ticks-per-beat"); g_object_class_override_property (gobject_class, PROP_STPT, "subticks-per-tick"); g_object_class_override_property (gobject_class, PROP_VOICES, "children"); g_object_class_install_property (gobject_class, PROP_ULONG, g_param_spec_ulong ("v-ulong", "ulong prop", "ulong number parameter for the test_poly_source", 0, G_MAXULONG, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); g_object_class_install_property (gobject_class, PROP_DOUBLE, g_param_spec_double ("v-double", "double prop", "double number parameter for the test_poly_source", -1000.0, 1000.0, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); g_object_class_install_property (gobject_class, PROP_SWITCH, g_param_spec_boolean ("v-switch", "switch prop", "switch parameter for the test_poly_source", FALSE, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); g_object_class_install_property (gobject_class, PROP_NOTE, g_param_spec_enum ("v-note", "note prop", "note parameter for the test_poly_source", GSTBT_TYPE_NOTE, GSTBT_NOTE_NONE, G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_SPARSE_ENUM, g_param_spec_enum ("v-sparse-enum", "sparse enum prop", "sparse enum parameter for the test_poly_source", BT_TYPE_TEST_SPARSE_ENUM, BT_TEST_SPARSE_ENUM_ZERO, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_pad_template)); gst_element_class_set_static_metadata (element_class, "Polyphonic source for unit tests", "Source/Audio", "Use in unit tests", "Stefan Kost "); } //-- test_mono_processor //-- test_poly_processor //-- plugin handling gboolean bt_test_plugin_init (GstPlugin * plugin) { //GST_INFO("registering unit test plugin"); gst_element_register (plugin, "buzztrax-test-no-arg-mono-source", GST_RANK_NONE, BT_TYPE_TEST_NO_ARG_MONO_SOURCE); gst_element_register (plugin, "buzztrax-test-mono-source", GST_RANK_NONE, BT_TYPE_TEST_MONO_SOURCE); gst_element_register (plugin, "buzztrax-test-poly-source", GST_RANK_NONE, BT_TYPE_TEST_POLY_SOURCE); /* gst_element_register (plugin, "buzztrax-test-mono-processor", GST_RANK_NONE, BT_TYPE_TEST_MONO_PROCESSOR); gst_element_register (plugin, "buzztrax-test-poly-processor", GST_RANK_NONE, BT_TYPE_TEST_POLY_PROCESSOR); */ return TRUE; } buzztrax-0.10.2/tests/bt-check.c0000644042355400116100000011250312640575004016755 0ustar00ensoniceng00000000000000/* Buzztrax * Copyright (C) 2006 Buzztrax team * * testing helpers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ /** * SECTION::btcheck: * @short_description: testing helpers * * Contains plumbing for selective test execution. One can set BT_CHECKS to a * glob expression matching one or more tests to run. * * The test setup installs special glib log handlers that output glib messages * to the gstreamer log stream. It also installs gstreamer log handlers that * separate log messer per test-suite and test. The logs are written by default * to $TMPDIR/<test-cmd>/<suite>.log and * $TMPDIR/<test-cmd>/<suite>/<test>.<run>log. The 'run' * field is the index for loop-tests and 0 for non-loop tests. */ #include #include #include #include //-- glib #include #include "bt-check.h" #ifdef HAVE_SETRLIMIT #include #include #endif /* this is needed for a hack to make glib log lines gst-debug log alike * Using gst_debug_log would require us to set debug categories for each GLib * log domain. */ static GstClockTime _priv_bt_info_start_time; /* initialized from BT_CHECKS */ static gchar **funcs = NULL; // must be called after gst_init(), see comment in setup_log_capture() void bt_check_init (void) { _priv_bt_info_start_time = gst_util_get_timestamp (); // disable logging from gstreamer itself gst_debug_remove_log_function (gst_debug_log_default); // set e.g. GST_DEBUG="bt-core:DEBUG" if more details are needed if (gst_debug_get_default_threshold () < GST_LEVEL_INFO) { gst_debug_set_default_threshold (GST_LEVEL_INFO); } // register our plugins extern gboolean bt_test_plugin_init (GstPlugin * plugin); gst_plugin_register_static (GST_VERSION_MAJOR, GST_VERSION_MINOR, "bt-test", "buzztrax test plugin - several unit test support elements", bt_test_plugin_init, VERSION, "LGPL", PACKAGE, PACKAGE_NAME, "http://www.buzztrax.org"); GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "bt-check", 0, "music production environment / unit tests"); const gchar *checks = g_getenv ("BT_CHECKS"); if (BT_IS_STRING (checks)) { // we're leaking this funcs = g_strsplit (checks, ",", -1); } #ifdef HAVE_SETRLIMIT // only fork mode limit cpu/mem usage const gchar *mode = g_getenv ("CK_FORK"); if (!mode || strcmp (mode, "no")) { struct rlimit rl; rl.rlim_max = RLIM_INFINITY; // limit cpu in seconds rl.rlim_cur = 20; if (setrlimit (RLIMIT_CPU, &rl) < 0) perror ("setrlimit(RLIMIT_CPU) failed"); // limit process’s data size in bytes // if we get failing tests and "mmap() failed: Cannot allocate memory" // this limit needs to be increased rl.rlim_cur = 515 * 1024 * 1024; // 0.5GB if (setrlimit (RLIMIT_DATA, &rl) < 0) perror ("setrlimit(RLIMIT_DATA) failed"); } #endif } /* * error trapping: * Check for certain log-output. */ static gboolean __check_error_trapped = FALSE; static gchar *__check_method = NULL; static gchar *__check_test = NULL; static GLogLevelFlags __fatal_mask = 0; #define FALLBACK_LOG_FILE_NAME \ G_DIR_SEPARATOR_S "tmp" G_DIR_SEPARATOR_S "" PACKAGE_NAME ".log" // set during setup_log_*() and leaked :/ static const gchar *__log_root = NULL; // /tmp static gchar *__log_base = NULL; // the test binary static gchar *__log_case = NULL; // the test case static const gchar *__log_test = NULL; // the actual test static gchar *__log_file_name = NULL; /* * Install a new error trap for function and output. */ void check_init_error_trapp (gchar * method, gchar * test) { __check_method = method; __check_test = test; __check_error_trapped = FALSE; // in case the test suite made warnings and criticals fatal __fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK); } /* * Check if the monitored log-output has been emitted. * If GStreamer has not been compiled using --gst-enable-debug, this returns * %TRUE as there is no logoutput at all. */ gboolean check_has_error_trapped (void) { g_log_set_always_fatal (__fatal_mask); #if !defined(GST_DISABLE_GST_DEBUG) && defined(USE_DEBUG) return __check_error_trapped; #else return TRUE; #endif } gboolean _check_log_contains (gchar * text) { FILE *logfile; gchar line[2000]; gboolean res = FALSE; if (!(logfile = fopen (__log_file_name, "r"))) return FALSE; while (!feof (logfile)) { if (fgets (line, 1999, logfile)) { if (strstr (line, text)) { res = TRUE; break; } } } fclose (logfile); return res; } /* * log helper: * Helpers for handling glib log-messages. */ static void check_print_handler (const gchar * const message) { if (message) { FILE *logfile; gboolean add_nl = FALSE; guint sl = strlen (message); gboolean use_stdout = FALSE; //-- check if messages has no newline if ((sl > 1) && (message[sl - 1] != '\n')) add_nl = TRUE; //-- check message contents if (__check_method && (strstr (message, __check_method) != NULL) && __check_test && (strstr (message, __check_test) != NULL)) __check_error_trapped = TRUE; else if (__check_method && (strstr (message, __check_method) != NULL) && !__check_test) __check_error_trapped = TRUE; else if (__check_test && (strstr (message, __check_test) != NULL) && !__check_method) __check_error_trapped = TRUE; if ((logfile = fopen (__log_file_name, "a")) || (logfile = fopen (__log_file_name, "w"))) { use_stdout |= (fwrite (message, sl, 1, logfile) != 1); if (add_nl) use_stdout |= (fwrite ("\n", 1, 1, logfile) != 1); use_stdout |= (fclose (logfile) < 0); } else { use_stdout = TRUE; } if (use_stdout) { /* Fall back to console output if unable to open file */ printf ("%s", message); if (add_nl) putchar ('\n'); } } } /* static void check_critical_log_handler(const gchar * const log_domain, const GLogLevelFlags log_level, const gchar * const message, gpointer const user_data) { printf(">>> CRITICAL: %s\n",message); //-- check message contents if(__check_method && (strstr(message,__check_method)!=NULL) && __check_test && (strstr(message,__check_test)!=NULL)) __check_error_trapped=TRUE; else if(__check_method && (strstr(message,__check_method)!=NULL) && !__check_test) __check_error_trapped=TRUE; else if(__check_test && (strstr(message,__check_test)!=NULL) && !__check_method) __check_error_trapped=TRUE; } */ #if defined (GLIB_SIZEOF_VOID_P) && GLIB_SIZEOF_VOID_P == 8 #define PTR_FMT "14p" #else #define PTR_FMT "10p" #endif #define PID_FMT "5d" static void check_log_handler (const gchar * const log_domain, const GLogLevelFlags log_level, const gchar * const message, gpointer const user_data) { gchar *msg, *level; GstClockTime elapsed; //-- check message contents if (__check_method && (strstr (message, __check_method) != NULL) && __check_test && (strstr (message, __check_test) != NULL)) __check_error_trapped = TRUE; else if (__check_method && (strstr (message, __check_method) != NULL) && !__check_test) __check_error_trapped = TRUE; else if (__check_test && (strstr (message, __check_test) != NULL) && !__check_method) __check_error_trapped = TRUE; //-- format switch (log_level & G_LOG_LEVEL_MASK) { case G_LOG_LEVEL_ERROR: level = "ERROR"; break; case G_LOG_LEVEL_CRITICAL: level = "CRITICAL"; break; case G_LOG_LEVEL_WARNING: level = "WARNING"; break; case G_LOG_LEVEL_MESSAGE: level = "MESSAGE"; break; case G_LOG_LEVEL_INFO: level = "INFO"; break; case G_LOG_LEVEL_DEBUG: level = "DEBUG"; break; default: level = "???"; break; } elapsed = GST_CLOCK_DIFF (_priv_bt_info_start_time, gst_util_get_timestamp ()); msg = g_alloca (85 + strlen (log_domain) + strlen (level) + strlen (message)); g_sprintf (msg, "%" GST_TIME_FORMAT " %" PID_FMT " %" PTR_FMT " %-7s %20s ::: %s", GST_TIME_ARGS (elapsed), getpid (), g_thread_self (), level, log_domain, message); check_print_handler (msg); } #ifndef GST_DISABLE_GST_DEBUG /* *INDENT-OFF* */ static void check_gst_log_handler (GstDebugCategory * category, GstDebugLevel level, const gchar * file, const gchar * function, gint line, GObject * object, GstDebugMessage * _message, gpointer data) G_GNUC_NO_INSTRUMENT; /* *INDENT-ON* */ static void check_gst_log_handler (GstDebugCategory * category, GstDebugLevel level, const gchar * file, const gchar * function, gint line, GObject * object, GstDebugMessage * _message, gpointer data) { const gchar *message = gst_debug_message_get (_message); gchar *msg, *obj_str; const gchar *level_str, *cat_str; GstClockTime elapsed; //-- check message contents if (__check_method && (strstr (function, __check_method) != NULL) && __check_test && (strstr (message, __check_test) != NULL)) __check_error_trapped = TRUE; else if (__check_method && (strstr (function, __check_method) != NULL) && !__check_test) __check_error_trapped = TRUE; else if (__check_test && (strstr (message, __check_test) != NULL) && !__check_method) __check_error_trapped = TRUE; if (level > gst_debug_category_get_threshold (category)) return; elapsed = GST_CLOCK_DIFF (_priv_bt_info_start_time, gst_util_get_timestamp ()); level_str = gst_debug_level_get_name (level); cat_str = gst_debug_category_get_name (category); if (object) { if (GST_IS_OBJECT (object)) { obj_str = g_strdup_printf ("<%s,%" G_OBJECT_REF_COUNT_FMT ">", GST_OBJECT_NAME (object), G_OBJECT_LOG_REF_COUNT (object)); } else if (GST_IS_OBJECT (object)) { obj_str = g_strdup_printf ("<%s,%" G_OBJECT_REF_COUNT_FMT ">", G_OBJECT_TYPE_NAME (object), G_OBJECT_LOG_REF_COUNT (object)); } else { obj_str = g_strdup_printf ("%p", object); } } else { obj_str = g_strdup (""); } msg = g_alloca (95 + strlen (cat_str) + strlen (level_str) + strlen (message) + strlen (file) + strlen (function) + strlen (obj_str)); g_sprintf (msg, "%" GST_TIME_FORMAT " %" PID_FMT " %" PTR_FMT " %-7s %20s %s:%d:%s:%s %s", GST_TIME_ARGS (elapsed), getpid (), g_thread_self (), level_str, cat_str, file, line, function, obj_str, message); g_free (obj_str); check_print_handler (msg); } #endif static void reset_log (gchar * path, gchar * file) { if (path) { g_mkdir_with_parents (path, 0755); } g_unlink (file); } /* * setup_log_base: * @argc: command line argument count received in main() * @argv: command line arguments received in main() * * Initializes the logoutput channel. */ void setup_log_base (gint argc, gchar ** argv) { gchar *log, *path; __log_root = g_get_tmp_dir (); // get basename from argv[0]; -> lt-bt_edit if ((log = g_path_get_basename (argv[0]))) { // cut libtool prefix __log_base = g_strdup (&log[3]); g_free (log); } else { fprintf (stderr, "can't get basename from: '%s'\n", argv[0]); fflush (stderr); __log_base = PACKAGE_NAME; } log = g_strdup_printf ("%s.log", __log_base); //fprintf(stderr,"logname : '%s'\n",log);fflush(stderr); g_free (__log_file_name); if (!(__log_file_name = g_build_filename (__log_root, log, NULL))) { fprintf (stderr, "can't build logname from '%s','%s'\n", __log_root, log); fflush (stderr); __log_file_name = g_strdup (FALLBACK_LOG_FILE_NAME); } g_free (log); // ensure directory and reset log file path = g_build_filename (__log_root, __log_base, NULL); reset_log (path, __log_file_name); g_free (path); } void setup_log_case (const gchar * file_name) { gchar *log, *path; g_free (__log_case); if ((log = g_path_get_basename (file_name))) { // cut ".c" extension log[strlen (log) - 2] = '\0'; __log_case = log; } else { fprintf (stderr, "can't get basename from: '%s'\n", file_name); fflush (stderr); __log_case = g_strdup ("case"); } log = g_strdup_printf ("%s.log", __log_case); //fprintf(stderr,"logname : '%s'\n",log);fflush(stderr); g_free (__log_file_name); if (!(__log_file_name = g_build_filename (__log_root, __log_base, log, NULL))) { fprintf (stderr, "can't build logname from '%s','%s,'%s'\n", __log_root, __log_base, log); fflush (stderr); __log_file_name = g_strdup (FALLBACK_LOG_FILE_NAME); } g_free (log); // ensure directory and reset log file path = g_build_filename (__log_root, __log_base, __log_case, NULL); reset_log (path, __log_file_name); g_free (path); } void setup_log_test (const gchar * func_name, gint i) { static gchar *case_log_file_name = NULL; gchar *log; __log_test = func_name; if (func_name == NULL) { g_free (__log_file_name); __log_file_name = case_log_file_name; return; } log = g_strdup_printf ("%s.%d.log", __log_test, i); //fprintf(stderr,"logname : '%s'\n",log);fflush(stderr); case_log_file_name = __log_file_name; if (!(__log_file_name = g_build_filename (__log_root, __log_base, __log_case, log, NULL))) { fprintf (stderr, "can't build logname from '%s','%s,'%s,'%s'\n", __log_root, __log_base, __log_case, log); fflush (stderr); __log_file_name = g_strdup (FALLBACK_LOG_FILE_NAME); } g_free (log); // reset log file reset_log (NULL, __log_file_name); } /* * setup_log_capture: * * Installs own logging handlers to capture and channelize all diagnostic output * during testing. */ void setup_log_capture (void) { (void) g_log_set_default_handler (check_log_handler, NULL); (void) g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, check_log_handler, NULL); (void) g_log_set_handler ("buzztrax", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, check_log_handler, NULL); (void) g_log_set_handler ("GStreamer", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, check_log_handler, NULL); (void) g_log_set_handler ("GLib", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, check_log_handler, NULL); (void) g_log_set_handler ("GLib-GObject", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, check_log_handler, NULL); (void) g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, check_log_handler, NULL); (void) g_set_printerr_handler (check_print_handler); #ifndef GST_DISABLE_GST_DEBUG // gst_init() will add the log handler unconditionally: // - if we do this before gst_init() we don't actually remove the def log // handler // - if we do this after gst_init() we get debug output from gst_init() itself // on the default handler // - we want a flag to tell gst to not register the default handler // gst_debug_set_active() is not the same // A workaround for now is to set GST_DEBUG_FILE=/dev/null which our handler // is not using and doing the // gst_debug_remove_log_function (gst_debug_log_default); // after gst_init() from bt_check_init(). gst_debug_add_log_function (check_gst_log_handler, NULL, NULL); #endif } void collect_logs (gboolean no_failures) { gchar *cmd; if (!g_getenv ("BT_ARCHIVE_LOGS")) return; if (no_failures) { cmd = g_strdup_printf ("touch ./%s.tar.bz2", __log_base); } else { cmd = g_strdup_printf ("tar cpjf ./%s.tar.bz2 %s/%s", __log_base, __log_root, __log_base); } g_spawn_command_line_sync (cmd, NULL, NULL, NULL, NULL); g_free (cmd); } /* * file output tests: * * Check if certain text has been outputted to a (text)file. Pass either a * file-handle or a file_name. */ gboolean check_file_contains_str (FILE * input_file, gchar * input_file_name, gchar * str) { gchar read_str[1024]; gboolean need_close = FALSE; gboolean ret = FALSE; g_assert (input_file || input_file_name); g_assert (str); if (!input_file) { input_file = fopen (input_file_name, "rb"); need_close = TRUE; } else { fseek (input_file, 0, SEEK_SET); } if (!input_file) { return ret; } while (!feof (input_file)) { if (!fgets (read_str, 1023, input_file)) { break; } //GST_LOG("[%s]",read_str); read_str[1023] = '\0'; if (strstr (read_str, str)) { ret = TRUE; break; } } if (need_close) { fclose (input_file); } return ret; } // runtime test selection via env-var BT_CHECKS // injected via out tcase_add_test override // we could do this also for suite_add_tcase and srunner_add_suite // maybe by treating the env-var as :: gboolean _bt_check_run_test_func (const gchar * func_name) { gchar **f; /* no filter specified => run all checks */ if (!funcs) return TRUE; /* only run specified functions, regexps would be nice */ for (f = funcs; f != NULL && *f != NULL; ++f) { if (g_pattern_match_simple (*f, func_name)) { return TRUE; } } return FALSE; } // main loop static gboolean _check_end_main_loop (gpointer user_data) { g_main_loop_quit ((GMainLoop *) user_data); return FALSE; } void check_run_main_loop_for_usec (gulong usec) { GMainLoop *loop = g_main_loop_new (NULL, FALSE); g_timeout_add_full (G_PRIORITY_HIGH, usec / 1000, _check_end_main_loop, loop, NULL); g_main_loop_run (loop); g_main_loop_unref (loop); } static void _check_message_received (GstBus * bus, GstMessage * message, gpointer user_data) { switch (GST_MESSAGE_TYPE (message)) { case GST_MESSAGE_ERROR: GST_WARNING_OBJECT (GST_MESSAGE_SRC (message), "error: %" GST_PTR_FORMAT, message); if (g_main_loop_is_running (user_data)) g_main_loop_quit (user_data); break; case GST_MESSAGE_STATE_CHANGED: GST_DEBUG_OBJECT (GST_MESSAGE_SRC (message), "state-changed: %" GST_PTR_FORMAT, message); if (GST_IS_PIPELINE (GST_MESSAGE_SRC (message))) { GstState oldstate, newstate, pending; gst_message_parse_state_changed (message, &oldstate, &newstate, &pending); switch (GST_STATE_TRANSITION (oldstate, newstate)) { case GST_STATE_CHANGE_PAUSED_TO_PLAYING: if (g_main_loop_is_running (user_data)) g_main_loop_quit (user_data); break; default: break; } } break; case GST_MESSAGE_EOS: GST_DEBUG_OBJECT (GST_MESSAGE_SRC (message), "eos: %" GST_PTR_FORMAT, message); if (g_main_loop_is_running (user_data)) g_main_loop_quit (user_data); default: GST_WARNING ("unexpected messges: %s", GST_MESSAGE_TYPE_NAME (message)); } } static void check_run_main_loop_until_msg_or_error (BtSong * song, const gchar * msg) { GstStateChangeReturn sret; GstState state, pending; GMainLoop *main_loop = g_main_loop_new (NULL, FALSE); GstElement *bin = (GstElement *) check_gobject_get_object_property (song, "bin"); GstBus *bus = gst_element_get_bus (bin); gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); g_signal_connect (bus, "message::error", G_CALLBACK (_check_message_received), (gpointer) main_loop); g_signal_connect (bus, msg, G_CALLBACK (_check_message_received), (gpointer) main_loop); sret = gst_element_get_state (bin, &state, &pending, G_GUINT64_CONSTANT (0)); gst_object_unref (bin); GST_INFO_OBJECT (song, "running main_loop"); if (sret != GST_STATE_CHANGE_SUCCESS) { g_main_loop_run (main_loop); } gst_bus_remove_signal_watch (bus); g_signal_handlers_disconnect_matched (bus, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, (gpointer) main_loop); gst_object_unref (bus); g_main_loop_unref (main_loop); GST_INFO_OBJECT (song, "finished main_loop"); } void check_run_main_loop_until_playing_or_error (BtSong * song) { check_run_main_loop_until_msg_or_error (song, "message::state-changed"); } void check_run_main_loop_until_eos_or_error (BtSong * song) { check_run_main_loop_until_msg_or_error (song, "message::eos"); } // gstreamer registry void check_remove_gst_feature (gchar * feature_name) { GstRegistry *registry = gst_registry_get (); GstPluginFeature *feature; if ((feature = gst_registry_lookup_feature (registry, feature_name))) { gst_registry_remove_feature (registry, feature); gst_object_unref (feature); } else { GST_WARNING ("feature not found"); } } // test file access const gchar * check_get_test_song_path (const gchar * name) { static gchar path[2048]; // TESTSONGDIR gets defined in Makefile.am and is an absolute path g_snprintf (path, 2047, TESTSONGDIR "" G_DIR_SEPARATOR_S "%s", name); GST_INFO ("build path: '%s'", path); return (path); } // test plugins void check_register_plugins (void) { // this is a hack to persuade the linker to not optimize out these :( if (!bt_test_mono_source_get_type ()) g_print ("registering mono-src faild"); } // property tests static gboolean check_read_int_param (GParamSpec * paramspec, GObject * toCheck) { gint check; gboolean ret = FALSE; g_object_get (toCheck, paramspec->name, &check, NULL); if ((check >= G_PARAM_SPEC_INT (paramspec)->minimum) && (check <= G_PARAM_SPEC_INT (paramspec)->maximum)) { ret = TRUE; } else { GST_WARNING ("property read range check failed for : %s : %d <= %d <= %d", paramspec->name, G_PARAM_SPEC_INT (paramspec)->minimum, check, G_PARAM_SPEC_INT (paramspec)->maximum); } return ret; } static gboolean check_read_uint_param (GParamSpec * paramspec, GObject * toCheck) { guint check; gboolean ret = FALSE; g_object_get (toCheck, paramspec->name, &check, NULL); if ((check >= G_PARAM_SPEC_UINT (paramspec)->minimum) && (check <= G_PARAM_SPEC_UINT (paramspec)->maximum)) { ret = TRUE; } else { GST_WARNING ("property read range check failed for : %s : %u <= %u <= %u", paramspec->name, G_PARAM_SPEC_UINT (paramspec)->minimum, check, G_PARAM_SPEC_UINT (paramspec)->maximum); } return ret; } static gboolean check_read_int64_param (GParamSpec * paramspec, GObject * toCheck) { gint64 check; gboolean ret = FALSE; g_object_get (toCheck, paramspec->name, &check, NULL); if ((check >= G_PARAM_SPEC_INT64 (paramspec)->minimum) && (check <= G_PARAM_SPEC_INT64 (paramspec)->maximum)) { ret = TRUE; } else { GST_WARNING ("property read range check failed for : %s", paramspec->name); } return ret; } static gboolean check_read_long_param (GParamSpec * paramspec, GObject * toCheck) { glong check; gboolean ret = FALSE; g_object_get (toCheck, paramspec->name, &check, NULL); if ((check >= G_PARAM_SPEC_LONG (paramspec)->minimum) && (check <= G_PARAM_SPEC_LONG (paramspec)->maximum)) { ret = TRUE; } else { GST_WARNING ("property read range check failed for : %s : %ld <= %ld <= %ld", paramspec->name, G_PARAM_SPEC_LONG (paramspec)->minimum, check, G_PARAM_SPEC_LONG (paramspec)->maximum); } return ret; } static gboolean check_read_ulong_param (GParamSpec * paramspec, GObject * toCheck) { gulong check; gboolean ret = FALSE; g_object_get (toCheck, paramspec->name, &check, NULL); if ((check >= G_PARAM_SPEC_ULONG (paramspec)->minimum) && (check <= G_PARAM_SPEC_ULONG (paramspec)->maximum)) { ret = TRUE; } else { GST_WARNING ("property read range check failed for : %s : %lu <= %lu <= %lu", paramspec->name, G_PARAM_SPEC_ULONG (paramspec)->minimum, check, G_PARAM_SPEC_ULONG (paramspec)->maximum); } return ret; } static gboolean check_read_property (GParamSpec * paramspec, GObject * toCheck) { GType param_type; gboolean ret = FALSE; param_type = G_PARAM_SPEC_TYPE (paramspec); if (param_type == G_TYPE_PARAM_INT) { ret = check_read_int_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_UINT) { ret = check_read_uint_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_INT64) { ret = check_read_int64_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_LONG) { ret = check_read_long_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_ULONG) { ret = check_read_ulong_param (paramspec, toCheck); } else { // no check performed ret = TRUE; } return ret; } static gboolean check_write_int_param (GParamSpec * paramspec, GObject * toCheck) { gint check1, check2; check1 = G_PARAM_SPEC_INT (paramspec)->minimum; g_object_set (toCheck, paramspec->name, check1, NULL); check2 = G_PARAM_SPEC_INT (paramspec)->maximum; g_object_set (toCheck, paramspec->name, check2, NULL); return TRUE; } static gboolean check_write_uint_param (GParamSpec * paramspec, GObject * toCheck) { guint check1, check2; check1 = G_PARAM_SPEC_UINT (paramspec)->minimum; g_object_set (toCheck, paramspec->name, check1, NULL); check2 = G_PARAM_SPEC_UINT (paramspec)->maximum; g_object_set (toCheck, paramspec->name, check2, NULL); return TRUE; } static gboolean check_write_int64_param (GParamSpec * paramspec, GObject * toCheck) { gint64 check1, check2; check1 = G_PARAM_SPEC_INT64 (paramspec)->minimum; g_object_set (toCheck, paramspec->name, check1, NULL); check2 = G_PARAM_SPEC_INT64 (paramspec)->maximum; g_object_set (toCheck, paramspec->name, check2, NULL); return TRUE; } static gboolean check_write_long_param (GParamSpec * paramspec, GObject * toCheck) { glong check1, check2; check1 = G_PARAM_SPEC_LONG (paramspec)->minimum; g_object_set (toCheck, paramspec->name, check1, NULL); check2 = G_PARAM_SPEC_LONG (paramspec)->maximum; g_object_set (toCheck, paramspec->name, check2, NULL); return TRUE; } static gboolean check_write_ulong_param (GParamSpec * paramspec, GObject * toCheck) { gulong check1, check2; check1 = G_PARAM_SPEC_ULONG (paramspec)->minimum; g_object_set (toCheck, paramspec->name, check1, NULL); check2 = G_PARAM_SPEC_ULONG (paramspec)->maximum; g_object_set (toCheck, paramspec->name, check2, NULL); return TRUE; } static gboolean check_write_property (GParamSpec * paramspec, GObject * toCheck) { GType param_type; gboolean ret = FALSE; param_type = G_PARAM_SPEC_TYPE (paramspec); if (param_type == G_TYPE_PARAM_INT) { ret = check_write_int_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_UINT) { ret = check_write_uint_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_INT64) { ret = check_write_int64_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_LONG) { ret = check_write_long_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_ULONG) { ret = check_write_ulong_param (paramspec, toCheck); } else { // no check performed ret = TRUE; } return ret; } static gboolean check_readwrite_int_param (GParamSpec * paramspec, GObject * toCheck) { gint ival, oval; gboolean ret = TRUE; ival = G_PARAM_SPEC_INT (paramspec)->minimum; g_object_set (toCheck, paramspec->name, ival, NULL); g_object_get (toCheck, paramspec->name, &oval, NULL); if (ival != oval) { GST_WARNING ("property read/write minimum check failed for : %s : %d != %d", paramspec->name, ival, oval); ret = FALSE; } /* ival=G_PARAM_SPEC_INT(paramspec)->maximum; g_object_set(toCheck,paramspec->name, ival,NULL); g_object_get(toCheck,paramspec->name,&oval,NULL); if(ival!=oval) { GST_WARNING("property read/write maximum check failed for : %s : %d != %d", paramspec->name, ival,oval ); ret=FALSE; } */ return ret; } static gboolean check_readwrite_uint_param (GParamSpec * paramspec, GObject * toCheck) { guint ival, oval; gboolean ret = TRUE; ival = G_PARAM_SPEC_UINT (paramspec)->minimum; g_object_set (toCheck, paramspec->name, ival, NULL); g_object_get (toCheck, paramspec->name, &oval, NULL); if (ival != oval) { GST_WARNING ("property read/write minimum check failed for : %s : %u != %u", paramspec->name, ival, oval); ret = FALSE; } /* ival=G_PARAM_SPEC_UINT(paramspec)->maximum; g_object_set(toCheck,paramspec->name, ival,NULL); g_object_get(toCheck,paramspec->name,&oval,NULL); if(ival!=oval) { GST_WARNING("property read/write maximum check failed for : %s : %u != %u", paramspec->name, ival,oval ); ret=FALSE; } */ return ret; } static gboolean check_readwrite_int64_param (GParamSpec * paramspec, GObject * toCheck) { gint64 ival, oval; gboolean ret = TRUE; ival = G_PARAM_SPEC_INT64 (paramspec)->minimum; g_object_set (toCheck, paramspec->name, ival, NULL); g_object_get (toCheck, paramspec->name, &oval, NULL); if (ival != oval) { GST_WARNING ("property read/write minimum check failed for : %s", paramspec->name); ret = FALSE; } /* ival=G_PARAM_SPEC_INT64(paramspec)->maximum; g_object_set(toCheck,paramspec->name, ival,NULL); g_object_get(toCheck,paramspec->name,&oval,NULL); if(ival!=oval) { GST_WARNING("property read/write maxmum check failed for : %s",paramspec->name); ret=FALSE; } */ return ret; } static gboolean check_readwrite_long_param (GParamSpec * paramspec, GObject * toCheck) { glong ival, oval; gboolean ret = TRUE; ival = G_PARAM_SPEC_LONG (paramspec)->default_value; g_object_set (toCheck, paramspec->name, ival, NULL); g_object_get (toCheck, paramspec->name, &oval, NULL); if (ival != oval) { GST_WARNING ("property read/write default_value check failed for : %s : %ld != %ld", paramspec->name, ival, oval); ret = FALSE; } /* ival=G_PARAM_SPEC_LONG(paramspec)->maximum; g_object_set(toCheck,paramspec->name, ival,NULL); g_object_get(toCheck,paramspec->name,&oval,NULL); if(ival!=oval) { GST_WARNING("property read/write maxmum check failed for : %s : %ld != %ld", paramspec->name, ival,oval ); ret=FALSE; } */ return ret; } static gboolean check_readwrite_ulong_param (GParamSpec * paramspec, GObject * toCheck) { gulong ival, oval; gboolean ret = TRUE; ival = G_PARAM_SPEC_ULONG (paramspec)->default_value; g_object_set (toCheck, paramspec->name, ival, NULL); g_object_get (toCheck, paramspec->name, &oval, NULL); if (ival != oval) { GST_WARNING ("property read/write default_value check failed for : %s : %lu != %lu", paramspec->name, ival, oval); ret = FALSE; } /* ival=G_PARAM_SPEC_ULONG(paramspec)->maximum; g_object_set(toCheck,paramspec->name, ival,NULL); g_object_get(toCheck,paramspec->name,&oval,NULL); if(ival!=oval) { GST_WARNING("property read/write maxmum check failed for : %s : %lu != %lu", paramspec->name, ival,oval ); ret=FALSE; } */ return ret; } static gboolean check_readwrite_property (GParamSpec * paramspec, GObject * toCheck) { GType param_type; gboolean ret = FALSE; param_type = G_PARAM_SPEC_TYPE (paramspec); if (param_type == G_TYPE_PARAM_INT) { ret = check_readwrite_int_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_UINT) { ret = check_readwrite_uint_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_INT64) { ret = check_readwrite_int64_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_LONG) { ret = check_readwrite_long_param (paramspec, toCheck); } else if (param_type == G_TYPE_PARAM_ULONG) { ret = check_readwrite_ulong_param (paramspec, toCheck); } else { // no check performed ret = TRUE; } return ret; } /* test gobject properties * @toCheck: the object to examine * * The function runs tests against all registered properties of the given * object. Depending on the flags and the type of the properties, tests include * read/write and boundary checks. * * TODO(ensonic): * - tests limmits for integer/float props * - write twice to gobject props (to check if they unref the old one) * - test more type * - use test more often :) */ gboolean check_gobject_properties (GObject * toCheck) { gboolean ret = FALSE; gboolean check_read = TRUE; gboolean check_write = TRUE; gboolean check_readwrite = TRUE; guint n_properties; guint loop; GParamSpec **return_params; return_params = g_object_class_list_properties (G_OBJECT_GET_CLASS (toCheck), &n_properties); // iterate over properties for (loop = 0; loop < n_properties; loop++) { GParamSpec *paramspec = return_params[loop]; GST_DEBUG ("property check for : %s", paramspec->name); if (paramspec->flags & G_PARAM_READABLE) { if (!(check_read = check_read_property (paramspec, toCheck))) { GST_WARNING ("property read check failed for : %s", paramspec->name); } } if (paramspec->flags & G_PARAM_WRITABLE) { if (!(check_write = check_write_property (paramspec, toCheck))) { GST_WARNING ("property write check failed for : %s", paramspec->name); } } if (paramspec->flags & G_PARAM_READWRITE) { if (!(check_readwrite = check_readwrite_property (paramspec, toCheck))) { GST_WARNING ("property read/write check failed for : %s", paramspec->name); } } } g_free (return_params); if (check_read && check_write && check_readwrite) { ret = TRUE; } return ret; } /* helpers to get single gobject properties * allows to write * fail_unless(check_get_gulong_property(obj,"voice")==1, NULL); * instead of * gulong voices; * g_object_get(pattern,"voices",&voices,NULL); * fail_unless(voices==1, NULL); */ gboolean check_gobject_get_boolean_property (gpointer obj, const gchar * prop) { gboolean val; g_object_get (obj, prop, &val, NULL); return val; } gint check_gobject_get_int_property (gpointer obj, const gchar * prop) { gint val; g_object_get (obj, prop, &val, NULL); return val; } guint check_gobject_get_uint_property (gpointer obj, const gchar * prop) { guint val; g_object_get (obj, prop, &val, NULL); return val; } glong check_gobject_get_long_property (gpointer obj, const gchar * prop) { glong val; g_object_get (obj, prop, &val, NULL); return val; } gulong check_gobject_get_ulong_property (gpointer obj, const gchar * prop) { gulong val; g_object_get (obj, prop, &val, NULL); return val; } guint64 check_gobject_get_uint64_property (gpointer obj, const gchar * prop) { guint64 val; g_object_get (obj, prop, &val, NULL); return val; } GObject * check_gobject_get_object_property (gpointer obj, const gchar * prop) { GObject *val; g_object_get (obj, prop, &val, NULL); return val; } gchar * check_gobject_get_str_property (gpointer obj, const gchar * prop) { gchar *val; g_object_get (obj, prop, &val, NULL); return val; } gpointer check_gobject_get_ptr_property (gpointer obj, const gchar * prop) { gpointer val; g_object_get (obj, prop, &val, NULL); return val; } // plotting helper // http://stackoverflow.com/questions/5826701/plot-audio-data-in-gnuplot static void check_write_raw_data (void *d, guint size, gchar * _fn) { FILE *f; gchar *fn = g_strconcat (_fn, ".raw", NULL); if ((f = fopen (fn, "wb"))) { fwrite (d, size, 1, f); fclose (f); } g_free (fn); } static gchar * check_plot_get_basename (const gchar * base, const gchar * name) { gchar *full_name, *res; full_name = g_ascii_strdown (g_strdelimit (g_strdup_printf ("%s %s", base, name), " ():&|^", '_'), -1); // like in bt-check-ui.c:make_filename() // should we have some helper api for this in the test lib? res = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s_%s", g_get_tmp_dir (), g_get_prgname (), full_name); g_free (full_name); return res; } gint check_plot_data_int16 (gint16 * d, guint size, const gchar * base, const gchar * name) { gint ret; gchar *base_name = check_plot_get_basename (base, name); gchar *cmd = g_strdup_printf ("/bin/sh -c \"echo \\\"set terminal svg size 200,160 fsize 6;set output '%s.svg';" "set yrange [-33000:32999];set grid xtics;set grid ytics;" "set key outside below;" "plot '%s.raw' binary format='%%int16' using 0:1 with lines title '%s'\\\" | gnuplot\"", base_name, base_name, name); check_write_raw_data (d, size * sizeof (gint16), base_name); ret = system (cmd); g_free (cmd); g_free (base_name); return ret; } gint check_plot_data_double (gdouble * d, guint size, const gchar * base, const gchar * name, const gchar * cfg) { gint ret; gchar *base_name = check_plot_get_basename (base, name); gchar *cmd = g_strdup_printf ("/bin/sh -c \"echo \\\"set terminal svg size 200,160 fsize 6;set output '%s.svg';" "set grid xtics;set grid ytics;" "set key outside below;%s" "plot '%s.raw' binary format='%%float64' using 0:1 with lines title '%s'\\\" | gnuplot\"", base_name, (cfg ? cfg : "set yrange [0.0:1.0];"), base_name, name); check_write_raw_data (d, size * sizeof (gdouble), base_name); ret = system (cmd); g_free (cmd); g_free (base_name); return ret; } buzztrax-0.10.2/tests/bt-edit-cli.sh0000754042355400116100000000371512531140044017557 0ustar00ensoniceng00000000000000#!/bin/bash # Buzztrax # Copyright (C) 2007 Buzztrax team # # run buzztrax-edit commandline options # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, see . # test the output a little testHelpOutput() { $LIBTOOL $BUZZTRAX_EDIT --help | grep >/dev/null -- "--help-bt-core" assertEquals $? 0 } testVersionOutput() { $LIBTOOL $BUZZTRAX_EDIT --version | grep >/dev/null -- "buzztrax-edit from buzztrax" assertEquals $? 0 } # here we test that these don't crash testOptions() { $LIBTOOL $BUZZTRAX_EDIT >/dev/null --nonsense-option assertNotEquals $? 0 } # tests that launch the UI testStartup() { $LIBTOOL $BUZZTRAX_EDIT & btedit_pid=$! sleep 1s && kill $btedit_pid } testStartupWithOptions() { $LIBTOOL $BUZZTRAX_EDIT >/dev/null --command=test5 & btedit_pid=$! sleep 1s && kill $btedit_pid } oneTimeSetUp() { # create log dir mkdir -p $log_dir # TODO(ensonic): use an existing Xvfb if possible, configure flag? if [[ "$XVFB_PATH" != "" && "$BT_CHECK_NO_XVFB" == "" ]]; then $XVFB_PATH >$log_dir/xvfb.log 2>&1 :9 -ac -nolisten tcp -fp $XFONT_PATH -noreset -screen 0 1024x786x24 -render & xvfb_pid=$! export DISPLAY=:9 fi } oneTimeTearDown() { if [ "$xvfb_pid" != "" ]; then kill $xvfb_pid fi } xvfb_pid= log_dir=/tmp/bt_edit_cli # load configuration . ./tests/bt-cfg.sh # load shunit2 . $TESTSRCDIR/shunit2 buzztrax-0.10.2/tests/bt-dec-launch.sh0000754042355400116100000000227512566403631020104 0ustar00ensoniceng00000000000000#!/bin/bash # Buzztrax # Copyright (C) 2015 Buzztrax team # # run bt-dec gst-launch lines # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, see . testPull() { gst-launch-1.0 -q filesrc location=$TESTSONGDIR/simple2.xml ! buzztrax-dec ! fakesink sync=false } testPush() { gst-launch-1.0 -q filesrc location=$TESTSONGDIR/simple2.xml ! queue ! buzztrax-dec ! fakesink sync=false } testPlaybin() { gst-launch-1.0 -q playbin uri=file://$TESTSONGDIR/simple2.xml audio-sink="fakesink sync=false" } # load configuration . ./tests/bt-cfg.sh # load shunit2 . $TESTSRCDIR/shunit2 buzztrax-0.10.2/tests/lib/0000755042355400116100000000000012640736114015676 5ustar00ensoniceng00000000000000buzztrax-0.10.2/tests/lib/gst/0000755042355400116100000000000012640736115016474 5ustar00ensoniceng00000000000000buzztrax-0.10.2/tests/lib/gst/e-envelope-ad.c0000644042355400116100000000464112640575004021264 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2015 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "m-bt-gst.h" #include "gst/envelope-ad.h" //-- globals #define WAVE_SIZE 200 //-- fixtures static void case_setup (void) { BT_CASE_START; } static void case_teardown (void) { } //-- tests static void test_create_obj (BT_TEST_ARGS) { BT_TEST_START; GstBtEnvelopeAD *env; GST_INFO ("-- arrange --"); GST_INFO ("-- act --"); env = gstbt_envelope_ad_new (); GST_INFO ("-- assert --"); fail_unless (env != NULL, NULL); fail_unless (G_OBJECT (env)->ref_count == 1, NULL); GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (env); BT_TEST_END; } // cp /tmp/lt-bt_gst_envelope-ad*.svg docs/reference/bt-gst/images/ static void test_envelope_parameters (BT_TEST_ARGS) { BT_TEST_START; GstBtEnvelopeAD *env; gdouble data[WAVE_SIZE]; gdouble attack = (_i + 1.0) / 4.0; gchar name[20]; GST_INFO ("-- arrange --"); env = gstbt_envelope_ad_new (); g_object_set (env, "peak-level", 1.0, "floor-level", 0.0, "attack", attack, "decay", 1.0, NULL); GST_INFO ("-- act --"); gstbt_envelope_ad_setup (env, WAVE_SIZE); gst_control_source_get_value_array ((GstControlSource *) env, 0, 1, WAVE_SIZE, data); GST_INFO ("-- assert --"); sprintf (name, "attack=%4.2f", attack); check_plot_data_double (data, WAVE_SIZE, "envelope-ad", name, NULL); GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (env); BT_TEST_END; } TCase * gst_buzztrax_envelope_ad_example_case (void) { TCase *tc = tcase_create ("GstBtEnvelopeADExamples"); tcase_add_test (tc, test_create_obj); tcase_add_loop_test (tc, test_envelope_parameters, 0, 3); // test access beyond range tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return (tc); } buzztrax-0.10.2/tests/lib/gst/m-bt-gst.h0000644042355400116100000000165012640575004020277 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2012 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include #include "check.h" #include "glib.h" #include "gst/gst.h" #include "../../bt-check.h" //-- globals GST_DEBUG_CATEGORY_EXTERN(gst_buzztrax_debug); //-- prototypes buzztrax-0.10.2/tests/lib/gst/e-toneconversion.c0000644042355400116100000001225212640575004022135 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2012 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "m-bt-gst.h" #include "gst/toneconversion.h" //-- globals //-- fixtures static void case_setup (void) { BT_CASE_START; } static void case_teardown (void) { } //-- tests static void test_create_obj (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; n2f = gstbt_tone_conversion_new (GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT); fail_unless (n2f != NULL, NULL); fail_unless (G_OBJECT (n2f)->ref_count == 1, NULL); // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_translate_str_base (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq; n2f = gstbt_tone_conversion_new (GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT); fail_unless (n2f != NULL, NULL); frq = gstbt_tone_conversion_translate_from_string (n2f, "A-3"); //g_print("frq=%lf\n",frq); fail_unless (frq == 440.0, NULL); frq = gstbt_tone_conversion_translate_from_string (n2f, "a-3"); //g_print("frq=%lf\n",frq); fail_unless (frq == 440.0, NULL); // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_translate_str_series (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq, frq_prev = 0.0; gchar *notes[] = { "c-0", "c#0", "d-0", "d#0", "e-0", "f-0", "f#0", "g-0", "g#0", "a-0", "a#0", "h-0", "c-1", "c#1", "d-1", "d#1", "e-1", "f-1", "f#1", "g-1", "g#1", "a-1", "a#1", "h-1", "c-2", NULL }; guint i = 0; n2f = gstbt_tone_conversion_new (_i); fail_unless (n2f != NULL, NULL); while (notes[i]) { frq = gstbt_tone_conversion_translate_from_string (n2f, notes[i]); //g_print("%s -> frq=%lf\n",notes[i],frq); fail_unless (frq != 0.0, NULL); fail_unless (frq > frq_prev, NULL); frq_prev = frq; i++; } // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_translate_num_base (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq; n2f = gstbt_tone_conversion_new (GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT); fail_unless (n2f != NULL, NULL); frq = gstbt_tone_conversion_translate_from_number (n2f, GSTBT_NOTE_A_3); //g_print("frq=%lf\n",frq); fail_unless (frq == 440.0, NULL); // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_translate_num_series (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq, frq_prev = 0.0; guint i, j; n2f = gstbt_tone_conversion_new (_i); fail_unless (n2f != NULL, NULL); for (i = 0; i < 9; i++) { for (j = 0; j < 12; j++) { frq = gstbt_tone_conversion_translate_from_number (n2f, 1 + (i * 16 + j)); //g_print("%3u -> frq=%lf\n",i,frq); fail_unless (frq != 0.0, NULL); fail_unless (frq > frq_prev, NULL); frq_prev = frq; } } // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_convert_note_string_2_number (BT_TEST_ARGS) { BT_TEST_START; ck_assert_int_eq (gstbt_tone_conversion_note_string_2_number ("c-0"), GSTBT_NOTE_C_0); ck_assert_int_eq (gstbt_tone_conversion_note_string_2_number ("off"), GSTBT_NOTE_OFF); BT_TEST_END; } static void test_convert_note_number_2_string (BT_TEST_ARGS) { BT_TEST_START; ck_assert_str_eq (gstbt_tone_conversion_note_number_2_string (GSTBT_NOTE_C_0), "c-0"); ck_assert_str_eq (gstbt_tone_conversion_note_number_2_string (GSTBT_NOTE_OFF), "off"); BT_TEST_END; } static void test_note_number_offset (BT_TEST_ARGS) { BT_TEST_START; ck_assert_int_eq (gstbt_tone_conversion_note_number_offset (GSTBT_NOTE_C_0, 0), GSTBT_NOTE_C_0); ck_assert_int_eq (gstbt_tone_conversion_note_number_offset (GSTBT_NOTE_C_0, 5), GSTBT_NOTE_F_0); ck_assert_int_eq (gstbt_tone_conversion_note_number_offset (GSTBT_NOTE_F_0, 10), GSTBT_NOTE_DIS_1); BT_TEST_END; } TCase * gst_buzztrax_toneconversion_example_case (void) { TCase *tc = tcase_create ("GstBtToneConversionExamples"); tcase_add_test (tc, test_create_obj); tcase_add_test (tc, test_translate_str_base); tcase_add_loop_test (tc, test_translate_str_series, 0, GSTBT_TONE_CONVERSION_COUNT); tcase_add_test (tc, test_translate_num_base); tcase_add_loop_test (tc, test_translate_num_series, 0, GSTBT_TONE_CONVERSION_COUNT); tcase_add_test (tc, test_convert_note_string_2_number); tcase_add_test (tc, test_convert_note_number_2_string); tcase_add_test (tc, test_note_number_offset); tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return (tc); } buzztrax-0.10.2/tests/lib/gst/e-envelope-d.c0000644042355400116100000000457412640575004021130 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2015 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "m-bt-gst.h" #include "gst/envelope-d.h" //-- globals #define WAVE_SIZE 200 //-- fixtures static void case_setup (void) { BT_CASE_START; } static void case_teardown (void) { } //-- tests static void test_create_obj (BT_TEST_ARGS) { BT_TEST_START; GstBtEnvelopeD *env; GST_INFO ("-- arrange --"); GST_INFO ("-- act --"); env = gstbt_envelope_d_new (); GST_INFO ("-- assert --"); fail_unless (env != NULL, NULL); fail_unless (G_OBJECT (env)->ref_count == 1, NULL); GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (env); BT_TEST_END; } // cp /tmp/lt-bt_gst_envelope-d*.svg docs/reference/bt-gst/images/ static void test_envelope_curves (BT_TEST_ARGS) { BT_TEST_START; GstBtEnvelopeD *env; gdouble data[WAVE_SIZE]; gdouble curve = _i / 4.0; gchar name[20]; GST_INFO ("-- arrange --"); env = gstbt_envelope_d_new (); g_object_set (env, "curve", curve, "peak-level", 1.0, "floor-level", 0.0, "decay", 1.0, NULL); GST_INFO ("-- act --"); gstbt_envelope_d_setup (env, WAVE_SIZE); gst_control_source_get_value_array ((GstControlSource *) env, 0, 1, WAVE_SIZE, data); GST_INFO ("-- assert --"); sprintf (name, "%4.2f", curve); check_plot_data_double (data, WAVE_SIZE, "envelope-d", name, NULL); GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (env); BT_TEST_END; } TCase * gst_buzztrax_envelope_d_example_case (void) { TCase *tc = tcase_create ("GstBtEnvelopeDExamples"); tcase_add_test (tc, test_create_obj); tcase_add_loop_test (tc, test_envelope_curves, 0, 5); // test access beyond range tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return (tc); } buzztrax-0.10.2/tests/lib/gst/t-toneconversion.c0000644042355400116100000000751612640575004022163 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2012 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "m-bt-gst.h" #include "gst/toneconversion.h" //-- globals //-- fixtures static void case_setup (void) { BT_CASE_START; } static void case_teardown (void) { } //-- tests static void test_translate_str_null (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq; n2f = gstbt_tone_conversion_new (GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT); fail_unless (n2f != NULL, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) & ~G_LOG_LEVEL_CRITICAL); frq = gstbt_tone_conversion_translate_from_string (n2f, NULL); fail_unless (frq == 0.0, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) | G_LOG_LEVEL_CRITICAL); // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_translate_str_length (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq; n2f = gstbt_tone_conversion_new (GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT); fail_unless (n2f != NULL, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) & ~G_LOG_LEVEL_CRITICAL); frq = gstbt_tone_conversion_translate_from_string (n2f, "x"); fail_unless (frq == 0.0, NULL); frq = gstbt_tone_conversion_translate_from_string (n2f, "x-"); fail_unless (frq == 0.0, NULL); frq = gstbt_tone_conversion_translate_from_string (n2f, "x-000"); fail_unless (frq == 0.0, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) | G_LOG_LEVEL_CRITICAL); // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_translate_str_delim (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq; n2f = gstbt_tone_conversion_new (GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT); fail_unless (n2f != NULL, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) & ~G_LOG_LEVEL_CRITICAL); frq = gstbt_tone_conversion_translate_from_string (n2f, "C+3"); fail_unless (frq == 0.0, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) | G_LOG_LEVEL_CRITICAL); // free object ck_g_object_final_unref (n2f); BT_TEST_END; } static void test_translate_enum_range (BT_TEST_ARGS) { BT_TEST_START; GstBtToneConversion *n2f; gdouble frq; n2f = gstbt_tone_conversion_new (GSTBT_TONE_CONVERSION_EQUAL_TEMPERAMENT); fail_unless (n2f != NULL, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) & ~G_LOG_LEVEL_CRITICAL); frq = gstbt_tone_conversion_translate_from_number (n2f, 1 + (16 * 10)); fail_unless (frq == 0.0, NULL); g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) | G_LOG_LEVEL_CRITICAL); // free object ck_g_object_final_unref (n2f); BT_TEST_END; } TCase * gst_buzztrax_toneconversion_test_case (void) { TCase *tc = tcase_create ("GstBtToneConversionTests"); tcase_add_test (tc, test_translate_str_null); tcase_add_test (tc, test_translate_str_length); tcase_add_test (tc, test_translate_str_delim); tcase_add_test (tc, test_translate_enum_range); tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return (tc); } buzztrax-0.10.2/tests/lib/gst/t-elements.c0000644042355400116100000001442712640575004020723 0ustar00ensoniceng00000000000000/* GStreamer * * unit test for state changes on all elements * * Copyright (C) <2005> Thomas Vander Stichele * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "m-bt-gst.h" //-- globals static GList *elements = NULL; //-- fixtures static void case_setup (void) { GList *features, *f; GList *plugins, *p; gchar **ignorelist = NULL; const gchar *STATE_IGNORE_ELEMENTS = NULL; BT_CASE_START; GST_DEBUG ("getting elements for package %s", PACKAGE); STATE_IGNORE_ELEMENTS = g_getenv ("GST_STATE_IGNORE_ELEMENTS"); if (!g_getenv ("GST_NO_STATE_IGNORE_ELEMENTS") && STATE_IGNORE_ELEMENTS) { GST_DEBUG ("Will ignore element factories: '%s'", STATE_IGNORE_ELEMENTS); ignorelist = g_strsplit (STATE_IGNORE_ELEMENTS, " ", 0); } plugins = gst_registry_get_plugin_list (gst_registry_get ()); for (p = plugins; p; p = p->next) { GstPlugin *plugin = p->data; if (strcmp (gst_plugin_get_source (plugin), PACKAGE) != 0) continue; features = gst_registry_get_feature_list_by_plugin (gst_registry_get (), gst_plugin_get_name (plugin)); for (f = features; f; f = f->next) { GstPluginFeature *feature = f->data; const gchar *name; gboolean ignore = FALSE; if (!GST_IS_ELEMENT_FACTORY (feature)) continue; name = GST_OBJECT_NAME (feature); if (ignorelist) { gchar **s; for (s = ignorelist; s && *s; ++s) { if (g_str_has_prefix (name, *s)) { GST_DEBUG ("ignoring element %s", name); ignore = TRUE; } } if (ignore) continue; } GST_DEBUG ("adding element %s", name); elements = g_list_prepend (elements, g_strdup (name)); } gst_plugin_feature_list_free (features); } gst_plugin_list_free (plugins); g_strfreev (ignorelist); } static void case_teardown (void) { GList *e; for (e = elements; e; e = e->next) { g_free (e->data); } g_list_free (elements); elements = NULL; } //-- tests static void test_state_changes_up_and_down_seq (BT_TEST_ARGS) { BT_TEST_START; GstElement *element; GList *e; for (e = elements; e; e = e->next) { const gchar *name = e->data; GST_DEBUG ("testing element %s", name); element = gst_element_factory_make (name, name); fail_if (element == NULL, "Could not make element from factory %s", name); if (GST_IS_PIPELINE (element)) { GST_DEBUG ("element %s is a pipeline", name); } gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_PLAYING); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_NULL); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_PLAYING); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_NULL); gst_object_unref (GST_OBJECT (element)); } BT_TEST_END; } static void test_state_changes_up_seq (BT_TEST_ARGS) { BT_TEST_START; GstElement *element; GList *e; for (e = elements; e; e = e->next) { const gchar *name = e->data; GST_DEBUG ("testing element %s", name); element = gst_element_factory_make (name, name); fail_if (element == NULL, "Could not make element from factory %s", name); if (GST_IS_PIPELINE (element)) { GST_DEBUG ("element %s is a pipeline", name); } gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_PLAYING); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_NULL); gst_object_unref (GST_OBJECT (element)); } BT_TEST_END; } static void test_state_changes_down_seq (BT_TEST_ARGS) { BT_TEST_START; GstElement *element; GList *e; for (e = elements; e; e = e->next) { const gchar *name = e->data; GST_DEBUG ("testing element %s", name); element = gst_element_factory_make (name, name); fail_if (element == NULL, "Could not make element from factory %s", name); if (GST_IS_PIPELINE (element)) { GST_DEBUG ("element %s is a pipeline", name); } gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_PLAYING); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_PLAYING); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_PLAYING); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_NULL); gst_object_unref (GST_OBJECT (element)); } BT_TEST_END; } TCase * gst_buzztrax_elements_test_case (void) { TCase *tc = tcase_create ("GstElementTests"); tcase_add_test (tc, test_state_changes_up_and_down_seq); tcase_add_test (tc, test_state_changes_up_seq); tcase_add_test (tc, test_state_changes_down_seq); tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return tc; } buzztrax-0.10.2/tests/lib/gst/e-osc-synth.c0000644042355400116100000000550512640575004021014 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2012 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "m-bt-gst.h" #include "gst/osc-synth.h" //-- globals #define WAVE_SIZE 200 //-- fixtures static void case_setup (void) { BT_CASE_START; } static void case_teardown (void) { } //-- tests static void test_create_obj (BT_TEST_ARGS) { BT_TEST_START; GstBtOscSynth *osc; GST_INFO ("-- arrange --"); GST_INFO ("-- act --"); osc = gstbt_osc_synth_new (); GST_INFO ("-- assert --"); fail_unless (osc != NULL, NULL); fail_unless (G_OBJECT (osc)->ref_count == 1, NULL); GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (osc); BT_TEST_END; } // cp /tmp/lt-bt_gst_osc-synth*.svg docs/reference/bt-gst/images/ static void test_waves_not_silent (BT_TEST_ARGS) { BT_TEST_START; GstBtOscSynth *osc; gint16 data[WAVE_SIZE]; GST_INFO ("-- arrange --"); osc = gstbt_osc_synth_new (); // plot 1 cycle g_object_set (osc, "wave", _i, "sample-rate", WAVE_SIZE, "frequency", 1.0, NULL); GST_INFO ("-- act --"); gstbt_osc_synth_process (osc, WAVE_SIZE, data); GST_INFO ("-- plot --"); GEnumClass *enum_class = g_type_class_peek_static (GSTBT_TYPE_OSC_SYNTH_WAVE); GEnumValue *enum_value = g_enum_get_value (enum_class, _i); check_plot_data_int16 (data, WAVE_SIZE, "osc-synth", enum_value->value_name); GST_INFO ("-- assert --"); if (_i != GSTBT_OSC_SYNTH_WAVE_SILENCE) { gint j; for (j = 0; j < WAVE_SIZE; j++) { if (data[j] != 0) break; } fail_if (j == WAVE_SIZE, "in %s all samples are 0", enum_value->value_name); } GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (osc); BT_TEST_END; } TCase * gst_buzztrax_osc_synth_example_case (void) { TCase *tc = tcase_create ("GstBtOscSynthExamples"); tcase_add_test (tc, test_create_obj); tcase_add_loop_test (tc, test_waves_not_silent, 0, GSTBT_OSC_SYNTH_WAVE_COUNT); // test each wave with a volume and frequency decay env // test that for a larger wave, summing up all values should be ~0 // test that for non noise waves, we should get min/max // test gstbt_osc_synth_trigger() tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return (tc); } buzztrax-0.10.2/tests/lib/gst/e-filter-svf.c0000644042355400116100000001002312640575004021135 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2015 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "m-bt-gst.h" #include #include #include "gst/filter-svf.h" //-- globals #define WAVE_SIZE 8192 #define FILTER_MODES (GSTBT_FILTER_SVF_COUNT - GSTBT_FILTER_SVF_LOWPASS) //-- fixtures static void case_setup (void) { BT_CASE_START; } static void case_teardown (void) { } //-- tests static void test_create_obj (BT_TEST_ARGS) { BT_TEST_START; GstBtFilterSVF *filter; GST_INFO ("-- arrange --"); GST_INFO ("-- act --"); filter = gstbt_filter_svf_new (); GST_INFO ("-- assert --"); fail_unless (filter != NULL, NULL); fail_unless (G_OBJECT (filter)->ref_count == 1, NULL); GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (filter); BT_TEST_END; } // cp /tmp/lt-bt_gst_filter-svf*.svg docs/reference/bt-gst/images/ static void test_filter (BT_TEST_ARGS) { BT_TEST_START; GstBtFilterSVF *filter; gdouble freq[WAVE_SIZE]; GstFFTF64 *fft; GstFFTF64Complex ffres[WAVE_SIZE]; const guint nfft = 2 * WAVE_SIZE - 2; const gdouble nfft2 = (gdouble) nfft * (gdouble) nfft; gint16 data[nfft]; gdouble fdata[nfft]; gint j; gchar name[40]; guint filter_mode = GSTBT_FILTER_SVF_LOWPASS; gdouble resonance = 0.7; // run all modes twice with resonance off and on if (_i >= FILTER_MODES) { filter_mode += (_i - FILTER_MODES); resonance = 10.0; } else { filter_mode += _i; } GST_INFO ("-- arrange --"); filter = gstbt_filter_svf_new (); g_object_set (filter, "filter", filter_mode, "cut-off", 0.5, "resonance", resonance, NULL); // unit impulse (delta function) memset (data, 0, nfft * sizeof (gint16)); data[0] = G_MAXINT16; GST_INFO ("-- act --"); gstbt_filter_svf_process (filter, nfft, data); // test filter response using fft on filtered data for (j = 0; j < nfft; j++) { fdata[j] = (data[j] > 0) ? ((gdouble) data[j] / (gdouble) G_MAXINT16) : ((gdouble) data[j] / (gdouble) - G_MININT16); } fft = gst_fft_f64_new (nfft, FALSE); // when using actual window function we get mangled curves gst_fft_f64_window (fft, fdata, GST_FFT_WINDOW_RECTANGULAR); gst_fft_f64_fft (fft, fdata, ffres); for (j = 0; j < WAVE_SIZE; j++) { gdouble val = ffres[j].r * ffres[j].r + ffres[j].i * ffres[j].i; freq[j] = 10.0 * log10 (val / nfft2); } GST_INFO ("-- plot --"); // inspect data file // hexdump -v -e '/8 "%f\n"' /tmp/lt-bt_gst_filter-svf_hipass_0.50.raw | more GEnumClass *enum_class = g_type_class_peek_static (GSTBT_TYPE_FILTER_SVF_TYPE); GEnumValue *enum_value = g_enum_get_value (enum_class, filter_mode); sprintf (name, "%s cut-off=0.5 resonance=%.1lf", enum_value->value_name, resonance); // TODO(ensonc): without logscale it might look better // right now x is the data-index anyway, should be frequency check_plot_data_double (freq, WAVE_SIZE, "filter-svf", name, "set logscale x; set autoscale y;"); GST_INFO ("-- cleanup --"); gst_fft_f64_free (fft); ck_gst_object_final_unref (filter); BT_TEST_END; } TCase * gst_buzztrax_filter_svf_example_case (void) { TCase *tc = tcase_create ("GstBtFilterSVFExamples"); tcase_add_test (tc, test_create_obj); tcase_add_loop_test (tc, test_filter, 0, FILTER_MODES * 2); // test gstbt_filter_svf_trigger() tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return (tc); } buzztrax-0.10.2/tests/lib/gst/e-combine.c0000644042355400116100000000535512640575004020504 0ustar00ensoniceng00000000000000/* GStreamer * Copyright (C) 2015 Stefan Sauer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "m-bt-gst.h" #include "gst/combine.h" #include "gst/osc-synth.h" //-- globals #define WAVE_SIZE 200 //-- fixtures static void case_setup (void) { BT_CASE_START; } static void case_teardown (void) { } //-- tests static void test_create_obj (BT_TEST_ARGS) { BT_TEST_START; GstBtCombine *mix; GST_INFO ("-- arrange --"); GST_INFO ("-- act --"); mix = gstbt_combine_new (); GST_INFO ("-- assert --"); fail_unless (mix != NULL, NULL); fail_unless (G_OBJECT (mix)->ref_count == 1, NULL); GST_INFO ("-- cleanup --"); ck_gst_object_final_unref (mix); BT_TEST_END; } // cp /tmp/lt-bt_gst_combine*.svg docs/reference/bt-gst/images/ static void test_combine_modes (BT_TEST_ARGS) { BT_TEST_START; GstBtCombine *mix; GstBtOscSynth *osc1, *osc2; gint16 data1[WAVE_SIZE], data2[WAVE_SIZE]; GST_INFO ("-- arrange --"); mix = gstbt_combine_new (); g_object_set (mix, "combine", _i, NULL); osc1 = gstbt_osc_synth_new (); g_object_set (osc1, "wave", 2, "sample-rate", WAVE_SIZE, "frequency", 1.0, NULL); gstbt_osc_synth_process (osc1, WAVE_SIZE, data1); osc2 = gstbt_osc_synth_new (); g_object_set (osc2, "wave", 2, "sample-rate", WAVE_SIZE, "frequency", 2.0, NULL); gstbt_osc_synth_process (osc2, WAVE_SIZE, data2); GST_INFO ("-- act --"); gstbt_combine_process (mix, WAVE_SIZE, data1, data2); GST_INFO ("-- plot --"); GEnumClass *enum_class = g_type_class_peek_static (GSTBT_TYPE_COMBINE_TYPE); GEnumValue *enum_value = g_enum_get_value (enum_class, _i); check_plot_data_int16 (data1, WAVE_SIZE, "combine", enum_value->value_name); GST_INFO ("-- cleanup --"); gst_object_unref (osc1); gst_object_unref (osc2); ck_gst_object_final_unref (mix); BT_TEST_END; } TCase * gst_buzztrax_combine_example_case (void) { TCase *tc = tcase_create ("GstBtCombineExamples"); tcase_add_test (tc, test_create_obj); tcase_add_loop_test (tc, test_combine_modes, 0, GSTBT_COMBINE_COUNT); tcase_add_unchecked_fixture (tc, case_setup, case_teardown); return (tc); } buzztrax-0.10.2/tests/lib/bml/0000755042355400116100000000000012640736115016451 5ustar00ensoniceng00000000000000buzztrax-0.10.2/tests/lib/bml/bmltest_process.c0000644042355400116100000000614112554516371022033 0ustar00ensoniceng00000000000000/* Buzz Machine Loader * Copyright (C) 2006 Buzztrax team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ /* * process data with a buzz machine * * invoke it e.g. as * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ../machines/elak_svf.dll input.raw output1.raw * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ../../buzzmachines/Elak/SVF/libelak_svf.so input.raw output2.raw * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ~/buzztrax/lib/Gear/Effects/Jeskola\ NiNjA\ dElaY.dll input.raw output1.raw * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ~/buzztrax/lib/Gear/Jeskola_Ninja.so input.raw output1.raw * * aplay -fS16_LE -r44100 input.raw * aplay -fS16_LE -r44100 output1.raw * * plot [0:] [-35000:35000] 'output1.raw' binary format="%short" using 1 with lines * * create test-data: * gst-launch-1.0 filesrc location=/usr/share/sounds/info.wav ! decodebin ! filesink location=input1.raw * dd count=10 if=/dev/zero of=input2.raw */ #include "config.h" #define _ISOC99_SOURCE /* for isinf() and co. */ #include #include #include #include #include #include #include #include #include #include //#include #include "bml/bml.h" // like MachineInterface.h::MAX_BUFFER_LENGTH #define BUFFER_SIZE 256 #ifdef USE_DLLWRAPPER #define bml(a) bmlw_ ## a #include "bmltest_process.h" #undef bml #endif /* USE_DLLWRAPPER */ #define bml(a) bmln_ ## a #include "bmltest_process.h" #undef bml int main (int argc, char **argv) { int okay = 0; setvbuf (stderr, NULL, _IOLBF, 0); puts ("main beg"); if (bml_setup ()) { char *lib_name; int sl; #ifdef USE_DLLWRAPPER bmlw_set_master_info (120, 4, 44100); #endif /* USE_DLLWRAPPER */ bmln_set_master_info (120, 4, 44100); puts (" master info initialized"); if (argc > 2) { lib_name = argv[1]; sl = strlen (lib_name); if (sl > 4) { if (!strcasecmp (&lib_name[sl - 4], ".dll")) { #ifdef USE_DLLWRAPPER okay = bmlw_test_process (lib_name, argv[2], argv[3]); #else puts ("no dll emulation on non x86 platforms"); #endif /* USE_DLLWRAPPER */ } else { okay = bmln_test_process (lib_name, argv[2], argv[3]); } } } else puts (" not enough args!"); bml_finalize (); } puts ("main end"); return okay ? 0 : 1; } buzztrax-0.10.2/tests/lib/bml/bmltest_info.h0000644042355400116100000002075412462770156021324 0ustar00ensoniceng00000000000000/* Buzz Machine Loader * Copyright (C) 2009 Buzztrax team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ int bml(test_info(char *libpath)) { int okay=0; // buzz machine handle void *bmh,*bm; char *str; int type,val,i,num,tracks,numtrig; int maval,mival,noval; double ts1, ts2; printf("%s: loading \"%s\"\n",__FUNCTION__,libpath); ts1=_get_timestamp(); if((bmh=bml(open(libpath)))) { if((bm=bml(new(bmh)))) { char *machine_types[]={"MT_MASTER","MT_GENERATOR","MT_EFFECT" }; char *parameter_types[]={"PT_NOTE","PT_SWITCH","PT_BYTE","PT_WORD" }; ts2=_get_timestamp(); printf(" machine created in %lf sec\n",ts2-ts1); ts1=ts2; bml(init(bm,0,NULL)); ts2=_get_timestamp(); printf(" machine initialized in %lf sec\n",ts2-ts1); if(bml(get_machine_info(bmh,BM_PROP_SHORT_NAME,(void *)&str))) printf(" Short Name: \"%s\"\n",str); if(bml(get_machine_info(bmh,BM_PROP_NAME,(void *)&str))) printf(" Name: \"%s\"\n",str); if(bml(get_machine_info(bmh,BM_PROP_AUTHOR,(void *)&str))) printf(" Author: \"%s\"\n",str); if(bml(get_machine_info(bmh,BM_PROP_COMMANDS,(void *)&str))) { if(str) { char *t=strdup(str), *p=t; while(*p) { if(*p=='\n') *p=','; p++; } printf(" Commands: \"%s\"\n",t); free(t); } } if(bml(get_machine_info(bmh,BM_PROP_TYPE,(void *)&val))) printf(" Type: %i -> \"%s\"\n",val,((val<3)?machine_types[val]:"unknown")); if(bml(get_machine_info(bmh,BM_PROP_VERSION,(void *)&val))) printf(" Version: %3.1f\n",(float)val/10.0); if(bml(get_machine_info(bmh,BM_PROP_FLAGS,(void *)&val))) { printf(" Flags: 0x%x\n",val); if(val&(1<<0)) puts(" MIF_MONO_TO_STEREO"); if(val&(1<<1)) puts(" MIF_PLAYS_WAVES"); if(val&(1<<2)) puts(" MIF_USES_LIB_INTERFACE"); if(val&(1<<3)) puts(" MIF_USES_INSTRUMENTS"); if(val&(1<<4)) puts(" MIF_DOES_INPUT_MIXING"); if(val&(1<<5)) puts(" MIF_NO_OUTPUT"); if(val&(1<<6)) puts(" MIF_CONTROL_MACHINE"); if(val&(1<<7)) puts(" MIF_INTERNAL_AUX"); //if(val&) puts(" "); } if(bml(get_machine_info(bmh,BM_PROP_MIN_TRACKS,(void *)&val))) printf(" MinTracks: %i\n",val); tracks=val; if(bml(get_machine_info(bmh,BM_PROP_MAX_TRACKS,(void *)&val))) printf(" MaxTracks: %i\n",val); if(bml(get_machine_info(bmh,BM_PROP_NUM_INPUT_CHANNELS,(void *)&val))) printf(" InputChannels: %d\n",val); if(bml(get_machine_info(bmh,BM_PROP_NUM_OUTPUT_CHANNELS,(void *)&val))) printf(" OutputChannels: %d\n",val);fflush(stdout); if(bml(get_machine_info(bmh,BM_PROP_NUM_GLOBAL_PARAMS,(void *)&val))) { printf(" NumGlobalParams: %i\n",val);fflush(stdout); num=val;numtrig=0; for(i=0;i \"%s\"\n",type,((type<4)?parameter_types[type]:"unknown")); if(bml(get_global_parameter_info(bmh,i,BM_PARA_NAME,(void *)&str))) printf(" Name: \"%s\"\n",str); if(bml(get_global_parameter_info(bmh,i,BM_PARA_DESCRIPTION,(void *)&str))) printf(" Description: \"%s\"\n",str); if(bml(get_global_parameter_info(bmh,i,BM_PARA_FLAGS,(void *)&val))) { printf(" Flags: 0x%x\n",val); if(val&(1<<0)) puts(" MPF_WAVE"); if(val&(1<<1)) puts(" MPF_STATE"); if(val&(1<<2)) puts(" MPF_TICK_ON_EDIT"); //if(val&) puts(" "); } if(bml(get_global_parameter_info(bmh,i,BM_PARA_MIN_VALUE,(void *)&mival)) && bml(get_global_parameter_info(bmh,i,BM_PARA_MAX_VALUE,(void *)&maval)) && bml(get_global_parameter_info(bmh,i,BM_PARA_NO_VALUE,(void *)&noval)) && bml(get_global_parameter_info(bmh,i,BM_PARA_DEF_VALUE,(void *)&val))) { printf(" Value: %d .. %d .. %d [%d]\n",mival,val,maval,noval); val = bml(get_global_parameter_value(bm,i)); str =(char *)bml(describe_global_value(bmh,i,val)); printf(" RealValue: %d %s (NULL)\n",val,str); } } } else { puts(" NumGlobalTriggerParams: 0"); } fflush(stdout); if(bml(get_machine_info(bmh,BM_PROP_NUM_TRACK_PARAMS,(void *)&val))) { printf(" NumTrackParams: %i\n",val);fflush(stdout); num=val;numtrig=0; for(i=0;i \"%s\"\n",type,((type<4)?parameter_types[type]:"unknown")); if(bml(get_track_parameter_info(bmh,i,BM_PARA_NAME,(void *)&str))) printf(" Name: \"%s\"\n",str); if(bml(get_track_parameter_info(bmh,i,BM_PARA_DESCRIPTION,(void *)&str))) printf(" Description: \"%s\"\n",str); if(bml(get_track_parameter_info(bmh,i,BM_PARA_FLAGS,(void *)&val))) { printf(" Flags: 0x%x\n",val); if(val&(1<<0)) puts(" MPF_WAVE"); if(val&(1<<1)) puts(" MPF_STATE"); if(val&(1<<2)) puts(" MPF_TICK_ON_EDIT"); //if(val&) puts(" "); } if(bml(get_track_parameter_info(bmh,i,BM_PARA_MIN_VALUE,(void *)&mival)) && bml(get_track_parameter_info(bmh,i,BM_PARA_MAX_VALUE,(void *)&maval)) && bml(get_track_parameter_info(bmh,i,BM_PARA_NO_VALUE,(void *)&noval)) && bml(get_track_parameter_info(bmh,i,BM_PARA_DEF_VALUE,(void *)&val))) { printf(" Value: %d .. %d .. %d [%d]\n",mival,val,maval,noval); val = bml(get_track_parameter_value(bm,0,i)); str =(char *)bml(describe_track_value(bmh,i,val)); printf(" RealValue: %d %s (NULL)\n",val,str); } } } else { if(num) { printf(" WARNING but tracks=0..0\n");fflush(stdout); } } } else { puts(" NumTrackTriggerParams: 0"); } fflush(stdout); if(bml(get_machine_info(bmh,BM_PROP_NUM_ATTRIBUTES,(void *)&val))) { printf(" NumAttributes: %i\n",val);fflush(stdout); num=val; for(i=0;i * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ int bml(test_process(char *libpath,const char *infilename,const char *outfilename)) { int okay=0; // buzz machine handle void *bmh,*bm; /* { fpu_control_t cw=0x27F; //_FPU_GETCW(cw); //cw&=~_FPU_EXTENDED; //cw|=_FPU_DOUBLE; _FPU_SETCW(cw); } */ printf("%s(\"%s\")\n",__FUNCTION__,libpath); if((bmh=bml(open(libpath)))) { if((bm=bml(new(bmh)))) { FILE *infile,*outfile; int s_size=BUFFER_SIZE,i_size,o_size,r_size; short int buffer_w[BUFFER_SIZE*2]; float buffer_fm[BUFFER_SIZE],buffer_fs[BUFFER_SIZE*2],*buffer_f; int i,mtype,mflags,tracks; //int ival=0,oval,vs=10; const char *type_name[3]={"","generator","effect"}; int nan=0,inf=0,den=0; int clipped=0; float ma=0.0; int mode=3/*WM_READWRITE*/; int triggered=TRUE; puts(" windows machine created"); bml(init(bm,0,NULL)); bml(get_machine_info(bmh,BM_PROP_TYPE,&mtype)); bml(get_machine_info(bmh,BM_PROP_FLAGS,&mflags)); printf(" %s initialized\n",type_name[mtype]); bml(get_machine_info(bmh,BM_PROP_MIN_TRACKS,(void *)&tracks)); if(tracks) { bml(set_num_tracks(bm,tracks)); printf(" activated %d tracks\n",tracks); } //bml(stop(bm)); //bml(attributes_changed(bm)); // open raw files infile=fopen(infilename,"rb"); outfile=fopen(outfilename,"wb"); if(infile && outfile) { printf(" processing "); if(mtype==1) { int num,ptype,pflags,pmaval; // trigger a note for generators bml(get_machine_info(bmh,BM_PROP_NUM_GLOBAL_PARAMS,&num)); // set value for trigger parameter(s) for(i=0;i0) && (ival==1000)) || ((vs<0) && (ival==0))) vs=-vs; printf("."); // set GlobalVals, TrackVals bml(tick(bm)); i_size=fread(buffer_w,2,s_size,infile); if(i_size) { // generators get silence, effects get the input if(mtype==1) { for(i=0;ima) ma=buffer_f[i]; if(buffer_f[i]>32767) { buffer_w[i]=32767; clipped++; } else if(buffer_f[i]<-32768) { buffer_w[i]=-32768; clipped++; } else { buffer_w[i]=(short int)(buffer_f[i]); } } if((r_size=fwrite(buffer_w,2,o_size,outfile)) # # iterates over the given directory and tries all buzz machines # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, see . # Test all machines matching the glob. If machines hang, they can be skipped by # pressing ctrl-c. Run as e.g. # # ./testmachine.sh "machines/*.dll" # ./testmachine.sh "/home/ensonic/buzztrax/lib/Gear-real/Effects/*.dll" # ./testmachine.sh "/home/ensonic/buzztrax/lib/Gear-real/Generators/*.dll" # ./testmachine.sh "/home/ensonic/buzztrax/lib/Gear-real/[GE]*/*.dll" # ./testmachine.sh "/home/ensonic/buzztrax/lib/Gear/*.so" # # analyze results # # search for unk_XXX -> unknown symbols # grep -Hn "unk_" testmachine/*.fail | sort | uniq # grep -ho "unk_.*" testmachine/*.fail | sort | uniq -c # search for FIXME -> unimplemented buzz callback entries # grep -Hn "FIXME" testmachine/*.fail # search for "wine/module: Win32 LoadLibrary failed to load:" # grep -ho "wine/module: Win32 LoadLibrary failed to load:.*" testmachine/*.fail | sort -f | uniq -ic # search for same last line in fail log # tail -n1 testmachine/*.fail | grep -B1 "GetInfo()" | grep "==>" # tail -n1 testmachine/*.fail | grep -B1 "Entering DllMain(DLL_PROCESS_ATTACH) for /home/ensonic/buzztrax/lib/Gear-real/" | grep "==>" # show last lines from the win32 side # for file in testmachine/*.txt.fail; do echo $file; grep ":0::" "$file" | tail -n2; done # for file in testmachine/*.txt.fail; do grep -o ":0::.*" "$file" | sed -e 's/0x[0-9A-F]*/PTR/' | tail -n1; done | sort | uniq -c | sort -n # # stats # ls -1 testmachine/*.okay | wc -l # ls -1 testmachine/*.fail | wc -l # # TODO: # - allow running under valgrind # - if a machine is m2s (fieldFlags), then channels=2 # if [ -e ../../bt-cfg.sh ]; then . ../../bt-cfg.sh else BUZZTRAX_CMD=buzztrax-cmd BUZZTRAX_EDIT=buzztrax-edit fi if [ -z "$1" ]; then echo "Usage: $0 "; exit fi if [ -z "$(ls 2>/dev/null $1)" ]; then echo "no machines found" exit fi # initialize machine_glob="$1"; mkdir -p testmachine m_okay=0; m_info=0; m_fail=0; trap "sig_segv=1" SIGSEGV trap "sig_int=1" SIGINT touch testmachine.failtmp rm -f testmachine.body.html touch testmachine.body.html # create input sound for effects gst-launch-1.0 >/dev/null 2>&1 audiotestsrc wave="ticks" num-buffers=100 ! audio/x-raw,format=S16LE,channels=1 ! filesink location=input.raw #dd count=200 if=/dev/zero of=input.raw # limit the subprocesses # -S soft # -t cputime: 20sec # -d data seg size: 32768 (32Mb) # -m max memory size: 32768 (32Mb) # -v vitrual memory: 32768 (32Mb) #ulimit -S -t20 -d32768 -m32768 -v32768 # too tight ulimit -S -t20 -d32768 -m32768 # run test loop for machine in $machine_glob ; do #name=`basename "$machine" "$machine_glob"` name=`basename "$machine"` ext=${name#${name%.*}} log_name="./testmachine/$name.txt" rm -f "$log_name" "$log_name".okay "$log_name".fail "$log_name".info # try to run it sig_segv=0 sig_int=0 echo >bmltest_info.log "BML_DEBUG=255 $BMLTEST_INFO \"$machine\"" #env >>bmltest_info.log 2>&1 LD_LIBRARY_PATH="../src/" ../src/bmltest_info "$machine" #res=$? # this suppresses the output of e.g. "Sementation fault" res=`env >>bmltest_info.log 2>&1 BML_DEBUG=255 $BMLTEST_INFO "$machine"; echo $?` cat bmltest_info.log | grep >"$log_name" -v "Warning: the specified" if [ $sig_int -eq "1" ] ; then res=1; fi cat bmltest_info.log | iconv >bmltest_info.tmp -fWINDOWS-1250 -tUTF-8 -c fieldCreateTime=`egrep -o "machine created in .*$" bmltest_info.tmp | sed -e 's/machine created in \(.*\) sec$/\1/'` fieldInitTime=`egrep -o "machine initialized in .*$" bmltest_info.tmp | sed -e 's/machine initialized in \(.*\) sec$/\1/'` fieldShortName=`egrep -o "Short Name: .*$" bmltest_info.tmp | sed -e 's/Short Name: "\(.*\)"$/\1/'` fieldAuthor=`egrep -o "Author: .*$" bmltest_info.tmp | sed -e 's/Author: "\(.*\)"$/\1/'` fieldType=`egrep -o "^ Type: . -> \"MT_.*$" bmltest_info.tmp | sed -e 's/^\ *Type: . -> "\(.*\)"$/\1/'` fieldVersion=`egrep -o "Version: .*$" bmltest_info.tmp | sed -e 's/Version: \(.*\)$/\1/'` fieldCommands=`egrep -o "Commands: .*$" bmltest_info.tmp | sed -e 's/Commands: "\(.*\)"$/\1/'` fieldFlags=`egrep -o "^ Flags: .*$" bmltest_info.tmp | sed -e 's/^\ *Flags: \(.*\)$/\1/'` fieldMinTracks=`egrep -o "MinTracks: .*$" bmltest_info.tmp | sed -e 's/MinTracks: \(.*\)$/\1/'` fieldMaxTracks=`egrep -o "MaxTracks: .*$" bmltest_info.tmp | sed -e 's/MaxTracks: \(.*\)$/\1/'` fieldInputChannels=`egrep -o "InputChannels: .*$" bmltest_info.tmp | sed -e 's/InputChannels: \(.*\)$/\1/'` fieldOutputChannels=`egrep -o "OutputChannels: .*$" bmltest_info.tmp | sed -e 's/OutputChannels: \(.*\)$/\1/'` fieldNumGlobalParams=`egrep -o "NumGlobalParams: .*$" bmltest_info.tmp | sed -e 's/NumGlobalParams: \(.*\)$/\1/'` fieldNumTrackParams=`egrep -o "NumTrackParams: .*$" bmltest_info.tmp | sed -e 's/NumTrackParams: \(.*\)$/\1/'` fieldNumAttributes=`egrep -o "NumAttributes: .*$" bmltest_info.tmp | sed -e 's/NumAttributes: \(.*\)$/\1/'` if [ $res -eq "0" ] ; then # try to run it again sig_segv=0 sig_int=0 echo >bmltest_process.log "BML_DEBUG=255 $BMLTEST_PROCESS \"$machine\" input.raw output.raw" # this suppresses the output of e.g. "Sementation fault" res=`env >>bmltest_process.log 2>&1 BML_DEBUG=255 $BMLTEST_PROCESS "$machine" input.raw output.raw; echo $?` cat bmltest_process.log | grep >>"$log_name" -v "Warning: the specified" if [ $sig_int -eq "1" ] ; then res=1; fi if [ $res -eq "0" ] ; then echo "okay : $machine"; m_okay=$((m_okay+1)) mv "$log_name" "$log_name".okay # convert raw audio to wav gst-launch-1.0 >/dev/null 2>&1 filesrc location=output.raw ! audio/x-raw,format=S16LE,channels=$fieldOutputChannels,rate=44100 ! wavenc ! filesink location="testmachine/$name.wav" tablecolor="#E0FFE0" tableresult="okay" else echo "info : $machine"; m_info=$((m_info+1)) mv "$log_name" "$log_name".info tablecolor="#FFF7E0" tableresult="info" fi else echo "fail : $machine"; m_fail=$((m_fail+1)) mv "$log_name" "$log_name".fail tablecolor="#FFE0E0" tableresult="fail" reason=`tail -n1 "$log_name".fail | strings`; echo "$reason :: $name" >>testmachine.failtmp touch bmltest_process.log fi cat bmltest_process.log | iconv >bmltest_process.tmp -fWINDOWS-1250 -tUTF-8 -c fieldMaxAmp=`egrep -o "MaxAmp: .*$" bmltest_process.tmp | sed -e 's/MaxAmp: \(.*\)$/\1/'` fieldClipped=`egrep -o "Clipped: .*$" bmltest_process.tmp | sed -e 's/Clipped: \(.*\)$/\1/'` fieldMathNaN=`egrep -o "some values are nan" bmltest_process.tmp | sed -e 's/some values are \(.*\)$/\1/'` fieldMathInf=`egrep -o "some values are inf" bmltest_process.tmp | sed -e 's/some values are \(.*\)$/\1/'` fieldMathDen=`egrep -o "some values are denormal" bmltest_process.tmp | sed -e 's/some values are \(.*\)$/\1/'` # collect used dlls #fieldLibs=`strings "$machine" | grep -i -F "$ext" | grep -vi "$name" | tr "A-Z" "a-z" | sort | uniq` fieldLibs=`grep "Loading Microsoft style imports for" "$log_name.$tableresult" | cut -d' ' -f12 | tr "A-Z" "a-z" | sort | uniq` cat >>testmachine.body.html < $tableresult $fieldCreateTime $fieldInitTime $name $fieldShortName $fieldAuthor $fieldType $fieldVersion $fieldFlags $fieldCommands $fieldMinTracks $fieldMaxTracks $fieldInputChannels $fieldOutputChannels $fieldNumGlobalParams $fieldNumTrackParams $fieldNumAttributes $fieldLibs $fieldMaxAmp $fieldClipped $fieldMathNaN $fieldMathInf $fieldMathDen END_OF_HTML rm -f bmltest_info.log bmltest_process.log done # cleanup and report rm -f bmltest_info.log bmltest_info.tmp rm -f bmltest_process.log bmltest_process.tmp rm -f input.raw output.raw sort testmachine.failtmp >testmachine/_.fails rm testmachine.failtmp cat >testmachine/_.html < END_OF_HTML cat >>testmachine/_.html testmachine.body.html cat >>testmachine/_.html < END_OF_HTML rm testmachine.body.html m_all=$((m_fail+m_info+m_okay)) echo "Of $m_all machine(s) $m_okay worked, $m_info did not processed data and $m_fail failed to load." echo "See testmachine/_.fails and testmachine/_.html for details" buzztrax-0.10.2/tests/lib/bml/bmltest_info.c0000644042355400116100000000543012462770302021302 0ustar00ensoniceng00000000000000/* Buzz Machine Loader * Copyright (C) 2006 Buzztrax team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ /** * display machine info block * * invoke it e.g. as * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_info ../machines/elak_svf.dll * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_info ../../buzzmachines/Elak/SVF/liblibelak_svf.so * * the dll/so *must* be a buzz-machine, not much error checking ;-) */ #include "config.h" #include #include #include #include #include #include #include #include #include #ifdef HAVE_CLOCK_GETTIME #include #else #include #endif #include "bml/bml.h" static inline double _get_timestamp (void) { #ifdef HAVE_CLOCK_GETTIME struct timespec ts; clock_gettime (CLOCK_MONOTONIC, &ts); return ((double) ts.tv_sec + ((double) ts.tv_nsec * 1.0e-9)); #else struct timeval ts; gettimeofday (&ts, NULL); return ((double) ts.tv_sec + ((double) ts.tv_usec * 1.0e-6)); #endif } #ifdef USE_DLLWRAPPER #define bml(a) bmlw_ ## a #include "bmltest_info.h" #undef bml #endif /* USE_DLLWRAPPER */ #define bml(a) bmln_ ## a #include "bmltest_info.h" #undef bml int main (int argc, char **argv) { int okay = 0; setlinebuf (stdout); setlinebuf (stderr); puts ("main beg"); if (bml_setup ()) { char *lib_name; int sl, i; #ifdef USE_DLLWRAPPER /* FIXME: if people have no real win32 dlls, only emulated things, this will crash here */ bmlw_set_master_info (120, 4, 44100); #endif /* USE_DLLWRAPPER */ bmln_set_master_info (120, 4, 44100); puts ("master info initialized"); for (i = 1; i < argc; i++) { lib_name = argv[i]; sl = strlen (lib_name); if (sl > 4) { if (!strcasecmp (&lib_name[sl - 4], ".dll")) { #ifdef USE_DLLWRAPPER okay = bmlw_test_info (lib_name); #else puts ("no dll emulation on non x86 platforms"); #endif /* USE_DLLWRAPPER */ } else { okay = bmln_test_info (lib_name); } } } bml_finalize (); } puts ("main end"); return okay ? 0 : 1; } buzztrax-0.10.2/tests/lib/bml/sorttable.js0000644042355400116100000004102512144654063021010 0ustar00ensoniceng00000000000000/* SortTable version 2 7th April 2007 Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/ Instructions: Download this file Add to your HTML Add class="sortable" to any table you'd like to make sortable Click on the headers to sort Thanks to many, many people for contributions and suggestions. Licenced as X11: http://www.kryogenix.org/code/browser/licence.html This basically means: do what you want with it. */ var stIsIE = /*@cc_on!@*/false; sorttable = { init: function() { // quit if this function has already been called if (arguments.callee.done) return; // flag this function so we don't do the same thing twice arguments.callee.done = true; // kill the timer if (_timer) clearInterval(_timer); if (!document.createElement || !document.getElementsByTagName) return; sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/; forEach(document.getElementsByTagName('table'), function(table) { if (table.className.search(/\bsortable\b/) != -1) { sorttable.makeSortable(table); } }); }, makeSortable: function(table) { if (table.getElementsByTagName('thead').length == 0) { // table doesn't have a tHead. Since it should have, create one and // put the first table row in it. the = document.createElement('thead'); the.appendChild(table.rows[0]); table.insertBefore(the,table.firstChild); } // Safari doesn't support table.tHead, sigh if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0]; if (table.tHead.rows.length != 1) return; // can't cope with two header rows // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as // "total" rows, for example). This is B&R, since what you're supposed // to do is put them in a tfoot. So, if there are sortbottom rows, // for backwards compatibility, move them to tfoot (creating it if needed). sortbottomrows = []; for (var i=0; i5' : ' ▴'; this.appendChild(sortrevind); return; } if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) { // if we're already sorted by this column in reverse, just // re-reverse the table, which is quicker sorttable.reverse(this.sorttable_tbody); this.className = this.className.replace('sorttable_sorted_reverse', 'sorttable_sorted'); this.removeChild(document.getElementById('sorttable_sortrevind')); sortfwdind = document.createElement('span'); sortfwdind.id = "sorttable_sortfwdind"; sortfwdind.innerHTML = stIsIE ? ' 6' : ' ▾'; this.appendChild(sortfwdind); return; } // remove sorttable_sorted classes theadrow = this.parentNode; forEach(theadrow.childNodes, function(cell) { if (cell.nodeType == 1) { // an element cell.className = cell.className.replace('sorttable_sorted_reverse',''); cell.className = cell.className.replace('sorttable_sorted',''); } }); sortfwdind = document.getElementById('sorttable_sortfwdind'); if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); } sortrevind = document.getElementById('sorttable_sortrevind'); if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); } this.className += ' sorttable_sorted'; sortfwdind = document.createElement('span'); sortfwdind.id = "sorttable_sortfwdind"; sortfwdind.innerHTML = stIsIE ? ' 6' : ' ▾'; this.appendChild(sortfwdind); // build an array to sort. This is a Schwartzian transform thing, // i.e., we "decorate" each row with the actual sort key, // sort based on the sort keys, and then put the rows back in order // which is a lot faster because you only do getInnerText once per row row_array = []; col = this.sorttable_columnindex; rows = this.sorttable_tbody.rows; for (var j=0; j 12) { // definitely dd/mm return sorttable.sort_ddmm; } else if (second > 12) { return sorttable.sort_mmdd; } else { // looks like a date, but we can't tell which, so assume // that it's dd/mm (English imperialism!) and keep looking sortfn = sorttable.sort_ddmm; } } } } return sortfn; }, getInnerText: function(node) { // gets the text we want to use for sorting for a cell. // strips leading and trailing whitespace. // this is *not* a generic getInnerText function; it's special to sorttable. // for example, you can override the cell text with a customkey attribute. // it also gets .value for fields. hasInputs = (typeof node.getElementsByTagName == 'function') && node.getElementsByTagName('input').length; if (node.getAttribute("sorttable_customkey") != null) { return node.getAttribute("sorttable_customkey"); } else if (typeof node.textContent != 'undefined' && !hasInputs) { return node.textContent.replace(/^\s+|\s+$/g, ''); } else if (typeof node.innerText != 'undefined' && !hasInputs) { return node.innerText.replace(/^\s+|\s+$/g, ''); } else if (typeof node.text != 'undefined' && !hasInputs) { return node.text.replace(/^\s+|\s+$/g, ''); } else { switch (node.nodeType) { case 3: if (node.nodeName.toLowerCase() == 'input') { return node.value.replace(/^\s+|\s+$/g, ''); } case 4: return node.nodeValue.replace(/^\s+|\s+$/g, ''); break; case 1: case 11: var innerText = ''; for (var i = 0; i < node.childNodes.length; i++) { innerText += sorttable.getInnerText(node.childNodes[i]); } return innerText.replace(/^\s+|\s+$/g, ''); break; default: return ''; } } }, reverse: function(tbody) { // reverse the rows in a tbody newrows = []; for (var i=0; i=0; i--) { tbody.appendChild(newrows[i]); } delete newrows; }, /* sort functions each sort function takes two parameters, a and b you are comparing a[0] and b[0] */ sort_numeric: function(a,b) { aa = parseFloat(a[0].replace(/[^0-9.-]/g,'')); if (isNaN(aa)) aa = 0; bb = parseFloat(b[0].replace(/[^0-9.-]/g,'')); if (isNaN(bb)) bb = 0; return aa-bb; }, sort_alpha: function(a,b) { if (a[0]==b[0]) return 0; if (a[0] 0 ) { var q = list[i]; list[i] = list[i+1]; list[i+1] = q; swap = true; } } // for t--; if (!swap) break; for(var i = t; i > b; --i) { if ( comp_func(list[i], list[i-1]) < 0 ) { var q = list[i]; list[i] = list[i-1]; list[i-1] = q; swap = true; } } // for b++; } // while(swap) } } /* ****************************************************************** Supporting functions: bundled here to avoid depending on a library ****************************************************************** */ // Dean Edwards/Matthias Miller/John Resig /* for Mozilla/Opera9 */ if (document.addEventListener) { document.addEventListener("DOMContentLoaded", sorttable.init, false); } /* for Internet Explorer */ /*@cc_on @*/ /*@if (@_win32) document.write("
Res. Create sec. Init sec. Plugin Lib. Name Author Type API Ver. Flags Commands Min Trk. Max Trk. Input Ch. Output Ch. Global Par. Track Par. Attr. Libs Max Amp. Clipped NaN/Inf/Den