From abc3fd29355752e763456c39f553edac4581d41e Mon Sep 17 00:00:00 2001 From: Jonathan Wilkes <jon.w.wilkes@gmail.com> Date: Sat, 25 Mar 2017 20:38:24 -0400 Subject: [PATCH] repo cleanup: remove tcl/tk build infrastructure and scripts, old patches, automated build scripts for pd-extended, old gui plugins, and unnecessary install-time dependencies --- abstractions/Makefile | 27 - doc/Makefile | 26 - externals/Makefile | 3 - packages/Makefile | 179 -- packages/linux_make/Makefile | 1 - packages/linux_make/debian/control | 4 +- packages/linux_make/debian/control.desktop | 4 +- packages/linux_make/debian/control.raspbian | 4 +- packages/linux_make/debian/control.ubuntu | 4 +- packages/patches/add_string_support.patch | 444 --- .../arrow_keys_update_scrollbars-0.40.3.patch | 24 - .../patches/closeinitbang-0.40-0test03.patch | 186 -- .../patches/color_scheme_support-0.40.3.patch | 392 --- .../default_and_embedded_plist-0.41.4.patch | 50 - .../disable_close_confirm-0.39.2.patch | 21 - ...el_accurate_on_every_platform-0.40.3.patch | 1686 ----------- ...proxy_icon_and_modified_state-0.41.4.patch | 20 - .../set_cursors_in_tcl-0.41-test06.patch | 76 - ...subpatch_name_in_window_title-0.41.4.patch | 39 - ...ne_cosine_sum_memory_leak_fix-0.41.4.patch | 22 - ...ENAME_MAX_for_file_operations-0.41.4.patch | 582 ---- ..._help_patches_for_midi-0.41.0-test04.patch | 72 - packages/redhat_rpm/pd-extended.spec | 10 - pd/README | 0 scripts/auto-build/auto-build-common | 80 - .../auto-build/create-latest-build-listing.py | 28 - scripts/auto-build/extra-rsync.bat | 18 - scripts/auto-build/mail-mingw-log-hack.sh | 28 - scripts/auto-build/pd-devel-auto-builder.sh | 117 - .../auto-build/pd-extended-auto-builder.sh | 106 - .../pd-extended-release-auto-builder.sh | 106 - .../auto-build/pd-main+libs-auto-builder.sh | 107 - scripts/auto-build/pd-main-auto-builder.sh | 73 - .../auto-build/pd-puredyne-auto-builder.sh | 99 - .../pdvanilla-hcs.git-auto-builder.sh | 37 - scripts/auto-build/prep-auto-build-upload | 31 - scripts/auto-build/pure-data-rsync | 34 - scripts/auto-build/pure-data-rsync-checkout | 38 - .../auto-build/pure-data.git-auto-builder.sh | 37 - .../pure-data.umlaeute.git-auto-builder.sh | 37 - scripts/auto-build/run-automated-build.bat | 4 - .../auto-build/run-automated-build.cygwin.sh | 2 - scripts/auto-build/run-automated-builder | 93 - .../tcltk_core-8-4-branch_auto-builder.sh | 98 - .../tcltk_core-8-5-branch_auto-builder.sh | 98 - scripts/build-libs-for-pd-on-mingw.sh | 169 -- scripts/build-packages.sh | 22 - scripts/checkout-developer-layout.sh | 48 - scripts/config-switcher.sh | 117 - scripts/convert-help-to-standard.sh | 42 - scripts/download-pd-archives.sh | 22 - scripts/find-wish.app.sh | 22 - .../guiplugins/buttonbar/buttonbar-plugin.tcl | 1212 -------- scripts/guiplugins/buttonbar/images/bng.gif | Bin 3853 -> 0 bytes .../guiplugins/buttonbar/images/floatatom.gif | Bin 4321 -> 0 bytes .../buttonbar/images/hi-bit/old.bng.gif | Bin 4182 -> 0 bytes .../buttonbar/images/hi-bit/old.hradio.gif | Bin 4082 -> 0 bytes .../buttonbar/images/hi-bit/old.hslider.gif | Bin 4100 -> 0 bytes .../buttonbar/images/hi-bit/old.msg.gif | Bin 4122 -> 0 bytes .../buttonbar/images/hi-bit/old.obj.gif | Bin 4094 -> 0 bytes .../buttonbar/images/hi-bit/old.text.gif | Bin 4093 -> 0 bytes .../buttonbar/images/hi-bit/old.vradio.gif | Bin 4087 -> 0 bytes .../buttonbar/images/hi-bit/old.vslider.gif | Bin 4102 -> 0 bytes .../guiplugins/buttonbar/images/hradio.gif | Bin 3841 -> 0 bytes .../guiplugins/buttonbar/images/hslider.gif | Bin 3853 -> 0 bytes .../guiplugins/buttonbar/images/images.txt | 1116 ------- .../buttonbar/images/make-base64.sh | 12 - .../guiplugins/buttonbar/images/menuarray.gif | Bin 4275 -> 0 bytes scripts/guiplugins/buttonbar/images/msg.gif | Bin 3850 -> 0 bytes scripts/guiplugins/buttonbar/images/mycnv.gif | Bin 4080 -> 0 bytes .../guiplugins/buttonbar/images/numbox.gif | Bin 4380 -> 0 bytes scripts/guiplugins/buttonbar/images/obj.gif | Bin 3839 -> 0 bytes .../buttonbar/images/symbolatom.gif | Bin 4324 -> 0 bytes scripts/guiplugins/buttonbar/images/text.gif | Bin 4093 -> 0 bytes .../guiplugins/buttonbar/images/toggle.gif | Bin 4176 -> 0 bytes .../guiplugins/buttonbar/images/vradio.gif | Bin 3846 -> 0 bytes .../guiplugins/buttonbar/images/vslider.gif | Bin 3853 -> 0 bytes .../guiplugins/buttonbar/images/vumeter.gif | Bin 4155 -> 0 bytes .../file_associations-plugin.tcl | 55 - .../guiplugins/object_db/object_db-plugin.tcl | 182 -- .../guiplugins/object_db/object_tags.tcllist | 2685 ----------------- .../quickbindings/quickbindings-plugin.tcl | 39 - .../guiplugins/simple_examples/LICENSE.txt | 29 - .../add_item_to_popup_menu-plugin.tcl | 6 - .../add_menubar_to_popup_menu-plugin.tcl | 17 - .../add_my_patches_to_media_menu-plugin.tcl | 11 - .../clone_put_menu_into_popup_menu-plugin.tcl | 6 - .../simple_examples/editmode_look-plugin.tcl | 33 - .../font_doesnt_follow_focus-plugin.tcl | 11 - .../global_editmode_0-plugin.tcl | 15 - .../simple_examples/gtklook-plugin.tcl | 41 - .../hide_cords_in_editmode-plugin.tcl | 16 - .../insert_into_popup_menu-plugin.tcl | 26 - .../meters_default_on-plugin.tcl | 3 - .../pdwindow_popup_mode-plugin.tcl | 19 - ...move_menubar_from_patch_windows-plugin.tcl | 7 - .../set_canvas_minsize-plugin.tcl | 8 - .../set_custom_stored_histories-plugin.tcl | 6 - .../simple_examples/tripleclickobj-plugin.tcl | 9 - scripts/insert_declare.py | 35 - scripts/parse-help-patches.pl | 254 -- scripts/update-developer-layout.sh | 23 - 102 files changed, 8 insertions(+), 11457 deletions(-) delete mode 100644 packages/patches/add_string_support.patch delete mode 100644 packages/patches/arrow_keys_update_scrollbars-0.40.3.patch delete mode 100644 packages/patches/closeinitbang-0.40-0test03.patch delete mode 100644 packages/patches/color_scheme_support-0.40.3.patch delete mode 100644 packages/patches/default_and_embedded_plist-0.41.4.patch delete mode 100644 packages/patches/disable_close_confirm-0.39.2.patch delete mode 100644 packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch delete mode 100644 packages/patches/proxy_icon_and_modified_state-0.41.4.patch delete mode 100644 packages/patches/set_cursors_in_tcl-0.41-test06.patch delete mode 100644 packages/patches/show_whole_subpatch_name_in_window_title-0.41.4.patch delete mode 100644 packages/patches/sine_cosine_sum_memory_leak_fix-0.41.4.patch delete mode 100644 packages/patches/use_FILENAME_MAX_for_file_operations-0.41.4.patch delete mode 100644 packages/patches/use_individual_help_patches_for_midi-0.41.0-test04.patch delete mode 100644 pd/README delete mode 100644 scripts/auto-build/auto-build-common delete mode 100755 scripts/auto-build/create-latest-build-listing.py delete mode 100644 scripts/auto-build/extra-rsync.bat delete mode 100755 scripts/auto-build/mail-mingw-log-hack.sh delete mode 100755 scripts/auto-build/pd-devel-auto-builder.sh delete mode 100755 scripts/auto-build/pd-extended-auto-builder.sh delete mode 100755 scripts/auto-build/pd-extended-release-auto-builder.sh delete mode 100755 scripts/auto-build/pd-main+libs-auto-builder.sh delete mode 100755 scripts/auto-build/pd-main-auto-builder.sh delete mode 100755 scripts/auto-build/pd-puredyne-auto-builder.sh delete mode 100755 scripts/auto-build/pdvanilla-hcs.git-auto-builder.sh delete mode 100755 scripts/auto-build/prep-auto-build-upload delete mode 100755 scripts/auto-build/pure-data-rsync delete mode 100755 scripts/auto-build/pure-data-rsync-checkout delete mode 100755 scripts/auto-build/pure-data.git-auto-builder.sh delete mode 100755 scripts/auto-build/pure-data.umlaeute.git-auto-builder.sh delete mode 100644 scripts/auto-build/run-automated-build.bat delete mode 100755 scripts/auto-build/run-automated-build.cygwin.sh delete mode 100755 scripts/auto-build/run-automated-builder delete mode 100755 scripts/auto-build/tcltk_core-8-4-branch_auto-builder.sh delete mode 100755 scripts/auto-build/tcltk_core-8-5-branch_auto-builder.sh delete mode 100755 scripts/build-libs-for-pd-on-mingw.sh delete mode 100644 scripts/build-packages.sh delete mode 100755 scripts/checkout-developer-layout.sh delete mode 100755 scripts/config-switcher.sh delete mode 100755 scripts/convert-help-to-standard.sh delete mode 100755 scripts/download-pd-archives.sh delete mode 100755 scripts/find-wish.app.sh delete mode 100644 scripts/guiplugins/buttonbar/buttonbar-plugin.tcl delete mode 100644 scripts/guiplugins/buttonbar/images/bng.gif delete mode 100644 scripts/guiplugins/buttonbar/images/floatatom.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.bng.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.hradio.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.hslider.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.msg.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.obj.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.text.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.vradio.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hi-bit/old.vslider.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hradio.gif delete mode 100644 scripts/guiplugins/buttonbar/images/hslider.gif delete mode 100644 scripts/guiplugins/buttonbar/images/images.txt delete mode 100644 scripts/guiplugins/buttonbar/images/make-base64.sh delete mode 100644 scripts/guiplugins/buttonbar/images/menuarray.gif delete mode 100644 scripts/guiplugins/buttonbar/images/msg.gif delete mode 100644 scripts/guiplugins/buttonbar/images/mycnv.gif delete mode 100644 scripts/guiplugins/buttonbar/images/numbox.gif delete mode 100644 scripts/guiplugins/buttonbar/images/obj.gif delete mode 100644 scripts/guiplugins/buttonbar/images/symbolatom.gif delete mode 100644 scripts/guiplugins/buttonbar/images/text.gif delete mode 100644 scripts/guiplugins/buttonbar/images/toggle.gif delete mode 100644 scripts/guiplugins/buttonbar/images/vradio.gif delete mode 100644 scripts/guiplugins/buttonbar/images/vslider.gif delete mode 100644 scripts/guiplugins/buttonbar/images/vumeter.gif delete mode 100644 scripts/guiplugins/file_associations/file_associations-plugin.tcl delete mode 100644 scripts/guiplugins/object_db/object_db-plugin.tcl delete mode 100644 scripts/guiplugins/object_db/object_tags.tcllist delete mode 100644 scripts/guiplugins/quickbindings/quickbindings-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/LICENSE.txt delete mode 100644 scripts/guiplugins/simple_examples/add_item_to_popup_menu-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/add_menubar_to_popup_menu-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/add_my_patches_to_media_menu-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/clone_put_menu_into_popup_menu-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/editmode_look-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/font_doesnt_follow_focus-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/global_editmode_0-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/gtklook-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/hide_cords_in_editmode-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/insert_into_popup_menu-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/meters_default_on-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/pdwindow_popup_mode-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/remove_menubar_from_patch_windows-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/set_canvas_minsize-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/set_custom_stored_histories-plugin.tcl delete mode 100644 scripts/guiplugins/simple_examples/tripleclickobj-plugin.tcl delete mode 100755 scripts/insert_declare.py delete mode 100755 scripts/parse-help-patches.pl delete mode 100755 scripts/update-developer-layout.sh diff --git a/abstractions/Makefile b/abstractions/Makefile index b85a75307..32d35c025 100644 --- a/abstractions/Makefile +++ b/abstractions/Makefile @@ -379,33 +379,6 @@ pd-wavelet_install: $(DESTDIR)$(readmesdir)/$(PDWAVELET_NAME).txt -#==============================================================================# -# -# DEVELOPER'S TARGETS -# -#==============================================================================# - -# make the symlinks necessary to simulate the installed environment -devsymlinks: -# make symlinks for help patches - test -e $(abstractions_src)/../2.control.examples || \ - ln -s $(pd_src)/doc/2.control.examples \ - $(abstractions_src)/../2.control.examples - test -e $(abstractions_src)/../3.audio.examples || \ - ln -s $(pd_src)/doc/3.audio.examples \ - $(abstractions_src)/../3.audio.examples -# pd <= 0.38-4 has 4.fft.examples - test -e $(abstractions_src)/../4.fft.examples || \ - ln -s $(pd_src)/doc/4.fft.examples $(abstractions_src)/../4.fft.examples -# pd > 0.38-4 has 4.data.structures - test -e $(abstractions_src)/../4.data.structures || \ - ln -s $(pd_src)/doc/4.data.structures \ - $(abstractions_src)/../4.data.structures - test -e $(abstractions_src)/../7.stuff || \ - ln -s $(pd_src)/doc/7.stuff $(abstractions_src)/../7.stuff - test -e $(abstractions_src)/../sound || \ - ln -s $(pd_src)/doc/sound $(abstractions_src)/../sound - #==============================================================================# # # CLEAN TARGETS diff --git a/doc/Makefile b/doc/Makefile index 8035e521e..2b09e75d4 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -235,32 +235,6 @@ tutorials_clean: -rmdir -- $(DESTDIR)$(manualsdir)/4.Physical -#==============================================================================# -# -# DEVELOPER'S TARGETS -# -#==============================================================================# - -# make the symlinks necessary to simulate the installed environment -devsymlinks: - test -e $(doc_src)/2.control.examples || \ - ln -sf $(pd_src)/doc/2.control.examples $(doc_src)/2.control.examples - test -e $(doc_src)/3.audio.examples || \ - ln -sf $(pd_src)/doc/3.audio.examples $(doc_src)/3.audio.examples -# pd <= 0.38-4 has 4.fft.examples - test -e $(doc_src)/4.fft.examples || \ - ln -sf $(pd_src)/doc/4.fft.examples $(doc_src)/4.fft.examples -# pd > 0.38-4 has 4.data.structures - test -e $(doc_src)/4.data.structures || \ - ln -sf $(pd_src)/doc/4.data.structures $(doc_src)/4.data.structures - test -e $(doc_src)/7.stuff || \ - ln -sf $(pd_src)/doc/7.stuff $(doc_src)/7.stuff - test -e $(doc_src)/sound || \ - ln -sf $(pd_src)/doc/sound $(doc_src)/sound -# put the pddp support objects in the path - test -e $(doc_src)/pddp/pddp || \ - ln -sf $(externals_src)/pddp $(doc_src)/pddp/pddp - #==============================================================================# # # CLEAN TARGETS diff --git a/externals/Makefile b/externals/Makefile index 26f1cbf5f..01eb4672c 100644 --- a/externals/Makefile +++ b/externals/Makefile @@ -2379,9 +2379,6 @@ earplug_clean: # #==============================================================================# -# make the symlinks necessary to simulate the installed environment -devsymlinks: - TAGS: etags etags: diff --git a/packages/Makefile b/packages/Makefile index de8d933ff..775420ca3 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -220,10 +220,6 @@ noncvs_install: -install -p $(packages_src)/noncvs/$(OS_NAME)/bin/*.* $(DESTDIR)$(bindir) -install -p $(packages_src)/noncvs/$(OS_NAME)/doc/5.reference/*.* $(DESTDIR)$(helpdir) -install -p $(packages_src)/noncvs/$(OS_NAME)/extra/*.* $(DESTDIR)$(objectsdir) - -test -d $(packages_src)/noncvs/$(OS_NAME)/gripd && \ - install -d $(DESTDIR)$(prefix)/gripd - -install -p $(packages_src)/noncvs/$(OS_NAME)/gripd/*.* \ - $(DESTDIR)$(prefix)/gripd #==============================================================================# @@ -380,94 +376,6 @@ doc_format: -find $(DESTDIR) -name .svn -print0 | xargs -0 rm -rf -#==============================================================================# -# -# DEVELOPER TARGETS -# -#==============================================================================# - -devsymlinks: devsymlinks_$(OS_NAME) - - - -devsymlinks_windows: - - -devsymlinks_linux: - - -TCLTK_VERSION=8.4 -devsymlinks_darwin: devsymlinks_clean -# this makes /usr/local symlinks to the Tcl/Tk frameworks so that ./configure -# can find them. -# headers - test -e /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Headers/tcl.h && \ - sudo ln -s \ - /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Headers/tcl.h \ - /usr/local/include/tcl.h - test -e /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Headers/tclDecls.h && \ - sudo ln -s \ - /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Headers/tclDecls.h \ - /usr/local/include/tclDecls.h - test -e /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Headers/tclPlatDecls.h && \ - sudo ln -s \ - /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Headers/tclPlatDecls.h \ - /usr/local/include/tclPlatDecls.h -# libs - test -e /Library/Frameworks/Tcl.framework/tclConfig.sh && \ - sudo ln -s /Library/Frameworks/Tcl.framework/tclConfig.sh /usr/local/lib - test -e /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Tcl && \ - sudo ln -s \ - /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/Tcl \ - /usr/local/lib/libtcl$(TCLTK_VERSION).dylib - test -e /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/libtclstub$(TCLTK_VERSION).a && \ - sudo ln -s \ - /Library/Frameworks/Tcl.framework/Versions/$(TCLTK_VERSION)/libtclstub$(TCLTK_VERSION).a \ - /usr/local/lib/libtclstub$(TCLTK_VERSION).a - test -e /usr/local/lib/libtcl$(TCLTK_VERSION).dylib && \ - sudo ln -s /usr/local/lib/libtcl$(TCLTK_VERSION).dylib /usr/local/lib/libtcl.dylib -# headers - test -e /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tk.h && \ - sudo ln -s \ - /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tk.h \ - /usr/local/include/tk.h - test -e /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkDecls.h && \ - sudo ln -s \ - /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkDecls.h \ - /usr/local/include/tkDecls.h - test -e /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkIntXlibDecls.h && \ - sudo ln -s \ - /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkIntXlibDecls.h \ - /usr/local/include/tkIntXlibDecls.h - test -e /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkMacOSX.h && \ - sudo ln -s \ - /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkMacOSX.h \ - /usr/local/include/tkMacOSX.h - test -e /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkPlatDecls.h && \ - sudo ln -s \ - /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Headers/tkPlatDecls.h \ - /usr/local/include/tkPlatDecls.h -# libs - test -e /Library/Frameworks/Tk.framework/tkConfig.sh && \ - sudo ln -s /Library/Frameworks/Tk.framework/tkConfig.sh /usr/local/lib - test -e /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Tk && \ - sudo ln -s /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/Tk \ - /usr/local/lib/libtk$(TCLTK_VERSION).dylib - test -e /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/libtkstub$(TCLTK_VERSION).a && \ - sudo ln -s \ - /Library/Frameworks/Tk.framework/Versions/$(TCLTK_VERSION)/libtkstub$(TCLTK_VERSION).a \ - /usr/local/lib/libtkstub$(TCLTK_VERSION).a - test -e /usr/local/lib/libtk$(TCLTK_VERSION).dylib && \ - sudo ln -s /usr/local/lib/libtk$(TCLTK_VERSION).dylib /usr/local/lib/libtk.dylib - - - -devsymlinks_clean: - -sudo rm -f /usr/local/include/tcl*.h /usr/local/include/tk*.h - -sudo rm -f /usr/local/lib/tclConfig.sh /usr/local/lib/tkConfig.sh - -sudo rm -f /usr/local/lib/libtcl*.dylib /usr/local/lib/libtk*.dylib - -sudo rm -f /usr/local/lib/libtclstub*.a /usr/local/lib/libtkstub*.a - # AG: The set_version target is broken since it modifies m_pd.h in-place # during the build, which is a bad thing to do to files which are supposed to # be kept in a source code repository. Instead, we create s_stuff.h from @@ -494,93 +402,6 @@ unset_version: mv m_pd.h.tmp m_pd.h -patch_pd: - @echo pd_src $(pd_src) -# apply all platform-neutral patches - for patch in $(shell ls -1 $(CWD)/patches/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 < $$patch; \ - done -# apply all platform-specific patches (is broken on MINGW/Windows) -ifneq ($(OS_NAME),windows) - for patch in $(shell ls -1 $(CWD)/patches/$(OS_NAME)/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 < $$patch; \ - done -endif - -rm -f -- $(pd_src)/src/configure $(pd_src)/src/makefile - @echo " " - @echo "patching completed." - - -unpatch_pd: -# apply all platform-specific patches (is broken on MINGW/Windows) -ifneq ($(OS_NAME),windows) - for patch in $(shell ls -1r $(CWD)/patches/$(OS_NAME)/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 -R < $$patch; \ - done -endif -# apply all platform-neutral patches - for patch in $(shell ls -1r $(CWD)/patches/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 -R < $$patch; \ - done - -rm -f -- $(pd_src)/src/configure $(pd_src)/src/makefile \ - $(pd_src)/src/makefile.dependencies - @echo " " - @echo "unpatching completed." - - -patch: patch_pd set_version - -unpatch: unset_version unpatch_pd - - - -patch_pd_devel: - @echo pd_src $(pd_src) -# apply all platform-neutral patches - for patch in $(shell ls -1 $(CWD)/patches/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 < $$patch; \ - done -# apply all platform-specific patches - for patch in $(shell ls -1 $(CWD)/patches/$(OS_NAME)/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 < $$patch; \ - done - -rm -f -- $(pd_src)/src/configure $(pd_src)/src/makefile -# change Pd's version number to reflect the extended build -# this needs the complete_version_defines patch to work - cd $(pd_src)/src/ && \ - sed 's|^\(#define PD_TEST_VERSION "\).*"|\1$(PD_BUILD_VERSION)"|' m_pd.h > \ - m_pd.h.tmp && mv m_pd.h.tmp m_pd.h - @echo " " - @echo "patching completed." - - -unpatch_pd_devel: -# change the version number back to the original -# this needs the complete_version_defines patch to work - cd $(pd_src)/src && \ - sed 's|^\(#define PD_TEST_VERSION ".*\)$(PD_BUILD_VERSION)"|\1"|' \ - m_pd.h > m_pd.h.tmp && \ - mv m_pd.h.tmp m_pd.h -# apply all platform-specific patches - for patch in $(shell ls -1r $(CWD)/patches/$(OS_NAME)/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 -R < $$patch; \ - done -# apply all platform-neutral patches - for patch in $(shell ls -1r $(CWD)/patches/*.patch); do \ - echo "Applying $$patch"; \ - cd $(pd_src)/src/ && patch -p0 -R < $$patch; \ - done - -rm -f -- $(pd_src)/src/configure $(pd_src)/src/makefile - @echo " " - @echo "unpatching completed." - #==============================================================================# # # CLEAN TARGETS diff --git a/packages/linux_make/Makefile b/packages/linux_make/Makefile index 5b9cf1ff6..f47e205d3 100644 --- a/packages/linux_make/Makefile +++ b/packages/linux_make/Makefile @@ -142,7 +142,6 @@ debstage: $(bindir) $(DESTDIR)/usr/share/emacs/site-lisp/ # Pd-related scripts #install -p $(scripts_src)/pd-diff $(DESTDIR)$(bindir) - #install -p $(scripts_src)/config-switcher.sh $(DESTDIR)$(bindir) deb: DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH) deb: DEB_PD_VERSION := $(shell echo $(PD_VERSION) | sed 's|\(.*\)-l2ork-\(.*\)|\1-\2|') diff --git a/packages/linux_make/debian/control b/packages/linux_make/debian/control index edd128f2f..eb6ca6656 100644 --- a/packages/linux_make/debian/control +++ b/packages/linux_make/debian/control @@ -6,10 +6,10 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu> Homepage: http://l2ork.music.vt.edu Package: pd-l2ork Architecture: i386 -Depends: libc6, xterm | x-terminal-emulator, tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libglew-dev, libmagick++-dev, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl | libgsl2, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, libstk0-dev, libsndobj-dev, libfluidsynth-dev, tclxapian, fluid-soundfont-gm, python-tk, byacc +Depends: libc6, xterm | x-terminal-emulator, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl | libgsl2, python, libsmpeg0, libjpeg62, libflite1, libgsm1, libxv1, fluid-soundfont-gm, byacc Provides: pd-l2ork Installed-Size: 90624 -Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, libslv2-dev, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 +Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 Conflicts: Replaces: pd-l2ork Description: Interactive multimedia programming environment diff --git a/packages/linux_make/debian/control.desktop b/packages/linux_make/debian/control.desktop index edd128f2f..eb6ca6656 100644 --- a/packages/linux_make/debian/control.desktop +++ b/packages/linux_make/debian/control.desktop @@ -6,10 +6,10 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu> Homepage: http://l2ork.music.vt.edu Package: pd-l2ork Architecture: i386 -Depends: libc6, xterm | x-terminal-emulator, tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libglew-dev, libmagick++-dev, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl | libgsl2, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, libstk0-dev, libsndobj-dev, libfluidsynth-dev, tclxapian, fluid-soundfont-gm, python-tk, byacc +Depends: libc6, xterm | x-terminal-emulator, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl | libgsl2, python, libsmpeg0, libjpeg62, libflite1, libgsm1, libxv1, fluid-soundfont-gm, byacc Provides: pd-l2ork Installed-Size: 90624 -Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, libslv2-dev, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 +Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 Conflicts: Replaces: pd-l2ork Description: Interactive multimedia programming environment diff --git a/packages/linux_make/debian/control.raspbian b/packages/linux_make/debian/control.raspbian index 58dcd8b0c..b758c52de 100644 --- a/packages/linux_make/debian/control.raspbian +++ b/packages/linux_make/debian/control.raspbian @@ -6,10 +6,10 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu> Homepage: http://l2ork.music.vt.edu Package: pd-l2ork Architecture: i386 -Depends: xterm | x-terminal-emulator, tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, libstk0-dev, libsndobj-dev, libfluidsynth-dev, tclxapian, fluid-soundfont-gm, python-tk, byacc +Depends: xterm | x-terminal-emulator, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, fluid-soundfont-gm, byacc Provides: pd-l2ork Installed-Size: 90624 -Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, libslv2-dev, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 +Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 Conflicts: Replaces: pd-l2ork Description: Interactive multimedia programming environment diff --git a/packages/linux_make/debian/control.ubuntu b/packages/linux_make/debian/control.ubuntu index 3ef3c4c43..b203e170b 100644 --- a/packages/linux_make/debian/control.ubuntu +++ b/packages/linux_make/debian/control.ubuntu @@ -6,10 +6,10 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu> Homepage: http://l2ork.music.vt.edu Package: pd-l2ork Architecture: i386 -Depends: xterm | x-terminal-emulator, libc6 (>= 2.1.5), tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libglew1.5, libmagick++4, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1 +Depends: xterm | x-terminal-emulator, libc6 (>= 2.1.5), libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libglew1.5, libmagick++4, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, libflite1, libgsm1 Provides: pd-l2ork Installed-Size: 90624 -Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, libslv2-dev, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 +Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 Conflicts: pd-l2ork, puredata, pd-extended, puredata-utils, puredata-extra, gem, puredata-core, puredata-gui, puredata-doc Replaces: pd-l2ork Description: Interactive multimedia programming environment diff --git a/packages/patches/add_string_support.patch b/packages/patches/add_string_support.patch deleted file mode 100644 index 80988458d..000000000 --- a/packages/patches/add_string_support.patch +++ /dev/null @@ -1,444 +0,0 @@ -Index: pd/src/g_text.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_text.c,v -retrieving revision 1.15 -diff -u -w -r1.15 g_text.c ---- g_text.c 4 Oct 2006 19:35:06 -0000 1.15 -+++ g_text.c 12 Feb 2007 03:45:43 -0000 -@@ -276,6 +276,11 @@ - outlet_symbol(x->mr_outlet, s); - } - -+static void messresponder_blob(t_messresponder *x, t_blob *st) -+{ /* MP 20070107 blob type */ -+ outlet_blob(x->mr_outlet, st); -+} -+ - static void messresponder_list(t_messresponder *x, - t_symbol *s, int argc, t_atom *argv) - { -@@ -307,6 +312,13 @@ - binbuf_eval(x->m_text.te_binbuf, &x->m_messresponder.mr_pd, 1, &at); - } - -+static void message_blob(t_message *x, t_blob *st) -+{ -+ t_atom at; -+ SETBLOB(&at, st); -+ binbuf_eval(x->m_text.te_binbuf, &x->m_messresponder.mr_pd, 1, &at); -+} -+ - static void message_list(t_message *x, t_symbol *s, int argc, t_atom *argv) - { - binbuf_eval(x->m_text.te_binbuf, &x->m_messresponder.mr_pd, argc, argv); -@@ -1333,6 +1345,7 @@ - class_addbang(message_class, message_bang); - class_addfloat(message_class, message_float); - class_addsymbol(message_class, message_symbol); -+ class_addblob(message_class, message_blob); - class_addlist(message_class, message_list); - class_addanything(message_class, message_list); - -Index: pd/src/m_atom.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_atom.c,v -retrieving revision 1.4 -diff -u -w -r1.4 m_atom.c ---- m_atom.c 11 Aug 2006 20:09:07 -0000 1.4 -+++ m_atom.c 12 Feb 2007 03:45:43 -0000 -@@ -28,6 +28,14 @@ - else return (&s_float); - } - -+t_blob *atom_getblob(t_atom *a) /* MP 20070108 */ -+{ -+ static unsigned char c = 0;/* a default blob to avoid null pointers. This should be somewhere else...? */ -+ static t_blob st = {1L, &c}; -+ if (a->a_type == A_BLOB) return (a->a_w.w_blob); -+ else return (&st); -+} -+ - t_symbol *atom_gensym(t_atom *a) /* this works better for graph labels */ - { - char buf[30]; -Index: pd/src/m_binbuf.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_binbuf.c,v -retrieving revision 1.13 -diff -u -w -r1.13 m_binbuf.c ---- m_binbuf.c 4 Oct 2006 19:35:06 -0000 1.13 -+++ m_binbuf.c 12 Feb 2007 03:45:44 -0000 -@@ -672,6 +672,10 @@ - case A_SYMBOL: - typedmess(target, stackwas->a_w.w_symbol, nargs-1, stackwas+1); - break; -+ case A_BLOB: /* MP 20070106 blob type */ -+ if (nargs == 1) pd_blob(target, stackwas->a_w.w_blob); -+ else pd_list(target, 0, nargs, stackwas); -+ break; - case A_FLOAT: - if (nargs == 1) pd_float(target, stackwas->a_w.w_float); - else pd_list(target, 0, nargs, stackwas); -Index: pd/src/m_class.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_class.c,v -retrieving revision 1.7 -diff -u -w -r1.7 m_class.c ---- m_class.c 15 Aug 2006 04:54:15 -0000 1.7 -+++ m_class.c 12 Feb 2007 03:45:44 -0000 -@@ -20,6 +20,7 @@ - - static t_symbol *class_loadsym; /* name under which an extern is invoked */ - static void pd_defaultfloat(t_pd *x, t_float f); -+static void pd_defaultblob(t_pd *x, t_blob *st); /* MP20061226 blob type */ - static void pd_defaultlist(t_pd *x, t_symbol *s, int argc, t_atom *argv); - t_pd pd_objectmaker; /* factory for creating "object" boxes */ - t_pd pd_canvasmaker; /* factory for creating canvases */ -@@ -38,6 +39,11 @@ - else (*(*x)->c_anymethod)(x, &s_bang, 0, 0); - } - -+static void pd_defaultblob(t_pd *x, t_blob *st) /* MP 20061226 blob type */ -+{ /* for now just reject it, later convert to symbol/float/list */ -+ pd_error(x, "%s: no method for blob so far...", (*x)->c_name->s_name); -+} -+ - static void pd_defaultpointer(t_pd *x, t_gpointer *gp) - { - if (*(*x)->c_listmethod != pd_defaultlist) -@@ -205,6 +211,7 @@ - c->c_pointermethod = pd_defaultpointer; - c->c_floatmethod = pd_defaultfloat; - c->c_symbolmethod = pd_defaultsymbol; -+ c->c_blobmethod = pd_defaultblob; /* MP 20061226 blob type */ - c->c_listmethod = pd_defaultlist; - c->c_anymethod = pd_defaultanything; - c->c_wb = (typeflag == CLASS_PATCHABLE ? &text_widgetbehavior : 0); -@@ -288,6 +295,12 @@ - if (argtype != A_SYMBOL || va_arg(ap, t_atomtype)) goto phooey; - class_addsymbol(c, fn); - } -+ else if (sel == &s_blob) /* MP 20070106 blob type */ -+ { -+ post("class_addmethod: %p", fn); -+ if (argtype != A_BLOB || va_arg(ap, t_atomtype)) goto phooey; -+ class_addblob(c, fn); -+ } - else if (sel == &s_list) - { - if (argtype != A_GIMME) goto phooey; -@@ -346,6 +359,11 @@ - c->c_symbolmethod = (t_symbolmethod)fn; - } - -+void class_addblob(t_class *c, t_method fn) /* MP 20061226 blob type */ -+{ -+ c->c_blobmethod = (t_blobmethod)fn; -+} -+ - void class_addlist(t_class *c, t_method fn) - { - c->c_listmethod = (t_listmethod)fn; -@@ -564,9 +582,10 @@ - t_symbol s_x = {"x", 0, 0}; - t_symbol s_y = {"y", 0, 0}; - t_symbol s_ = {"", 0, 0}; -+t_symbol s_blob = {"blob", 0, 0}; /* MP 20061223 blob type */ - - static t_symbol *symlist[] = { &s_pointer, &s_float, &s_symbol, &s_bang, -- &s_list, &s_anything, &s_signal, &s__N, &s__X, &s_x, &s_y, &s_}; -+ &s_list, &s_anything, &s_signal, &s__N, &s__X, &s_x, &s_y, &s_, &s_blob}; /* MP 20061223 added s_blob */ - - void mess_init(void) - { -@@ -654,6 +673,13 @@ - (*c->c_symbolmethod)(x, &s_); - return; - } -+ if (s == &s_blob) /* MP 20061226 blob type */ -+ { -+ /*post("pd_typedmess argc = %d\n", argc);*//* MP 20061226 debug */ -+ if (argc == 1) (*c->c_blobmethod)(x, argv->a_w.w_blob); -+ else goto badarg; -+ return; -+ } - for (i = c->c_nmethod, m = c->c_methods; i--; m++) - if (m->me_name == s) - { -@@ -698,6 +724,19 @@ - } - dp++; - break; -+ case A_BLOB:/* MP 20070106 blob type */ -+ /*post("pd_typedmess A_BLOB");*/ -+ if (!argc) goto badarg; -+ if (argv->a_type == A_BLOB) -+ { -+ /*post("argv->a_type == A_BLOB, argc = %d, narg= %d", argc, narg);*/ -+ *ap = (t_int)(argv->a_w.w_blob); -+ } -+ argc--; -+ argv++; -+ narg++; -+ ap++; -+ break; - case A_SYMBOL: - if (!argc) goto badarg; - case A_DEFSYM: -@@ -772,6 +811,10 @@ - { - case 'f': SETFLOAT(at, va_arg(ap, double)); break; - case 's': SETSYMBOL(at, va_arg(ap, t_symbol *)); break; -+ case 't': -+ SETBLOB(at, va_arg(ap, t_blob *)); -+ /*post("pd_vmess: arg[0].a_w.w_blob = %p", arg[0].a_w.w_blob);*/ -+ break; /* MP 20061226 blob type */ - case 'i': SETFLOAT(at, va_arg(ap, t_int)); break; - case 'p': SETPOINTER(at, va_arg(ap, t_gpointer *)); break; - default: goto done; -Index: pd/src/m_imp.h -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_imp.h,v -retrieving revision 1.4 -diff -u -w -r1.4 m_imp.h ---- m_imp.h 19 Aug 2005 23:28:03 -0000 1.4 -+++ m_imp.h 12 Feb 2007 03:45:44 -0000 -@@ -25,6 +25,7 @@ - typedef void (*t_pointermethod)(t_pd *x, t_gpointer *gp); - typedef void (*t_floatmethod)(t_pd *x, t_float f); - typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s); -+typedef void (*t_blobmethod)(t_pd *x, t_blob *st); /* MP20061226 blob type */ - typedef void (*t_listmethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); - typedef void (*t_anymethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); - -@@ -41,6 +42,7 @@ - t_pointermethod c_pointermethod; - t_floatmethod c_floatmethod; - t_symbolmethod c_symbolmethod; -+ t_blobmethod c_blobmethod; /* MP20061226 blob type */ - t_listmethod c_listmethod; - t_anymethod c_anymethod; - struct _widgetbehavior *c_wb; /* "gobjs" only */ -Index: pd/src/m_obj.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_obj.c,v -retrieving revision 1.4 -diff -u -w -r1.4 m_obj.c ---- m_obj.c 18 May 2005 04:28:51 -0000 1.4 -+++ m_obj.c 12 Feb 2007 03:45:44 -0000 -@@ -15,6 +15,7 @@ - t_gpointer *iu_pointerslot; - t_float *iu_floatslot; - t_symbol **iu_symslot; -+ t_blob **iu_blobslot; /* MP 20061226 blob type */ - t_sample iu_floatsignalvalue; - }; - -@@ -32,9 +33,10 @@ - #define i_pointerslot i_un.iu_pointerslot - #define i_floatslot i_un.iu_floatslot - #define i_symslot i_un.iu_symslot -+#define i_blobslot i_un.iu_blobslot /* MP 20061226 blob type */ - - static t_class *inlet_class, *pointerinlet_class, *floatinlet_class, -- *symbolinlet_class; -+ *symbolinlet_class, *blobinlet_class; /* MP 20061226 added blobinlet_class */ - - #define ISINLET(pd) ((*(pd) == inlet_class) || \ - (*(pd) == pointerinlet_class) || \ -@@ -111,6 +113,26 @@ - else inlet_wrong(x, &s_symbol); - } - -+static void inlet_blob(t_inlet *x, t_blob *st) /* MP20061226 blob type */ -+{ -+ /*post("inlet_blob (%p): st %p", &inlet_blob, st);*/ -+ if (x->i_symfrom == &s_blob) -+ { -+ /*post("inlet_blob calling pd_vmess");*/ -+ pd_vmess(x->i_dest, x->i_symto, "t", st); -+ } -+ else if (!x->i_symfrom) -+ { -+ /*post("inlet_blob calling pd_blob");*/ -+ pd_blob(x->i_dest, st); -+ } -+ else -+ { -+ /*post("inlet_blob calling inlet_wrong");*/ -+ inlet_wrong(x, &s_blob); -+ } -+} -+ - static void inlet_list(t_inlet *x, t_symbol *s, int argc, t_atom *argv) - { - t_atom at; -@@ -192,6 +214,23 @@ - return (x); - } - -+t_inlet *blobinlet_new(t_object *owner, t_blob **stp) /* MP 20061226 blob type */ -+{ -+ t_inlet *x = (t_inlet *)pd_new(blobinlet_class), *y, *y2; -+ x->i_owner = owner; -+ x->i_dest = 0; -+ x->i_symfrom = &s_blob; -+ x->i_blobslot = stp; -+ x->i_next = 0; -+ if (y = owner->ob_inlet) -+ { -+ while (y2 = y->i_next) y = y2; -+ y->i_next = x; -+ } -+ else owner->ob_inlet = x; -+ return (x); -+} -+ - static void symbolinlet_symbol(t_inlet *x, t_symbol *s) - { - *(x->i_symslot) = s; -@@ -244,6 +283,7 @@ - class_addpointer(inlet_class, inlet_pointer); - class_addfloat(inlet_class, inlet_float); - class_addsymbol(inlet_class, inlet_symbol); -+ class_addblob(inlet_class, inlet_blob); /* MP 20061226 blob type */ - class_addlist(inlet_class, inlet_list); - class_addanything(inlet_class, inlet_anything); - -@@ -366,6 +406,18 @@ - --stackcount; - } - -+void outlet_blob(t_outlet *x, t_blob *st) /* MP 20061226 blob type */ -+{ -+ /*post("outlet_blob %p %lu", st, st->s_length);*/ -+ t_outconnect *oc; -+ if(++stackcount >= STACKITER) -+ outlet_stackerror(x); -+ else -+ for (oc = x->o_connections; oc; oc = oc->oc_next) -+ pd_blob(oc->oc_to, st); -+ --stackcount; -+} -+ - void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv) - { - t_outconnect *oc; -Index: pd/src/m_pd.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_pd.c,v -retrieving revision 1.4 -diff -u -w -r1.4 m_pd.c ---- m_pd.c 28 Nov 2004 21:20:42 -0000 1.4 -+++ m_pd.c 12 Feb 2007 03:45:44 -0000 -@@ -284,6 +284,12 @@ - (*(*x)->c_symbolmethod)(x, s); - } - -+void pd_blob(t_pd *x, t_blob *st) /* MP20061226 blob type */ -+{ -+ /*post("pd_blob: st %p length %lu (*x)->c_blobmethod %p", st, st->s_length, (*x)->c_blobmethod);*/ -+ (*(*x)->c_blobmethod)(x, st); -+} -+ - void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv) - { - (*(*x)->c_listmethod)(x, &s_list, argc, argv); -Index: pd/src/m_pd.h -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v -retrieving revision 1.17 -diff -u -w -r1.17 m_pd.h ---- m_pd.h 22 Oct 2006 21:46:11 -0000 1.17 -+++ m_pd.h 12 Feb 2007 03:45:44 -0000 -@@ -102,6 +102,16 @@ - t_gstub *gp_stub; /* stub which points to glist/array */ - } t_gpointer; - -+#define PD_BLOBS 1 /* MP20070211 Use this to test for blob capability */ -+/* MP20061223 blob type: */ -+typedef struct _blob /* pointer to a blob */ -+{ -+ unsigned long s_length; /* length of blob in bytes */ -+ unsigned char *s_data; /* pointer to 1st byte of blob */ -+} t_blob; -+/* ...MP20061223 blob type */ -+ -+ - typedef union word - { - t_float w_float; -@@ -110,6 +120,7 @@ - t_array *w_array; - struct _glist *w_list; - int w_index; -+ t_blob *w_blob; /* MP20061223 blob type */ - } t_word; - - typedef enum -@@ -125,7 +136,8 @@ - A_DOLLAR, - A_DOLLSYM, - A_GIMME, -- A_CANT -+ A_CANT, -+ A_BLOB /* MP20061223 blob type */ - } t_atomtype; - - #define A_DEFSYMBOL A_DEFSYM /* better name for this */ -@@ -212,6 +224,7 @@ - EXTERN t_symbol s_pointer; - EXTERN t_symbol s_float; - EXTERN t_symbol s_symbol; -+EXTERN t_symbol s_blob; - EXTERN t_symbol s_bang; - EXTERN t_symbol s_list; - EXTERN t_symbol s_anything; -@@ -255,6 +268,7 @@ - #define SETFLOAT(atom, f) ((atom)->a_type = A_FLOAT, (atom)->a_w.w_float = (f)) - #define SETSYMBOL(atom, s) ((atom)->a_type = A_SYMBOL, \ - (atom)->a_w.w_symbol = (s)) -+#define SETBLOB(atom, st) ((atom)->a_type = A_BLOB, (atom)->a_w.w_blob = (st)) /* MP 20061226 blob type */ - #define SETDOLLAR(atom, n) ((atom)->a_type = A_DOLLAR, \ - (atom)->a_w.w_index = (n)) - #define SETDOLLSYM(atom, s) ((atom)->a_type = A_DOLLSYM, \ -@@ -263,6 +277,7 @@ - EXTERN t_float atom_getfloat(t_atom *a); - EXTERN t_int atom_getint(t_atom *a); - EXTERN t_symbol *atom_getsymbol(t_atom *a); -+EXTERN t_blob *atom_getblob(t_atom *a);/* MP 20070108 blob type */ - EXTERN t_symbol *atom_gensym(t_atom *a); - EXTERN t_float atom_getfloatarg(int which, int argc, t_atom *argv); - EXTERN t_int atom_getintarg(int which, int argc, t_atom *argv); -@@ -326,6 +341,7 @@ - EXTERN void pd_pointer(t_pd *x, t_gpointer *gp); - EXTERN void pd_float(t_pd *x, t_float f); - EXTERN void pd_symbol(t_pd *x, t_symbol *s); -+EXTERN void pd_blob(t_pd *x, t_blob *st); /* MP 20061226 blob type */ - EXTERN void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv); - EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv); - #define pd_class(x) (*(x)) -@@ -350,6 +366,7 @@ - EXTERN void outlet_pointer(t_outlet *x, t_gpointer *gp); - EXTERN void outlet_float(t_outlet *x, t_float f); - EXTERN void outlet_symbol(t_outlet *x, t_symbol *s); -+EXTERN void outlet_blob(t_outlet *x, t_blob *st); /* MP 20061226 blob type */ - EXTERN void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv); - EXTERN void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv); - EXTERN t_symbol *outlet_getsymbol(t_outlet *x); -@@ -404,6 +421,7 @@ - EXTERN void class_addpointer(t_class *c, t_method fn); - EXTERN void class_doaddfloat(t_class *c, t_method fn); - EXTERN void class_addsymbol(t_class *c, t_method fn); -+EXTERN void class_addblob(t_class *c, t_method fn);/* MP 20061226 blob type */ - EXTERN void class_addlist(t_class *c, t_method fn); - EXTERN void class_addanything(t_class *c, t_method fn); - EXTERN void class_sethelpsymbol(t_class *c, t_symbol *s); -@@ -432,6 +450,7 @@ - #define class_addpointer(x, y) class_addpointer((x), (t_method)(y)) - #define class_addfloat(x, y) class_doaddfloat((x), (t_method)(y)) - #define class_addsymbol(x, y) class_addsymbol((x), (t_method)(y)) -+#define class_addblob(x, y) class_addblob((x), (t_method)(y)) /* MP20061226 blob type */ - #define class_addlist(x, y) class_addlist((x), (t_method)(y)) - #define class_addanything(x, y) class_addanything((x), (t_method)(y)) - #endif diff --git a/packages/patches/arrow_keys_update_scrollbars-0.40.3.patch b/packages/patches/arrow_keys_update_scrollbars-0.40.3.patch deleted file mode 100644 index ad9ad44c2..000000000 --- a/packages/patches/arrow_keys_update_scrollbars-0.40.3.patch +++ /dev/null @@ -1,24 +0,0 @@ -Index: g_editor.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v -retrieving revision 1.20.6.3 -diff -u -w -r1.20.6.3 g_editor.c ---- g_editor.c 9 Nov 2007 06:28:44 -0000 1.20.6.3 -+++ g_editor.c 26 Nov 2007 22:51:05 -0000 -@@ -1420,8 +1420,6 @@ - gobj_activate(x->gl_editor->e_selection->sel_what, - x, 1); - } -- if (x->gl_editor->e_onmotion != MA_NONE) -- sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x); - - x->gl_editor->e_onmotion = MA_NONE; - } -@@ -1446,6 +1444,7 @@ - } - if (resortin) canvas_resortinlets(x); - if (resortout) canvas_resortoutlets(x); -+ sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x); - canvas_dirty(x, 1); - } - diff --git a/packages/patches/closeinitbang-0.40-0test03.patch b/packages/patches/closeinitbang-0.40-0test03.patch deleted file mode 100644 index 684b315f4..000000000 --- a/packages/patches/closeinitbang-0.40-0test03.patch +++ /dev/null @@ -1,186 +0,0 @@ -diff -Naur src.org/g_canvas.c src/g_canvas.c ---- g_canvas.c 2006-08-15 21:50:14.000000000 +0200 -+++ g_canvas.c 2006-08-22 16:19:17.000000000 +0200 -@@ -1040,6 +1040,52 @@ - canvas_loadbangabstractions(x); - canvas_loadbangsubpatches(x); - } -+/* JMZ: -+ * initbang is emitted after the canvas is done, but before the parent canvas is done -+ * therefore, initbangs cannot reach to the outlets -+ */ -+void canvas_initbang(t_canvas *x) -+{ -+ t_gobj *y; -+ t_symbol *s = gensym("initbang"); -+ /* run "initbang" for all subpatches, but NOT for the child abstractions */ -+ for (y = x->gl_list; y; y = y->g_next) -+ if (pd_class(&y->g_pd) == canvas_class) -+ { -+ if (!canvas_isabstraction((t_canvas *)y)) -+ canvas_initbang((t_canvas *)y); -+ } -+ -+ /* call the initbang()-method for objects that have one */ -+ for (y = x->gl_list; y; y = y->g_next) -+ { -+ if ((pd_class(&y->g_pd) != canvas_class) && zgetfn(&y->g_pd, s)) -+ { -+ pd_vmess(&y->g_pd, s, ""); -+ } -+ } -+} -+/* JMZ: -+ * closebang is emitted before the canvas is destroyed -+ * and BEFORE subpatches/abstractions in this canvas are destroyed -+ */ -+void canvas_closebang(t_canvas *x) -+{ -+ t_gobj *y; -+ t_symbol *s = gensym("closebang"); -+ -+ /* call the closebang()-method for objects that have one -+ * but NOT for subpatches/abstractions: these are called separately -+ * from g_graph:glist_delete() -+ */ -+ for (y = x->gl_list; y; y = y->g_next) -+ { -+ if ((pd_class(&y->g_pd) != canvas_class) && zgetfn(&y->g_pd, s)) -+ { -+ pd_vmess(&y->g_pd, s, ""); -+ } -+ } -+} - - /* When you ask a canvas its size the result is 2 pixels more than what - you gave it to open it; perhaps there's a 1-pixel border all around it -diff -Naur src.org/g_graph.c src/g_graph.c ---- g_graph.c 2006-03-01 03:00:13.000000000 +0100 -+++ g_graph.c 2006-08-22 16:20:55.000000000 +0200 -@@ -62,6 +62,9 @@ - return (ret); - } - -+/* JMZ: emit a closebang message */ -+void canvas_closebang(t_canvas *x); -+ - /* delete an object from a glist and free it */ - void glist_delete(t_glist *x, t_gobj *y) - { -@@ -71,7 +74,12 @@ - t_canvas *canvas = glist_getcanvas(x); - int drawcommand = class_isdrawcommand(y->g_pd); - int wasdeleting; -- -+ -+ if (pd_class(&y->g_pd) == canvas_class) { -+ /* JMZ: send a closebang to the canvas */ -+ canvas_closebang((t_canvas *)y); -+ } -+ - wasdeleting = canvas_setdeleting(canvas, 1); - if (x->gl_editor) - { -diff -Naur src.org/m_class.c src/m_class.c ---- m_class.c 2006-08-12 07:06:47.000000000 +0200 -+++ m_class.c 2006-08-22 16:19:17.000000000 +0200 -@@ -509,6 +509,8 @@ - static int tryingalready; - - void canvas_popabstraction(t_canvas *x); -+void canvas_initbang(t_canvas *x); -+ - extern t_pd *newest; - - t_symbol* pathsearch(t_symbol *s,char* ext); -@@ -543,9 +545,11 @@ - { - canvas_setargs(argc, argv); - binbuf_evalfile(gensym(nameptr), gensym(dirbuf)); -+ canvas_initbang((t_canvas *)(s__X.s_thing));/* JMZ*/ - if (s__X.s_thing != current) - canvas_popabstraction((t_canvas *)(s__X.s_thing)); - canvas_setargs(0, 0); -+ - } - else error("%s: can't load abstraction within itself\n", s->s_name); - } -diff -Naur src.org/x_misc.c src/x_misc.c ---- x_misc.c 2005-12-31 21:08:38.000000000 +0100 -+++ x_misc.c 2006-08-22 16:19:17.000000000 +0200 -@@ -111,6 +111,66 @@ - gensym("loadbang"), 0); - } - -+ -+/* -------------------------- JMZ: initbang ------------------------------ */ -+static t_class *initbang_class; -+ -+typedef struct _initbang -+{ -+ t_object x_obj; -+} t_initbang; -+ -+static void *initbang_new(void) -+{ -+ t_initbang *x = (t_initbang *)pd_new(initbang_class); -+ outlet_new(&x->x_obj, &s_bang); -+ return (x); -+} -+ -+static void initbang_initbang(t_initbang *x) -+{ -+ if (!sys_noloadbang) /* JMZ: hmm, not sure whether we should respect sys_noloadbang here... */ -+ outlet_bang(x->x_obj.ob_outlet); -+} -+ -+static void initbang_setup(void) -+{ -+ initbang_class = class_new(gensym("initbang"), (t_newmethod)initbang_new, 0, -+ sizeof(t_initbang), CLASS_NOINLET, 0); -+ class_addmethod(initbang_class, (t_method)initbang_initbang, -+ gensym("initbang"), 0); -+} -+ -+ -+/* -------------------------- JMZ: closebang ------------------------------ */ -+static t_class *closebang_class; -+ -+typedef struct _closebang -+{ -+ t_object x_obj; -+} t_closebang; -+ -+static void *closebang_new(void) -+{ -+ t_closebang *x = (t_closebang *)pd_new(closebang_class); -+ outlet_new(&x->x_obj, &s_bang); -+ return (x); -+} -+static void closebang_closebang(t_closebang *x) -+{ -+ if (!sys_noloadbang) /* JMZ: hmm, not sure whether we should respect sys_noloadbang here... */ -+ outlet_bang(x->x_obj.ob_outlet); -+} -+ -+static void closebang_setup(void) -+{ -+ closebang_class = class_new(gensym("closebang"), (t_newmethod)closebang_new, 0, -+ sizeof(t_closebang), CLASS_NOINLET, 0); -+ class_addmethod(closebang_class, (t_method)closebang_closebang, -+ gensym("closebang"), 0); -+} -+ -+ - /* ------------- namecanvas (delete this later) --------------------- */ - static t_class *namecanvas_class; - -@@ -314,6 +374,8 @@ - { - random_setup(); - loadbang_setup(); -+ initbang_setup(); -+ closebang_setup(); - namecanvas_setup(); - serial_setup(); - cputime_setup(); diff --git a/packages/patches/color_scheme_support-0.40.3.patch b/packages/patches/color_scheme_support-0.40.3.patch deleted file mode 100644 index d3eed1082..000000000 --- a/packages/patches/color_scheme_support-0.40.3.patch +++ /dev/null @@ -1,392 +0,0 @@ -Index: g_canvas.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v -retrieving revision 1.11.2.1 -diff -u -w -r1.11.2.1 g_canvas.c ---- g_canvas.c 19 Dec 2006 05:55:44 -0000 1.11.2.1 -+++ g_canvas.c 4 Nov 2007 07:14:17 -0000 -@@ -895,13 +895,15 @@ - { - t_linetraverser t; - t_outconnect *oc; -- { -+ int issignal; -+ - linetraverser_start(&t, x); - while (oc = linetraverser_next(&t)) -- sys_vgui(".x%lx.c create line %d %d %d %d -width %d -tags l%lx\n", -- glist_getcanvas(x), -- t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, -- (outlet_getsymbol(t.tr_outlet) == &s_signal ? 2:1), -+ { -+ issignal = (outlet_getsymbol(t.tr_outlet) == &s_signal ? 1 : 0); -+ sys_vgui(".x%lx.c create line %d %d %d %d -width %d -fill %s -tags l%lx\n", -+ glist_getcanvas(x), t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, -+ (issignal ? 2:1), (issignal ? "$signal_cord" : "$msg_cord"), - oc); - } - } -Index: g_editor.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v -retrieving revision 1.13.2.1 -diff -u -w -r1.13.2.1 g_editor.c ---- g_editor.c 19 Dec 2006 05:55:44 -0000 1.13.2.1 -+++ g_editor.c 4 Nov 2007 07:14:18 -0000 -@@ -108,7 +108,7 @@ - x->gl_editor->e_selectline_index2 = index2; - x->gl_editor->e_selectline_inno = inno; - x->gl_editor->e_selectline_tag = oc; -- sys_vgui(".x%lx.c itemconfigure l%lx -fill blue\n", -+ sys_vgui(".x%lx.c itemconfigure l%lx -fill $select_color\n", - x, x->gl_editor->e_selectline_tag); - } - } -@@ -117,9 +117,21 @@ - { - if (x->gl_editor) - { -+ t_linetraverser t; -+ t_outconnect *oc; - x->gl_editor->e_selectedline = 0; -- sys_vgui(".x%lx.c itemconfigure l%lx -fill black\n", -- x, x->gl_editor->e_selectline_tag); -+ linetraverser_start(&t, glist_getcanvas(x)); -+ do { -+ oc = linetraverser_next(&t); -+ } while (oc && oc != x->gl_editor->e_selectline_tag); -+ int issignal; -+ if(outlet_getsymbol(t.tr_outlet) == &s_signal) -+ issignal = 1; -+ else -+ issignal = 0; -+ sys_vgui(".x%lx.c itemconfigure l%lx -fill %s\n", -+ x, x->gl_editor->e_selectline_tag, -+ (issignal ? "$signal_cord" : "$msg_cord")); - } - } - -@@ -1149,7 +1161,11 @@ - x, xpos, ypos, xpos, ypos, - (issignal ? 2 : 1)); - } -- else canvas_setcursor(x, CURSOR_EDITMODE_CONNECT); -+ else -+ { -+ canvas_setcursor(x, CURSOR_EDITMODE_CONNECT); -+ } -+ - } - else if (doit) - goto nooutletafterall; -@@ -1319,6 +1335,7 @@ - } - if (doit) - { -+ int issignal = obj_issignaloutlet(ob1, closest1); - oc = obj_connect(ob1, closest1, ob2, closest2); - lx1 = x11 + (noutlet1 > 1 ? - ((x12-x11-IOWIDTH) * closest1)/(noutlet1-1) : 0) -@@ -1328,10 +1345,12 @@ - ((x22-x21-IOWIDTH) * closest2)/(ninlet2-1) : 0) - + IOMIDDLE; - ly2 = y21; -- sys_vgui(".x%lx.c create line %d %d %d %d -width %d -tags l%lx\n", -+ sys_vgui(".x%lx.c create line %d %d %d %d -fill %s -width %d -tags l%lx\n", - glist_getcanvas(x), - lx1, ly1, lx2, ly2, -- (obj_issignaloutlet(ob1, closest1) ? 2 : 1), oc); -+ (issignal ? "$signal_cord" : "$msg_cord"), -+ (issignal ? 2 : 1), -+ oc); - canvas_setundo(x, canvas_undo_connect, - canvas_undo_set_connect(x, - canvas_getindex(x, &ob1->ob_g), closest1, -Index: g_rtext.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v -retrieving revision 1.5.2.4 -diff -u -w -r1.5.2.4 g_rtext.c ---- g_rtext.c 19 May 2007 04:04:30 -0000 1.5.2.4 -+++ g_rtext.c 4 Nov 2007 07:14:18 -0000 -@@ -248,7 +248,7 @@ - dispx + LMARGIN, dispy + TMARGIN, - outchars, tempbuf, sys_hostfontsize(font), - (glist_isselected(x->x_glist, -- &x->x_glist->gl_gobj)? "blue" : "black")); -+ &x->x_glist->gl_gobj)? "$select_color" : "$text_color")); - else if (action == SEND_UPDATE) - { - sys_vgui("pdtk_text_set .x%lx.c %s {%.*s}\n", -@@ -384,7 +384,7 @@ - t_glist *glist = x->x_glist; - t_canvas *canvas = glist_getcanvas(glist); - sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, -- x->x_tag, (state? "blue" : "black")); -+ x->x_tag, (state? "$select_color" : "$text_color")); - canvas_editing = canvas; - } - -Index: g_scalar.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_scalar.c,v -retrieving revision 1.8 -diff -u -w -r1.8 g_scalar.c ---- g_scalar.c 21 Aug 2005 17:46:52 -0000 1.8 -+++ g_scalar.c 4 Nov 2007 07:14:19 -0000 -@@ -215,7 +215,7 @@ - scalar_getrect(z, owner, &x1, &y1, &x2, &y2); - x1--; x2++; y1--; y2++; - sys_vgui(".x%lx.c create line %d %d %d %d %d %d %d %d %d %d \ -- -width 0 -fill blue -tags select%lx\n", -+ -width 0 -fill $select_color -tags select%lx\n", - glist_getcanvas(owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, - x); - } -Index: g_text.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_text.c,v -retrieving revision 1.11.2.1 -diff -u -w -r1.11.2.1 g_text.c ---- g_text.c 19 Dec 2006 05:55:44 -0000 1.11.2.1 -+++ g_text.c 4 Nov 2007 07:14:19 -0000 -@@ -803,7 +803,7 @@ - (double)x1, (double)y1, - canvas_realizedollar(x->a_glist, x->a_label)->s_name, - sys_hostfontsize(glist_getfont(glist)), -- "black"); -+ "$text_color"); - } - else sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x); - } -@@ -936,7 +936,7 @@ - int font = glist_getfont(glist); - int fontwidth = sys_fontwidth(font), fontheight = sys_fontheight(font); - width = (x->te_width > 0 ? x->te_width : 6) * fontwidth + 2; -- height = fontheight + 1; /* borrowed from TMARGIN, etc, in g_rtext.c */ -+ height = fontheight + 2; /* borrowed from TMARGIN, etc, in g_rtext.c */ - } - /* if we're invisible we don't know our size so we just lie about - it. This is called on invisible boxes to establish order of inlets -@@ -984,10 +984,15 @@ - { - t_text *x = (t_text *)z; - t_rtext *y = glist_findrtext(glist, x); -+ char *outline; - rtext_select(y, state); -+ if (pd_class(&x->te_pd) == text_class) -+ outline = "$dash_outline"; -+ else -+ outline = "$box_outline"; - if (glist_isvisible(glist) && text_shouldvis(x, glist)) -- sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, -- rtext_gettag(y), (state? "blue" : "black")); -+ sys_vgui(".x%lx.c itemconfigure %sR -outline %s\n", glist, -+ rtext_gettag(y), (state? "$select_color" : outline)); - } - - static void text_activate(t_gobj *z, t_glist *glist, int state) -@@ -1166,19 +1171,24 @@ - { - int n = obj_noutlets(ob), nplus = (n == 1 ? 1 : n-1), i; - int width = x2 - x1; -+ int issignal; - for (i = 0; i < n; i++) - { - int onset = x1 + (width - IOWIDTH) * i / nplus; - if (firsttime) -- sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %so%d\n", -- glist_getcanvas(glist), -- onset, y2 - 1, -- onset + IOWIDTH, y2, -+ { -+ issignal = obj_issignaloutlet(ob,i); -+ sys_vgui(".x%lx.c create rectangle %d %d %d %d \ -+ -fill %s -outline %s -tags %so%d\n", -+ glist_getcanvas(glist), onset, y2 - 2, onset + IOWIDTH, y2, -+ (issignal ? "$signal_nlet" : "$msg_nlet"), -+ (issignal ? "$signal_cord" : "$msg_cord"), - tag, i); -+ } - else - sys_vgui(".x%lx.c coords %so%d %d %d %d %d\n", - glist_getcanvas(glist), tag, i, -- onset, y2 - 1, -+ onset, y2 - 2, - onset + IOWIDTH, y2); - } - n = obj_ninlets(ob); -@@ -1187,11 +1197,15 @@ - { - int onset = x1 + (width - IOWIDTH) * i / nplus; - if (firsttime) -- sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %si%d\n", -- glist_getcanvas(glist), -- onset, y1, -- onset + IOWIDTH, y1 + EXTRAPIX, -+ { -+ issignal = obj_issignalinlet(ob,i); -+ sys_vgui(".x%lx.c create rectangle %d %d %d %d \ -+ -fill %s -outline %s -tags %si%d\n", -+ glist_getcanvas(glist), onset, y1, onset + IOWIDTH, y1 + EXTRAPIX, -+ (issignal ? "$signal_nlet" : "$msg_nlet"), -+ (issignal ? "$signal_cord" : "$msg_cord"), - tag, i); -+ } - else - sys_vgui(".x%lx.c coords %si%d %d %d %d %d\n", - glist_getcanvas(glist), tag, i, -@@ -1204,57 +1218,74 @@ - char *tag, int width2, int height2, int firsttime) - { - t_object *ob; -- int x1, y1, x2, y2, width, height; -+ int x1, y1, x2, y2, width, height, msg_draw_const, atom_draw_const; - text_getrect(&x->te_g, glist, &x1, &y1, &x2, &y2); - width = x2 - x1; - height = y2 - y1; - if (x->te_type == T_OBJECT) - { -- char *pattern = ((pd_class(&x->te_pd) == text_class) ? "-" : "\"\""); -+ char *pattern; char *outline; -+ if (pd_class(&x->te_pd) == text_class) -+ { -+ pattern = "-"; -+ outline = "$dash_outline"; -+ } -+ else -+ { -+ pattern = "\"\""; -+ outline = "$box_outline"; -+ } - if (firsttime) -- sys_vgui(".x%lx.c create line\ -- %d %d %d %d %d %d %d %d %d %d -dash %s -tags %sR\n", -+ sys_vgui(".x%lx.c create polygon %d %d %d %d %d %d %d %d %d %d \ -+ -dash %s -outline %s -fill $obj_box_fill -tags %sR\n", - glist_getcanvas(glist), -- x1, y1, x2, y1, x2, y2, x1, y2, x1, y1, pattern, tag); -+ x1, y1, x2, y1, x2, y2, x1, y2, x1, y1, -+ pattern, outline, tag); - else - { -- sys_vgui(".x%lx.c coords %sR\ -- %d %d %d %d %d %d %d %d %d %d\n", -+ sys_vgui(".x%lx.c coords %sR %d %d %d %d %d %d %d %d %d %d\n", - glist_getcanvas(glist), tag, - x1, y1, x2, y1, x2, y2, x1, y2, x1, y1); -- sys_vgui(".x%lx.c itemconfigure %sR -dash %s\n", -- glist_getcanvas(glist), tag, pattern); -+ sys_vgui(".x%lx.c itemconfigure %sR -dash %s -outline %s\n", -+ glist_getcanvas(glist), tag, pattern, outline); - } - } - else if (x->te_type == T_MESSAGE) - { -+ msg_draw_const = ((y2-y1)/4); -+ if (msg_draw_const > 10) msg_draw_const = 10; /* looks bad if too big */ - if (firsttime) -- sys_vgui(".x%lx.c create line\ -- %d %d %d %d %d %d %d %d %d %d %d %d %d %d -tags %sR\n", -+ sys_vgui(".x%lx.c create polygon \ -+ %d %d %d %d %d %d %d %d %d %d %d %d %d %d \ -+ -outline $box_outline -fill $msg_box_fill -tags %sR\n", - glist_getcanvas(glist), -- x1, y1, x2+4, y1, x2, y1+4, x2, y2-4, x2+4, y2, -+ x1, y1, x2+msg_draw_const, y1, x2, y1+msg_draw_const, -+ x2, y2-msg_draw_const, x2+msg_draw_const, y2, - x1, y2, x1, y1, - tag); - else - sys_vgui(".x%lx.c coords %sR\ - %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", - glist_getcanvas(glist), tag, -- x1, y1, x2+4, y1, x2, y1+4, x2, y2-4, x2+4, y2, -- x1, y2, x1, y1); -+ x1, y1, x2+msg_draw_const, y1, x2, y1+msg_draw_const, -+ x2, y2-msg_draw_const, x2+msg_draw_const, y2, x1, y2, x1, y1); - } - else if (x->te_type == T_ATOM) - { -+ atom_draw_const = ((y2-y1)/3); - if (firsttime) -- sys_vgui(".x%lx.c create line\ -- %d %d %d %d %d %d %d %d %d %d %d %d -tags %sR\n", -+ sys_vgui(".x%lx.c create polygon %d %d %d %d %d %d %d %d %d %d %d %d \ -+ -outline $box_outline -fill $atom_box_fill -tags %sR\n", - glist_getcanvas(glist), -- x1, y1, x2-4, y1, x2, y1+4, x2, y2, x1, y2, x1, y1, -+ x1, y1, x2-atom_draw_const, y1, x2, y1+atom_draw_const, -+ x2, y2, x1, y2, x1, y1, - tag); - else - sys_vgui(".x%lx.c coords %sR\ - %d %d %d %d %d %d %d %d %d %d %d %d\n", - glist_getcanvas(glist), tag, -- x1, y1, x2-4, y1, x2, y1+4, x2, y2, x1, y2, x1, y1); -+ x1, y1, x2-atom_draw_const, y1, x2, y1+atom_draw_const, -+ x2, y2, x1, y2, x1, y1); - } - /* draw inlets/outlets */ - -Index: u_main.tk -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v -retrieving revision 1.25 -diff -u -w -r1.25 u_main.tk ---- u_main.tk 9 Oct 2006 04:36:12 -0000 1.25 -+++ u_main.tk 4 Nov 2007 07:15:20 -0000 -@@ -31,6 +31,24 @@ - set pd_array_listview_page(0) 0 - # end jsarlo - -+# color scheme -+set text_color "#000" -+set select_color "#00f" -+set dash_outline "#f00" -+set dash_fill "#fff" -+set box_outline "#ccc" -+set graph_outline "#777" -+set atom_box_fill "#eee" -+set msg_box_fill "#f8f8f6" -+set obj_box_fill "#f6f8f8" -+set signal_cord_highlight "#58a" -+set signal_cord "#558" -+set signal_nlet $signal_cord -+set msg_cord_highlight "#474" -+set msg_cord "#121" -+set msg_nlet "#fff" -+set mixed_nlet "#88aaff" -+ - if {$pd_nt == 1} { - global pd_guidir - global pd_tearoff -Index: g_graph.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v -retrieving revision 1.10 -diff -u -w -r1.10 g_graph.c ---- g_graph.c 3 Jun 2006 19:13:07 -0000 1.10 -+++ g_graph.c 4 Nov 2007 07:26:20 -0000 -@@ -729,7 +729,7 @@ - t_garray *ga; - /* draw a rectangle around the graph */ - sys_vgui(".x%lx.c create line\ -- %d %d %d %d %d %d %d %d %d %d -tags %s\n", -+ %d %d %d %d %d %d %d %d %d %d -fill $graph_outline -tags %s\n", - glist_getcanvas(x->gl_owner), - x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag); - -@@ -950,9 +950,10 @@ - if (canvas_showtext(x)) - rtext_select(y, state); - sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, -- rtext_gettag(y), (state? "blue" : "black")); -+ rtext_gettag(y), (state? "$select_color" : "black")); - sys_vgui(".x%lx.c itemconfigure graph%lx -fill %s\n", -- glist_getcanvas(glist), z, (state? "blue" : "black")); -+ glist_getcanvas(glist), z, -+ (state? "$select_color" : "$graph_outline")); - } - } - diff --git a/packages/patches/default_and_embedded_plist-0.41.4.patch b/packages/patches/default_and_embedded_plist-0.41.4.patch deleted file mode 100644 index c5c7119cc..000000000 --- a/packages/patches/default_and_embedded_plist-0.41.4.patch +++ /dev/null @@ -1,50 +0,0 @@ -Index: s_file.c -=================================================================== ---- s_file.c (revision 9789) -+++ s_file.c (working copy) -@@ -235,17 +235,35 @@ - { - char cmdbuf[256]; - int nread = 0, nleft = size; -- char embedded_prefs[MAXPDSTRING]; -- char user_prefs[MAXPDSTRING]; -- char *homedir = getenv("HOME"); -+ char default_prefs[MAXPDSTRING]; // default prefs embedded in the package -+ char embedded_prefs[MAXPDSTRING]; // overrides others for standalone app -+ char embedded_prefs_file[MAXPDSTRING]; -+ char user_prefs_file[MAXPDSTRING]; -+ char *homedir = getenv("HOME"); - struct stat statbuf; -- /* the 'defaults' command expects the filename without .plist at the end */ -- snprintf(embedded_prefs, MAXPDSTRING, "%s/../org.puredata.pd", sys_libdir->s_name); -- snprintf(user_prefs, MAXPDSTRING, "%s/Library/Preferences/org.puredata.pd.plist", homedir); -- if (stat(user_prefs, &statbuf) == 0) -- snprintf(cmdbuf, 256, "defaults read org.puredata.pd %s 2> /dev/null\n", key); -- else -- snprintf(cmdbuf, 256, "defaults read %s %s 2> /dev/null\n", embedded_prefs, key); -+ /* the 'defaults' command expects the filename without .plist at the end */ -+ snprintf(default_prefs, MAXPDSTRING, "%s/../org.puredata.pd.default", -+ sys_libdir->s_name); -+ snprintf(embedded_prefs, MAXPDSTRING, "%s/../org.puredata.pd", -+ sys_libdir->s_name); -+ snprintf(embedded_prefs_file, MAXPDSTRING, "%s.plist", embedded_prefs); -+ snprintf(user_prefs_file, MAXPDSTRING, -+ "%s/Library/Preferences/org.puredata.pd.plist", homedir); -+ if (stat(embedded_prefs_file, &statbuf) == 0) -+ { -+ snprintf(cmdbuf, 256, -+ "defaults read %s %s 2> /dev/null\n", embedded_prefs, key); -+ } -+ else if (stat(user_prefs_file, &statbuf) == 0) -+ { -+ snprintf(cmdbuf, 256, -+ "defaults read org.puredata.pd %s 2> /dev/null\n", key); -+ } -+ else -+ { -+ snprintf(cmdbuf, 256, -+ "defaults read %s %s 2> /dev/null\n", default_prefs, key); -+ } - FILE *fp = popen(cmdbuf, "r"); - while (nread < size) - { diff --git a/packages/patches/disable_close_confirm-0.39.2.patch b/packages/patches/disable_close_confirm-0.39.2.patch deleted file mode 100644 index 1b954322f..000000000 --- a/packages/patches/disable_close_confirm-0.39.2.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: g_editor.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v -retrieving revision 1.13 -diff -u -w -r1.13 g_editor.c ---- g_editor.c 15 Sep 2005 03:17:27 -0000 1.13 -+++ g_editor.c 28 Apr 2006 22:40:57 -0000 -@@ -1688,9 +1688,10 @@ - } - else - { -- sys_vgui( --"pdtk_check {Close this window??} {.x%lx menuclose 1;\n} yes\n", -- x); -+/* sys_vgui( */ -+/* "pdtk_check {Close this window??} {.x%lx menuclose 1;\n} yes\n", */ -+/* x); */ -+ pd_free(&x->gl_pd); - } - } - else if (force == 1) diff --git a/packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch b/packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch deleted file mode 100644 index ec2315dfb..000000000 --- a/packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch +++ /dev/null @@ -1,1686 +0,0 @@ -Index: g_all_guis.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_all_guis.c,v -retrieving revision 1.9 -diff -u -w -r1.9 g_all_guis.c ---- g_all_guis.c 11 Aug 2006 20:09:07 -0000 1.9 -+++ g_all_guis.c 3 Aug 2007 06:36:34 -0000 -@@ -438,7 +438,7 @@ - else - { - f = 0; -- strcpy(iemgui->x_font, "courier"); -+ strcpy(iemgui->x_font, sys_font); - } - iemgui->x_fsf.x_font_style = f; - f = (int)atom_getintarg(1, ac, av); -@@ -446,8 +446,9 @@ - f = 4; - iemgui->x_fontsize = f; - if(glist_isvisible(iemgui->x_glist)) -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold}\n", -- glist_getcanvas(iemgui->x_glist), x, iemgui->x_font, iemgui->x_fontsize); -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s}\n", -+ glist_getcanvas(iemgui->x_glist), x, iemgui->x_font, -+ iemgui->x_fontsize, sys_fontweight); - } - - void iemgui_size(void *x, t_iemgui *iemgui) -@@ -622,7 +623,7 @@ - else - { - f = 0; -- strcpy(iemgui->x_font, "courier"); -+ strcpy(iemgui->x_font, sys_font); - } - iemgui->x_fsf.x_font_style = f; - if(fs < 4) -Index: g_all_guis.h -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_all_guis.h,v -retrieving revision 1.5 -diff -u -w -r1.5 g_all_guis.h ---- g_all_guis.h 16 Aug 2005 04:06:28 -0000 1.5 -+++ g_all_guis.h 3 Aug 2007 06:36:34 -0000 -@@ -144,7 +144,7 @@ - int x_w; - int x_ldx; - int x_ldy; -- char x_font[16]; -+ char x_font[MAXPDSTRING]; /* font names can be long! */ - t_iem_fstyle_flags x_fsf; - int x_fontsize; - t_iem_init_symargs x_isa; -Index: g_bang.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_bang.c,v -retrieving revision 1.5 -diff -u -w -r1.5 g_bang.c ---- g_bang.c 8 Sep 2006 23:45:30 -0000 1.5 -+++ g_bang.c 3 Aug 2007 06:36:34 -0000 -@@ -55,11 +55,12 @@ - xpos + x->x_gui.x_w-1, ypos + x->x_gui.x_h-1, - x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol, x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xpos+x->x_gui.x_ldx, - ypos+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", - canvas, xpos, -@@ -115,8 +116,8 @@ - { - t_canvas *canvas=glist_getcanvas(glist); - -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - sys_vgui(".x%lx.c itemconfigure %lxBASE -fill #%6.6x\n", canvas, x, x->x_gui.x_bcol); -@@ -237,7 +238,7 @@ - t_symbol *srl[3]; - - iemgui_properties(&x->x_gui, srl); -- sprintf(buf, "pdtk_iemgui_dialog %%s BANG \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |bang| \ - ----------dimensions(pix):----------- %d %d size: 0 0 empty \ - --------flash-time(ms)(ms):--------- %d intrrpt: %d hold: %d \ - %d empty empty %d %d empty %d \ -@@ -481,7 +482,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - - if (x->x_gui.x_fsf.x_rcv_able) - pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); -Index: g_graph.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v -retrieving revision 1.10 -diff -u -w -r1.10 g_graph.c ---- g_graph.c 3 Jun 2006 19:13:07 -0000 1.10 -+++ g_graph.c 3 Aug 2007 06:36:35 -0000 -@@ -741,9 +741,9 @@ - { - i -= sys_fontheight(glist_getfont(x)); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor nw\ -- -font -*-courier-bold--normal--%d-* -tags %s\n", -- (long)glist_getcanvas(x), x1, i, arrayname->s_name, -- sys_hostfontsize(glist_getfont(x)), tag); -+ -font {{%s} %d %s} -tags %s\n", -+ (long)glist_getcanvas(x), x1, i, arrayname->s_name, sys_font, -+ sys_hostfontsize(glist_getfont(x)), sys_fontweight, tag); - } - - /* draw ticks on horizontal borders. If lperb field is -@@ -823,21 +823,22 @@ - /* draw x labels */ - for (i = 0; i < x->gl_nxlabels; i++) - sys_vgui(".x%lx.c create text\ -- %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", -+ %d %d -text {%s} -font {{%s} %d %s} -tags %s\n", - glist_getcanvas(x), - (int)glist_xtopixels(x, atof(x->gl_xlabel[i]->s_name)), -- (int)glist_ytopixels(x, x->gl_xlabely), x->gl_xlabel[i]->s_name, -- glist_getfont(x), tag); -+ (int)glist_ytopixels(x, x->gl_xlabely), -+ x->gl_xlabel[i]->s_name, sys_font, -+ glist_getfont(x), sys_fontweight, tag); - - /* draw y labels */ - for (i = 0; i < x->gl_nylabels; i++) - sys_vgui(".x%lx.c create text\ -- %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", -+ %d %d -text {%s} -font {{%s} %d %s} -tags %s\n", - glist_getcanvas(x), - (int)glist_xtopixels(x, x->gl_ylabelx), - (int)glist_ytopixels(x, atof(x->gl_ylabel[i]->s_name)), -- x->gl_ylabel[i]->s_name, -- glist_getfont(x), tag); -+ x->gl_ylabel[i]->s_name, sys_font, -+ glist_getfont(x), sys_fontweight, tag); - - /* draw contents of graph as glist */ - for (g = x->gl_list; g; g = g->g_next) -Index: g_hdial.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_hdial.c,v -retrieving revision 1.7 -diff -u -w -r1.7 g_hdial.c ---- g_hdial.c 8 Sep 2006 23:45:30 -0000 1.7 -+++ g_hdial.c 3 Aug 2007 06:36:35 -0000 -@@ -73,10 +73,10 @@ - x->x_drawn = x->x_on; - } - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xx11b+x->x_gui.x_ldx, yy11+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_lcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", -@@ -141,8 +141,8 @@ - t_canvas *canvas=glist_getcanvas(glist); - int n=x->x_number, i; - -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - for(i=0; i<n; i++) -@@ -264,7 +264,7 @@ - iemgui_properties(&x->x_gui, srl); - if (pd_class(&x->x_gui.x_obj.ob_pd) == hradio_old_class) - hchange = x->x_change; -- sprintf(buf, "pdtk_iemgui_dialog %%s hradio \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |hradio| \ - ----------dimensions(pix):----------- %d %d size: 0 0 empty \ - empty 0.0 empty 0.0 empty %d \ - %d new-only new&old %d %d number: %d \ -@@ -589,7 +589,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - if(num < 1) - num = 1; - if(num > IEM_RADIO_MAX) -Index: g_hslider.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_hslider.c,v -retrieving revision 1.6 -diff -u -w -r1.6 g_hslider.c ---- g_hslider.c 8 Sep 2006 23:45:30 -0000 1.6 -+++ g_hslider.c 3 Aug 2007 06:36:35 -0000 -@@ -76,11 +76,12 @@ - canvas, r, ypos+1, r, - ypos + x->x_gui.x_h, x->x_gui.x_fcol, x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xpos+x->x_gui.x_ldx, - ypos+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", - canvas, xpos-3, ypos + x->x_gui.x_h-1, -@@ -136,8 +137,8 @@ - { - t_canvas *canvas=glist_getcanvas(glist); - -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - sys_vgui(".x%lx.c itemconfigure %lxKNOB -fill #%6.6x\n", canvas, x, x->x_gui.x_fcol); -@@ -285,7 +286,7 @@ - t_symbol *srl[3]; - - iemgui_properties(&x->x_gui, srl); -- sprintf(buf, "pdtk_iemgui_dialog %%s HSLIDER \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |hsl| \ - --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ - -----------output-range:----------- %g left: %g right: %g \ - %d lin log %d %d empty %d \ -@@ -586,7 +587,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - if(x->x_gui.x_fsf.x_rcv_able) - pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - x->x_gui.x_ldx = ldx; -Index: g_mycanvas.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v -retrieving revision 1.5 -diff -u -w -r1.5 g_mycanvas.c ---- g_mycanvas.c 6 Sep 2004 20:20:34 -0000 1.5 -+++ g_mycanvas.c 3 Aug 2007 06:36:35 -0000 -@@ -44,10 +44,11 @@ - xpos + x->x_gui.x_w, ypos + x->x_gui.x_h, - x->x_gui.x_bcol, x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, x); - } - - void my_canvas_draw_move(t_my_canvas *x, t_glist *glist) -@@ -84,8 +85,9 @@ - x->x_gui.x_bcol, x->x_gui.x_bcol); - sys_vgui(".x%lx.c itemconfigure %lxBASE -outline #%6.6x\n", canvas, x, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_bcol); -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - } - -@@ -152,7 +154,7 @@ - t_symbol *srl[3]; - - iemgui_properties(&x->x_gui, srl); -- sprintf(buf, "pdtk_iemgui_dialog %%s MY_CANVAS \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |cnv| \ - ------selectable_dimensions(pix):------ %d %d size: 0.0 0.0 empty \ - ------visible_rectangle(pix)(pix):------ %d width: %d height: %d \ - %d empty empty %d %d empty %d \ -@@ -331,7 +333,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - if (x->x_gui.x_fsf.x_rcv_able) - pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - x->x_gui.x_ldx = ldx; -Index: g_numbox.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_numbox.c,v -retrieving revision 1.8 -diff -u -w -r1.8 g_numbox.c ---- g_numbox.c 8 Sep 2006 23:45:30 -0000 1.8 -+++ g_numbox.c 3 Aug 2007 06:36:35 -0000 -@@ -195,15 +195,17 @@ - xpos, ypos + x->x_gui.x_h, - x->x_gui.x_fcol, x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, x); - my_numbox_ftoa(x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxNUMBER\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxNUMBER\n", - canvas, xpos+half+2, ypos+half+d, -- x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fcol, x); -+ x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_fcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", - canvas, -@@ -269,12 +271,12 @@ - { - t_canvas *canvas=glist_getcanvas(glist); - -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); -- sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {%s %d bold} -fill #%6.6x \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {{%s} %d %s} -fill #%6.6x \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol); - sys_vgui(".x%lx.c itemconfigure %lxBASE1 -fill #%6.6x\n", canvas, - x, x->x_gui.x_bcol); -@@ -451,7 +453,7 @@ - sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); - - } -- sprintf(buf, "pdtk_iemgui_dialog %%s NUMBERBOX \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |nbx| \ - -------dimensions(digits)(pix):------- %d %d width: %d %d height: \ - -----------output-range:----------- %g min: %g max: %d \ - %d lin log %d %d log-height: %d \ -@@ -806,7 +808,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - if (x->x_gui.x_fsf.x_rcv_able) - pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - x->x_gui.x_ldx = ldx; -Index: g_rtext.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v -retrieving revision 1.6 -diff -u -w -r1.6 g_rtext.c ---- g_rtext.c 11 Aug 2006 20:09:07 -0000 1.6 -+++ g_rtext.c 3 Aug 2007 06:36:35 -0000 -@@ -15,10 +15,16 @@ - #include "g_canvas.h" - #include "t_tk.h" - --#define LMARGIN 1 --#define RMARGIN 1 --#define TMARGIN 2 --#define BMARGIN 2 -+#define LMARGIN 2 -+#define RMARGIN 2 -+/* for some reason, it draws text 1 pixel lower on Mac OS X */ -+#ifdef __APPLE__ -+#define TMARGIN 3 -+#define BMARGIN 1 -+#else -+#define TMARGIN 4 -+#define BMARGIN 0 -+#endif - - #define SEND_FIRST 1 - #define SEND_UPDATE 2 -Index: g_template.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_template.c,v -retrieving revision 1.18 -diff -u -w -r1.18 g_template.c ---- g_template.c 9 Oct 2006 04:36:12 -0000 1.18 -+++ g_template.c 3 Aug 2007 06:36:36 -0000 -@@ -2126,8 +2126,8 @@ - drawnumber_sprintf(x, buf, &at); - sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}", - glist_getcanvas(glist), xloc, yloc, colorstring, buf); -- sys_vgui(" -font -*-courier-bold--normal--%d-*", -- sys_hostfontsize(glist_getfont(glist))); -+ sys_vgui(" -font {{%s} %d %s}", sys_font, -+ sys_hostfontsize(glist_getfont(glist)), sys_fontweight); - sys_vgui(" -tags drawnumber%lx\n", data); - } - else sys_vgui(".x%lx.c delete drawnumber%lx\n", glist_getcanvas(glist), data); -Index: g_toggle.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_toggle.c,v -retrieving revision 1.5 -diff -u -w -r1.5 g_toggle.c ---- g_toggle.c 8 Sep 2006 23:45:30 -0000 1.5 -+++ g_toggle.c 3 Aug 2007 06:36:36 -0000 -@@ -61,11 +61,12 @@ - canvas, xx+w+1, yy + x->x_gui.x_h-w-1, xx + x->x_gui.x_w-w, yy+w, w, - (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xx+x->x_gui.x_ldx, - yy+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", - canvas, xx, yy + x->x_gui.x_h-1, xx + IOWIDTH, yy + x->x_gui.x_h, x, 0); -@@ -120,8 +121,8 @@ - { - t_canvas *canvas=glist_getcanvas(glist); - -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - sys_vgui(".x%lx.c itemconfigure %lxBASE -fill #%6.6x\n", canvas, x, -@@ -225,7 +226,7 @@ - t_symbol *srl[3]; - - iemgui_properties(&x->x_gui, srl); -- sprintf(buf, "pdtk_iemgui_dialog %%s TOGGLE \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |tgl| \ - ----------dimensions(pix):----------- %d %d size: 0 0 empty \ - -----------non-zero-value:----------- %g value: 0.0 empty %g \ - -1 lin log %d %d empty %d \ -@@ -407,7 +408,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - x->x_nonzero = (nonzero!=0.0)?nonzero:1.0; - if(x->x_gui.x_isa.x_loadinit) - x->x_on = (on!=0.0)?nonzero:0.0; -Index: g_vdial.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_vdial.c,v -retrieving revision 1.6 -diff -u -w -r1.6 g_vdial.c ---- g_vdial.c 8 Sep 2006 23:45:30 -0000 1.6 -+++ g_vdial.c 3 Aug 2007 06:36:36 -0000 -@@ -75,10 +75,10 @@ - x->x_drawn = x->x_on; - } - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xx11+x->x_gui.x_ldx, yy11b+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_lcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", -@@ -141,8 +141,8 @@ - t_canvas *canvas=glist_getcanvas(glist); - int n=x->x_number, i; - -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - for(i=0; i<n; i++) -@@ -265,7 +265,7 @@ - iemgui_properties(&x->x_gui, srl); - if(pd_class(&x->x_gui.x_obj.ob_pd) == vradio_old_class) - hchange = x->x_change; -- sprintf(buf, "pdtk_iemgui_dialog %%s vradio \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |vradio| \ - ----------dimensions(pix):----------- %d %d size: 0 0 empty \ - empty 0.0 empty 0.0 empty %d \ - %d new-only new&old %d %d number: %d \ -@@ -590,7 +590,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - if(num < 1) - num = 1; - if(num > IEM_RADIO_MAX) -Index: g_vslider.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_vslider.c,v -retrieving revision 1.6 -diff -u -w -r1.6 g_vslider.c ---- g_vslider.c 8 Sep 2006 23:45:30 -0000 1.6 -+++ g_vslider.c 3 Aug 2007 06:36:36 -0000 -@@ -59,10 +59,11 @@ - canvas, xpos+1, r, - xpos + x->x_gui.x_w, r, x->x_gui.x_fcol, x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", - canvas, -@@ -122,8 +123,8 @@ - { - t_canvas *canvas=glist_getcanvas(glist); - -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - sys_vgui(".x%lx.c itemconfigure %lxKNOB -fill #%6.6x\n", canvas, -@@ -277,7 +278,7 @@ - - iemgui_properties(&x->x_gui, srl); - -- sprintf(buf, "pdtk_iemgui_dialog %%s VSLIDER \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |vsl| \ - --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ - -----------output-range:----------- %g bottom: %g top: %d \ - %d lin log %d %d empty %d \ -@@ -562,7 +563,7 @@ - if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); - else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - x->x_gui.x_ldx = ldx; - x->x_gui.x_ldy = ldy; -Index: g_vumeter.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_vumeter.c,v -retrieving revision 1.5 -diff -u -w -r1.5 g_vumeter.c ---- g_vumeter.c 16 Aug 2005 04:06:28 -0000 1.5 -+++ g_vumeter.c 3 Aug 2007 06:36:36 -0000 -@@ -116,17 +116,19 @@ - canvas, quad1, yyy, quad3, yyy, x->x_led_size, iemgui_color_hex[led_col], x, i); - if(((i+2)&3) && (x->x_scale)) - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", -- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, -- x->x_gui.x_lcol, x, i); -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", -+ canvas, end, yyy+k3, iemgui_vu_scale_str[i], -+ x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_fontweight, x->x_gui.x_lcol, x, i); - } - if(x->x_scale) - { - i=IEM_VU_STEPS+1; - yyy = k4 + k1*(k2-i); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", -- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", -+ canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, -+ x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_lcol, x, i); - } - sys_vgui(".x%lx.c create rectangle %d %d %d %d -fill #%6.6x -outline #%6.6x -tags %lxRCOVER\n", -@@ -136,10 +138,11 @@ - canvas, mid, ypos+10, - mid, ypos+10, x->x_led_size, x->x_gui.x_bcol, x); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", - canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", -- x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ x->x_gui.x_lcol, x); - if(!x->x_gui.x_fsf.x_snd_able) - { - sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", -@@ -274,19 +277,21 @@ - sys_vgui(".x%lx.c itemconfigure %lxRLED%d -width %d\n", canvas, x, i, - x->x_led_size); - if(((i+2)&3) && (x->x_scale)) -- sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n", -- canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n", -+ canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, -+ x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol); - } - if(x->x_scale) - { - i=IEM_VU_STEPS+1; -- sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n", -- canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n", -+ canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, -+ x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol); - } -- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", -- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", -+ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, - strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); - -@@ -476,16 +481,18 @@ - yyy = k4 + k1*(k2-i); - if((i+2)&3) - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", -- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, -- x->x_gui.x_lcol, x, i); -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", -+ canvas, end, yyy+k3, iemgui_vu_scale_str[i], -+ x->x_gui.x_font, x->x_gui.x_fontsize, -+ sys_fontweight, x->x_gui.x_lcol, x, i); - } - i=IEM_VU_STEPS+1; - yyy = k4 + k1*(k2-i); - sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", -- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, -- x->x_gui.x_lcol, x, i); -+ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", -+ canvas, end, yyy+k3, iemgui_vu_scale_str[i], -+ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, -+ sys_fontweight, x->x_gui.x_lcol, x, i); - } - } - } -@@ -497,7 +504,7 @@ - t_symbol *srl[3]; - - iemgui_properties(&x->x_gui, srl); -- sprintf(buf, "pdtk_iemgui_dialog %%s VU-METER \ -+ sprintf(buf, "pdtk_iemgui_dialog %%s |vu| \ - --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ - empty 0.0 empty 0.0 empty %d \ - %d no_scale scale %d %d empty %d \ -@@ -627,7 +634,7 @@ - t_vu *x = (t_vu *)pd_new(vu_class); - int bflcol[]={-66577, -1, -1}; - int w=IEM_GUI_DEFAULTSIZE, h=IEM_VU_STEPS*IEM_VU_DEFAULTSIZE; -- int ldx=-1, ldy=-8, f=0, fs=8, scale=1; -+ int ldx=-1, ldy=-8, f=0, fs=10, scale=1; - int ftbreak=IEM_BNG_DEFAULTBREAKFLASHTIME, fthold=IEM_BNG_DEFAULTHOLDFLASHTIME; - char str[144]; - -@@ -667,7 +674,7 @@ - else if(x->x_gui.x_fsf.x_font_style == 2) - strcpy(x->x_gui.x_font, "times"); - else { x->x_gui.x_fsf.x_font_style = 0; -- strcpy(x->x_gui.x_font, "courier"); } -+ strcpy(x->x_gui.x_font, sys_font); } - if(x->x_gui.x_fsf.x_rcv_able) - pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - x->x_gui.x_ldx = ldx; -Index: m_pd.h -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v -retrieving revision 1.16.2.2 -diff -u -w -r1.16.2.2 m_pd.h ---- m_pd.h 18 Jul 2007 00:20:12 -0000 1.16.2.2 -+++ m_pd.h 3 Aug 2007 06:36:36 -0000 -@@ -368,6 +368,8 @@ - EXTERN void canvas_makefilename(t_glist *c, char *file, - char *result,int resultsize); - EXTERN t_symbol *canvas_getdir(t_glist *x); -+EXTERN char sys_font[]; /* default typeface set in s_main.c */ -+EXTERN char sys_fontweight[]; /* default font weight set in s_main.c */ - EXTERN int sys_fontwidth(int fontsize); - EXTERN int sys_fontheight(int fontsize); - EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b); -Index: s_inter.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v -retrieving revision 1.18.2.1 -diff -u -w -r1.18.2.1 s_inter.c ---- s_inter.c 18 Jul 2007 00:20:12 -0000 1.18.2.1 -+++ s_inter.c 3 Aug 2007 06:36:36 -0000 -@@ -87,7 +87,6 @@ - - extern char *pd_version; - extern int sys_guisetportnumber; --extern char sys_font[]; /* tb: typeface */ - - static int sys_nfdpoll; - static t_fdpoll *sys_fdpoll; -@@ -844,7 +843,8 @@ - - #define FIRSTPORTNUM 5400 - --static int defaultfontshit[] = { -+#define MAXFONTS 21 -+static int defaultfontshit[MAXFONTS] = { - 8, 5, 9, 10, 6, 10, 12, 7, 13, 14, 9, 17, 16, 10, 19, 24, 15, 28, - 24, 15, 28}; - #define NDEFAULTFONT (sizeof(defaultfontshit)/sizeof(*defaultfontshit)) -@@ -1248,8 +1248,8 @@ - #endif - sys_get_audio_apis(buf); - sys_get_midi_apis(buf2); -- sys_vgui("pdtk_pd_startup {%s} %s %s {%s}\n", pd_version, buf, buf2, -- sys_font); -+ sys_vgui("pdtk_pd_startup {%s} %s %s {%s} %s\n", pd_version, buf, buf2, -+ sys_font, sys_fontweight); - } - return (0); - -Index: s_main.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/s_main.c,v -retrieving revision 1.28 -diff -u -w -r1.28 s_main.c ---- s_main.c 4 Oct 2006 19:35:06 -0000 1.28 -+++ s_main.c 3 Aug 2007 06:36:37 -0000 -@@ -58,7 +58,12 @@ - int sys_midiindevlist[MAXMIDIINDEV] = {1}; - int sys_midioutdevlist[MAXMIDIOUTDEV] = {1}; - --char sys_font[100] = "courier"; /* tb: font name */ -+#ifdef __APPLE__ -+char sys_font[] = "Monaco"; /* tb: font name */ -+#else -+char sys_font[] = "Bitstream Vera Sans Mono"; /* tb: font name */ -+#endif -+char sys_fontweight[] = "normal"; /* currently only used for iemguis */ - static int sys_main_srate; - static int sys_main_advance; - static int sys_listplease; -@@ -106,8 +111,8 @@ - in the six fonts. */ - - static t_fontinfo sys_fontlist[] = { -- {8, 6, 10, 0, 0, 0}, {10, 7, 13, 0, 0, 0}, {12, 9, 16, 0, 0, 0}, -- {16, 10, 20, 0, 0, 0}, {24, 15, 25, 0, 0, 0}, {36, 25, 45, 0, 0, 0}}; -+ {8, 5, 11, 8, 5, 11}, {10, 6, 13, 10, 6, 13}, {12, 7, 16, 12, 7, 16}, -+ {16, 10, 19, 16, 10, 19}, {24, 14, 29, 24, 14, 29}, {36, 23, 44, 36, 23, 44}}; - #define NFONT (sizeof(sys_fontlist)/sizeof(*sys_fontlist)) - - /* here are the actual font size structs on msp's systems: -@@ -158,11 +163,7 @@ - } - - int sys_defaultfont; --#ifdef MSW --#define DEFAULTFONT 12 --#else - #define DEFAULTFONT 10 --#endif - - static void openit(const char *dirname, const char *filename) - { -@@ -206,11 +207,6 @@ - atom_getintarg(3 * j + 3, argc, argv) <= wantwidth) - best = j; - } -- /* best is now the host font index for the desired font index i. */ -- sys_fontlist[i].fi_hostfontsize = -- atom_getintarg(3 * best + 2, argc, argv); -- sys_fontlist[i].fi_width = atom_getintarg(3 * best + 3, argc, argv); -- sys_fontlist[i].fi_height = atom_getintarg(3 * best + 4, argc, argv); - } - #if 0 - for (i = 0; i < 6; i++) -@@ -382,8 +378,9 @@ - "-helppath <path> -- add to help file search path\n", - "-open <file> -- open file(s) on startup\n", - "-lib <file> -- load object library(s)\n", --"-font <n> -- specify default font size in points\n", --"-typeface <name> -- specify default font (default: courier)\n", -+"-font-size <n> -- specify default font size in points\n", -+"-font-face <name> -- specify default font (default: Bitstream Vera Sans Mono)\n", -+"-font-weight <name>-- specify default font weight (normal or bold)\n", - "-verbose -- extra printout on startup and when searching for files\n", - "-version -- don't run Pd; just print out which version it is \n", - "-d <n> -- specify debug level\n", -@@ -737,21 +734,25 @@ - sys_externlist = namelist_append_files(sys_externlist, argv[1]); - argc -= 2; argv += 2; - } -- else if (!strcmp(*argv, "-font") && argc > 1) -+ else if ((!strcmp(*argv, "-font-size") || !strcmp(*argv, "-font")) && argc > 1) - { - sys_defaultfont = sys_nearestfontsize(atoi(argv[1])); - argc -= 2; - argv += 2; - } -- /* tb: font name { */ -- else if (!strcmp(*argv, "-typeface") && argc > 1) -+ else if ((!strcmp(*argv, "-font-face") || !strcmp(*argv, "-typeface")) && argc > 1) - { - strncpy(sys_font,*(argv+1),sizeof(sys_font)-1); - sys_font[sizeof(sys_font)-1] = 0; - argc -= 2; - argv += 2; - } -- /* } tb */ -+ else if (!strcmp(*argv, "-font-weight") && argc > 1) -+ { -+ strcpy(sys_fontweight,*(argv+1)); -+ argc -= 2; -+ argv += 2; -+ } - else if (!strcmp(*argv, "-verbose")) - { - sys_verbose++; -Index: u_main.tk -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v -retrieving revision 1.25 -diff -u -w -r1.25 u_main.tk ---- u_main.tk 9 Oct 2006 04:36:12 -0000 1.25 -+++ u_main.tk 3 Aug 2007 06:36:37 -0000 -@@ -1,14 +1,4 @@ - #!/usr/bin/wish -- --# set pd_nt (bad name) 0 for unix, 1 for microsoft, and 2 for Mac OSX. --if { $tcl_platform(platform) == "windows" } { -- set pd_nt 1 --} elseif { $tcl_platform(os) == "Darwin" } { -- set pd_nt 2 --} else { -- set pd_nt 0 --} -- - # Copyright (c) 1997-1999 Miller Puckette. - # For information on usage and redistribution, and for a DISCLAIMER OF ALL - # WARRANTIES, see the file, "LICENSE.txt," in this distribution. -@@ -21,6 +11,35 @@ - # - # all this changes are labeled with #######iemlib########## - -+# set pd_nt (bad name) 0 for unix, 1 for microsoft, and 2 for Mac OSX. -+if { $tcl_platform(platform) == "windows" } { -+ set pd_nt 1 -+ set defaultFontFamily {Bitstream Vera Sans Mono} -+ font create menuFont -family Tahoma -size 11 -+} elseif { $tcl_platform(os) == "Darwin" } { -+ set pd_nt 2 -+ set defaultFontFamily Monaco -+} else { -+ set pd_nt 0 -+ set defaultFontFamily {Bitstream Vera Sans Mono} -+} -+ -+# start Pd-extended font hacks ----------------------------- -+ -+# Pd-0.39.2-extended hacks to make font/box sizes the same across platform -+puts stderr "tk scaling is [tk scaling]" -+tk scaling 1 -+ -+# this font is for the Pd Window console text -+font create console_font -family $defaultFontFamily -size 12 -weight normal -+# this font is for text in Pd windows -+font create text_font -family {Times} -size 14 -weight normal -+# for text in Properties Panels and other panes -+font create highlight_font -family $defaultFontFamily -size 14 -weight bold -+ -+# end Pd-extended font hacks ----------------------------- -+ -+ - # Tearoff is set to true by default: - set pd_tearoff 1 - -@@ -44,12 +63,8 @@ - if {$pd_nt == 2} { - # turn on James Tittle II's fast drawing - set tk::mac::useCGDrawing 1 -- # set minimum line size for anti-aliasing. If set to 1 or 0, then every -- # line will be anti-aliased. While this makes connections and circles in -- # [bng] and such look really good, it makes boxes and messages look out of -- # focus. Setting this to 2 makes it so the thick audio rate connections -- # are anti-aliased. <hans@at.or.at> 2005-06-09 -- set tk::mac::CGAntialiasLimit 2 -+# anti-alias all lines that need it -+ set tk::mac::CGAntialiasLimit 0 - global pd_guidir - global pd_tearoff - set pd_gui2 [string range $argv0 0 [expr [string last / $argv0 ] - 1]] -@@ -132,6 +147,15 @@ - .mbar add cascade -label "Help" -menu .mbar.help - } - -+# fix menu font size on Windows with tk scaling = 1 -+if {$pd_nt == 1} { -+ .mbar.file configure -font menuFont -+ .mbar.find configure -font menuFont -+ .mbar.windows configure -font menuFont -+ .mbar.audio configure -font menuFont -+ .mbar.help configure -font menuFont -+} -+ - set ctrls_audio_on 0 - set ctrls_meter_on 0 - set ctrls_inlevel 0 -@@ -175,7 +199,7 @@ - - - frame .printout --text .printout.text -relief raised -bd 2 -font -*-courier-bold--normal--12-* \ -+text .printout.text -relief raised -bd 2 -font console_font \ - -yscrollcommand ".printout.scroll set" -width 80 - # .printout.text insert end "\n\n\n\n\n\n\n\n\n\n" - scrollbar .printout.scroll -command ".printout.text yview" -@@ -364,7 +388,7 @@ - global pd_myversion - set name [format ".help%d" $doc_number] - toplevel $name -- text $name.text -relief raised -bd 2 -font -*-times-regular--normal--14-* \ -+ text $name.text -relief raised -bd 2 -font text_font \ - -yscrollcommand "$name.scroll set" -background white - scrollbar $name.scroll -command "$name.text yview" - pack $name.scroll -side right -fill y -@@ -1142,6 +1166,18 @@ - $name.popup add command -label {Help} \ - -command [concat popup_action $name 2] - -+# fix menu font size on Windows with tk scaling = 1 -+if {$pd_nt == 1} { -+ $name.m.file configure -font menuFont -+ $name.m.edit configure -font menuFont -+ $name.m.find configure -font menuFont -+ $name.m.put configure -font menuFont -+ $name.m.windows configure -font menuFont -+ $name.m.audio configure -font menuFont -+ $name.m.help configure -font menuFont -+ $name.popup configure -font menuFont -+} -+ - # WM protocol - wm protocol $name WM_DELETE_WINDOW [concat menu_close $name] - -@@ -1266,6 +1302,7 @@ - global pd_nt - global pd_array_listview_page - global pd_array_listview_id -+ global fontname fontweight - set pd_array_listview_page($arrayName) $page - set pd_array_listview_id($arrayName) $id - set windowName [format ".%sArrayWindow" $arrayName] -@@ -1279,8 +1316,7 @@ - set $windowName.lb [listbox $windowName.lb -height 20 -width 25\ - -selectmode extended \ - -relief solid -background white -borderwidth 1 \ -- -font [format -*-courier-bold--normal--%d-* \ -- $font] \ -+ -font [format {{%s} %d %s} $fontname $font $fontweight]\ - -yscrollcommand "$windowName.lb.sb set"] - set $windowName.lb.sb [scrollbar $windowName.lb.sb \ - -command "$windowName.lb yview" -orient vertical] -@@ -1384,9 +1420,7 @@ - proc pdtk_array_listview_edit {arrayName page font} { - global pd_array_listview_entry - global pd_nt -- if {$pd_nt == 0} { -- set font [expr $font - 2] -- } -+ global fontname fontweight - set lbName [format ".%sArrayWindow.lb" $arrayName] - if {[winfo exists $lbName.entry]} { - pdtk_array_listview_update_entry \ -@@ -1398,7 +1432,7 @@ - set bbox [$lbName bbox $itemNum] - set y [expr [lindex $bbox 1] - 4] - set $lbName.entry [entry $lbName.entry \ -- -font [format -*-courier-bold--normal--%d-* $font]] -+ -font [format {{%s} %d %s} $fontname $font $fontweight]] - $lbName.entry insert 0 [] - place configure $lbName.entry -relx 0 -y $y -relwidth 1 - lower $lbName.entry -@@ -1874,6 +1908,8 @@ - - set vid [string trimleft $id .] - -+ global pd_nt -+ - set var_gatomwidth [concat gatomwidth_$vid] - global $var_gatomwidth - set var_gatomlo [concat gatomlo_$vid] -@@ -1898,87 +1934,96 @@ - set $var_gatomsymto [gatom_unescape $symto] - - toplevel $id -- wm title $id {Atom} -+ wm title $id "atom box properties" -+ wm resizable $id 0 0 - wm protocol $id WM_DELETE_WINDOW [concat dogatom_cancel $id] - -- frame $id.buttonframe -- pack $id.buttonframe -side bottom -fill x -pady 2m -+ frame $id.params -height 7 -+ pack $id.params -side top -+ label $id.params.entryname -text "width" -+ entry $id.params.entry -textvariable $var_gatomwidth -width 4 -+ pack $id.params.entryname $id.params.entry -side left -+ -+ labelframe $id.limits -text "limits" -padx 15 -pady 4 -borderwidth 1 \ -+ -font highlight_font -+ pack $id.limits -side top -fill x -+ frame $id.limits.lower -+ pack $id.limits.lower -side left -+ label $id.limits.lower.entryname -text "lower" -+ entry $id.limits.lower.entry -textvariable $var_gatomlo -width 8 -+ pack $id.limits.lower.entryname $id.limits.lower.entry -side left -+ frame $id.limits.upper -+ pack $id.limits.upper -side left -+ frame $id.limits.upper.spacer -width 20 -+ label $id.limits.upper.entryname -text "upper" -+ entry $id.limits.upper.entry -textvariable $var_gatomhi -width 8 -+ pack $id.limits.upper.spacer $id.limits.upper.entryname \ -+ $id.limits.upper.entry -side left -+ -+ frame $id.spacer1 -height 7 -+ pack $id.spacer1 -side top -+ -+ labelframe $id.label -text "label" -padx 5 -pady 4 -borderwidth 1 \ -+ -font highlight_font -+ pack $id.label -side top -fill x -+ frame $id.label.name -+ pack $id.label.name -side top -+ entry $id.label.name.entry -textvariable $var_gatomlabel -width 33 -+ pack $id.label.name.entry -side left -+ frame $id.label.radio -+ pack $id.label.radio -side top -+ radiobutton $id.label.radio.left -value 0 \ -+ -variable $var_gatomwherelabel \ -+ -text "left " -justify left -+ radiobutton $id.label.radio.right -value 1 \ -+ -variable $var_gatomwherelabel \ -+ -text "right" -justify left -+ radiobutton $id.label.radio.top -value 2 \ -+ -variable $var_gatomwherelabel \ -+ -text "top" -justify left -+ radiobutton $id.label.radio.bottom -value 3 \ -+ -variable $var_gatomwherelabel \ -+ -text "bottom" -justify left -+ pack $id.label.radio.left -side left -anchor w -+ pack $id.label.radio.right -side right -anchor w -+ pack $id.label.radio.top -side top -anchor w -+ pack $id.label.radio.bottom -side bottom -anchor w -+ -+ frame $id.spacer2 -height 7 -+ pack $id.spacer2 -side top -+ -+ labelframe $id.s_r -text "messages" -padx 5 -pady 4 -borderwidth 1 \ -+ -font highlight_font -+ pack $id.s_r -side top -fill x -+ frame $id.s_r.paramsymto -+ pack $id.s_r.paramsymto -side top -anchor e -+ label $id.s_r.paramsymto.entryname -text "send symbol" -+ entry $id.s_r.paramsymto.entry -textvariable $var_gatomsymto -width 21 -+ pack $id.s_r.paramsymto.entry $id.s_r.paramsymto.entryname -side right -+ -+ frame $id.s_r.paramsymfrom -+ pack $id.s_r.paramsymfrom -side top -anchor e -+ label $id.s_r.paramsymfrom.entryname -text "receive symbol" -+ entry $id.s_r.paramsymfrom.entry -textvariable $var_gatomsymfrom -width 21 -+ pack $id.s_r.paramsymfrom.entry $id.s_r.paramsymfrom.entryname -side right -+ -+ frame $id.buttonframe -pady 5 -+ pack $id.buttonframe -side top -fill x -pady 2m - button $id.buttonframe.cancel -text {Cancel}\ - -command "dogatom_cancel $id" -+ pack $id.buttonframe.cancel -side left -expand 1 - button $id.buttonframe.apply -text {Apply}\ - -command "dogatom_apply $id" -+ pack $id.buttonframe.apply -side left -expand 1 - button $id.buttonframe.ok -text {OK}\ - -command "dogatom_ok $id" -- pack $id.buttonframe.cancel -side left -expand 1 -- pack $id.buttonframe.apply -side left -expand 1 - pack $id.buttonframe.ok -side left -expand 1 - -- frame $id.paramsymto -- pack $id.paramsymto -side bottom -- label $id.paramsymto.entryname -text {send symbol} -- entry $id.paramsymto.entry -textvariable $var_gatomsymto -width 20 -- pack $id.paramsymto.entryname $id.paramsymto.entry -side left -- -- frame $id.paramsymfrom -- pack $id.paramsymfrom -side bottom -- label $id.paramsymfrom.entryname -text {receive symbol} -- entry $id.paramsymfrom.entry -textvariable $var_gatomsymfrom -width 20 -- pack $id.paramsymfrom.entryname $id.paramsymfrom.entry -side left -- -- frame $id.radio -- pack $id.radio -side bottom -- label $id.radio.label -text {show label on:} -- frame $id.radio.l -- frame $id.radio.r -- pack $id.radio.label -side top -- pack $id.radio.l $id.radio.r -side left -- radiobutton $id.radio.l.radio0 -value 0 \ -- -variable $var_gatomwherelabel \ -- -text "left" -- radiobutton $id.radio.l.radio1 -value 1 \ -- -variable $var_gatomwherelabel \ -- -text "right" -- radiobutton $id.radio.r.radio2 -value 2 \ -- -variable $var_gatomwherelabel \ -- -text "top" -- radiobutton $id.radio.r.radio3 -value 3 \ -- -variable $var_gatomwherelabel \ -- -text "bottom" -- pack $id.radio.l.radio0 $id.radio.l.radio1 -side top -anchor w -- pack $id.radio.r.radio2 $id.radio.r.radio3 -side top -anchor w -- -- -- frame $id.paramlabel -- pack $id.paramlabel -side bottom -- label $id.paramlabel.entryname -text label -- entry $id.paramlabel.entry -textvariable $var_gatomlabel -width 20 -- pack $id.paramlabel.entryname $id.paramlabel.entry -side left -- -- frame $id.paramhi -- pack $id.paramhi -side bottom -- label $id.paramhi.entryname -text "upper limit" -- entry $id.paramhi.entry -textvariable $var_gatomhi -width 8 -- pack $id.paramhi.entryname $id.paramhi.entry -side left -- -- frame $id.paramlo -- pack $id.paramlo -side bottom -- label $id.paramlo.entryname -text "lower limit" -- entry $id.paramlo.entry -textvariable $var_gatomlo -width 8 -- pack $id.paramlo.entryname $id.paramlo.entry -side left -- -- frame $id.params -- pack $id.params -side bottom -- label $id.params.entryname -text width -- entry $id.params.entry -textvariable $var_gatomwidth -width 4 -- pack $id.params.entryname $id.params.entry -side left -- -- -- -- bind $id.paramhi.entry <KeyPress-Return> [concat dogatom_ok $id] -- bind $id.paramlo.entry <KeyPress-Return> [concat dogatom_ok $id] -+ bind $id.limits.upper.entry <KeyPress-Return> [concat dogatom_ok $id] -+ bind $id.limits.lower.entry <KeyPress-Return> [concat dogatom_ok $id] - bind $id.params.entry <KeyPress-Return> [concat dogatom_ok $id] -- pdtk_standardkeybindings $id.paramhi.entry -- pdtk_standardkeybindings $id.paramlo.entry -+ pdtk_standardkeybindings $id.limits.upper.entry -+ pdtk_standardkeybindings $id.limits.lower.entry - pdtk_standardkeybindings $id.params.entry - $id.params.entry select from 0 - $id.params.entry select adjust end -@@ -2131,7 +2176,7 @@ - - if {[eval concat $$var_iemgui_gn_fs] < $iemgui_define_min_fontsize} { - set $var_iemgui_gn_fs $iemgui_define_min_fontsize -- $id.gnfs.fs_ent configure -textvariable $var_iemgui_gn_fs -+ $id.label.fs_ent configure -textvariable $var_iemgui_gn_fs - } - } - -@@ -2145,20 +2190,20 @@ - set var_iemgui_lcol [concat iemgui_lcol_$vid] - global $var_iemgui_lcol - -- $id.col_example_choose.lb_bk configure \ -+ $id.colors.sections.lb_bk configure \ - -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -foreground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] \ - -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] - - if { [eval concat $$var_iemgui_fcol] >= 0 } { -- $id.col_example_choose.fr_bk configure \ -+ $id.colors.sections.fr_bk configure \ - -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -foreground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] \ - -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] - } else { -- $id.col_example_choose.fr_bk configure \ -+ $id.colors.sections.fr_bk configure \ - -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -foreground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ -@@ -2242,17 +2287,27 @@ - } - } - --proc iemgui_toggle_font {id} { -+proc iemgui_toggle_font {id gn_f} { - set vid [string trimleft $id .] - - set var_iemgui_gn_f [concat iemgui_gn_f_$vid] - global $var_iemgui_gn_f -+ global fontname fontweight - -- set $var_iemgui_gn_f [expr [eval concat $$var_iemgui_gn_f] + 1] -- if {[eval concat $$var_iemgui_gn_f] > 2} {set $var_iemgui_gn_f 0} -- if {[eval concat $$var_iemgui_gn_f] == 0} {$id.gnfs.fb configure -text "courier" -font {courier 10 bold}} -- if {[eval concat $$var_iemgui_gn_f] == 1} {$id.gnfs.fb configure -text "helvetica" -font {helvetica 10 bold}} -- if {[eval concat $$var_iemgui_gn_f] == 2} {$id.gnfs.fb configure -text "times" -font {times 10 bold}} -+ set $var_iemgui_gn_f $gn_f -+ -+ switch -- $gn_f { -+ 0 { set current_font $fontname} -+ 1 { set current_font "Helvetica" } -+ 2 { set current_font "Times" } -+ } -+ set current_font_spec "{$current_font} 12 $fontweight" -+ -+ $id.label.fontpopup_label configure -text $current_font \ -+ -font $current_font_spec -+ $id.label.name_entry configure -font $current_font_spec -+ $id.colors.sections.fr_bk configure -font $current_font_spec -+ $id.colors.sections.lb_bk configure -font $current_font_spec - } - - proc iemgui_lb {id} { -@@ -2398,6 +2453,9 @@ - - set vid [string trimleft $id .] - -+ global pd_nt -+ global fontname fontweight -+ - set var_iemgui_wdt [concat iemgui_wdt_$vid] - global $var_iemgui_wdt - set var_iemgui_min_wdt [concat iemgui_min_wdt_$vid] -@@ -2485,7 +2543,8 @@ - set $var_iemgui_l2_f1_b0 0 - - toplevel $id -- wm title $id [format "%s-PROPERTIES" $mainheader] -+ wm title $id [format "%s Properties" $mainheader] -+ wm resizable $id 0 0 - wm protocol $id WM_DELETE_WINDOW [concat iemgui_cancel $id] - - frame $id.dim -@@ -2518,7 +2577,7 @@ - $id.rng.max_lab $id.rng.max_ent -side left} } - - if { [eval concat $$var_iemgui_lin0_log1] >= 0 || [eval concat $$var_iemgui_loadbang] >= 0 || [eval concat $$var_iemgui_num] > 0 || [eval concat $$var_iemgui_steady] >= 0 } { -- label $id.space1 -text "---------------------------------" -+ label $id.space1 -text "" - pack $id.space1 -side top } - - frame $id.para -@@ -2547,157 +2606,189 @@ - pack $id.para.dummy3 $id.para.num_lab $id.para.num_ent -side left -expand 1} - if {[eval concat $$var_iemgui_steady] >= 0} { - pack $id.para.dummy3 $id.para.stdy_jmp -side left -expand 1} -- if { $snd != "nosndno" || $rcv != "norcvno" } { -- label $id.space2 -text "---------------------------------" -- pack $id.space2 -side top } -- -- frame $id.snd -- pack $id.snd -side top -- label $id.snd.dummy1 -text "" -width 2 -- label $id.snd.lab -text "send-symbol:" -width 12 -- entry $id.snd.ent -textvariable $var_iemgui_snd -width 20 -+ -+ frame $id.spacer0 -height 4 -+ pack $id.spacer0 -side top -+ -+ labelframe $id.s_r -borderwidth 1 -pady 4 -text "messages" \ -+ -font highlight_font -+ pack $id.s_r -side top -fill x -ipadx 5 -+ frame $id.s_r.send -+ pack $id.s_r.send -side top -+ label $id.s_r.send.lab -text " send-symbol:" -width 12 -justify right -+ entry $id.s_r.send.ent -textvariable $var_iemgui_snd -width 22 - if { $snd != "nosndno" } { -- pack $id.snd.dummy1 $id.snd.lab $id.snd.ent -side left} -+ pack $id.s_r.send.lab $id.s_r.send.ent -side left} - -- frame $id.rcv -- pack $id.rcv -side top -- label $id.rcv.lab -text "receive-symbol:" -width 15 -- entry $id.rcv.ent -textvariable $var_iemgui_rcv -width 20 -+ frame $id.s_r.receive -+ pack $id.s_r.receive -side top -+ label $id.s_r.receive.lab -text "receive-symbol:" -width 12 -justify right -+ entry $id.s_r.receive.ent -textvariable $var_iemgui_rcv -width 22 - if { $rcv != "norcvno" } { -- pack $id.rcv.lab $id.rcv.ent -side left} -+ pack $id.s_r.receive.lab $id.s_r.receive.ent -side left} - -- frame $id.gnam -- pack $id.gnam -side top -- label $id.gnam.head -text "--------------label:---------------" -- label $id.gnam.dummy1 -text "" -width 1 -- label $id.gnam.lab -text "name:" -width 6 -- entry $id.gnam.ent -textvariable $var_iemgui_gui_nam -width 29 -- label $id.gnam.dummy2 -text "" -width 1 -- pack $id.gnam.head -side top -- pack $id.gnam.dummy1 $id.gnam.lab $id.gnam.ent $id.gnam.dummy2 -side left -- -- frame $id.gnxy -- pack $id.gnxy -side top -- label $id.gnxy.x_lab -text "x_off:" -width 6 -- entry $id.gnxy.x_ent -textvariable $var_iemgui_gn_dx -width 5 -- label $id.gnxy.dummy1 -text " " -width 10 -- label $id.gnxy.y_lab -text "y_off:" -width 6 -- entry $id.gnxy.y_ent -textvariable $var_iemgui_gn_dy -width 5 -- pack $id.gnxy.x_lab $id.gnxy.x_ent $id.gnxy.dummy1 \ -- $id.gnxy.y_lab $id.gnxy.y_ent -side left -- -- frame $id.gnfs -- pack $id.gnfs -side top -- label $id.gnfs.f_lab -text "font:" -width 6 -- if {[eval concat $$var_iemgui_gn_f] == 0} { -- button $id.gnfs.fb -text "courier" -font {courier 10 bold} -width 7 -command "iemgui_toggle_font $id" } -- if {[eval concat $$var_iemgui_gn_f] == 1} { -- button $id.gnfs.fb -text "helvetica" -font {helvetica 10 bold} -width 7 -command "iemgui_toggle_font $id" } -- if {[eval concat $$var_iemgui_gn_f] == 2} { -- button $id.gnfs.fb -text "times" -font {times 10 bold} -width 7 -command "iemgui_toggle_font $id" } -- label $id.gnfs.dummy1 -text "" -width 1 -- label $id.gnfs.fs_lab -text "fontsize:" -width 8 -- entry $id.gnfs.fs_ent -textvariable $var_iemgui_gn_fs -width 5 -- pack $id.gnfs.f_lab $id.gnfs.fb $id.gnfs.dummy1 \ -- $id.gnfs.fs_lab $id.gnfs.fs_ent -side left -- -- label $id.col_head -text "--------------colors:--------------" -- pack $id.col_head -side top -- -- frame $id.col_select -- pack $id.col_select -side top -- radiobutton $id.col_select.radio0 -value 0 -variable $var_iemgui_l2_f1_b0 \ -- -text "backgd" -width 5 -- radiobutton $id.col_select.radio1 -value 1 -variable $var_iemgui_l2_f1_b0 \ -- -text "front" -width 5 -- radiobutton $id.col_select.radio2 -value 2 -variable $var_iemgui_l2_f1_b0 \ -- -text "label" -width 5 -+# get the current font name from the int given from C-space (gn_f) -+ set current_font $fontname -+ if {[eval concat $$var_iemgui_gn_f] == 1} \ -+ { set current_font "Helvetica" } -+ if {[eval concat $$var_iemgui_gn_f] == 2} \ -+ { set current_font "Times" } -+ -+ frame $id.spacer1 -height 7 -+ pack $id.spacer1 -side top -+ -+ labelframe $id.label -borderwidth 1 -text "label" -pady 4 \ -+ -font highlight_font -+ pack $id.label -side top -fill x -+ entry $id.label.name_entry -textvariable $var_iemgui_gui_nam -width 30 \ -+ -font [list $current_font 12 $fontweight] -+ pack $id.label.name_entry -side top -expand yes -fill both -padx 5 -+ -+ frame $id.label.xy -padx 27 -pady 1 -+ pack $id.label.xy -side top -+ label $id.label.xy.x_lab -text "x offset" -width 6 -+ entry $id.label.xy.x_entry -textvariable $var_iemgui_gn_dx -width 5 -+ label $id.label.xy.dummy1 -text " " -width 2 -+ label $id.label.xy.y_lab -text "y offset" -width 6 -+ entry $id.label.xy.y_entry -textvariable $var_iemgui_gn_dy -width 5 -+ pack $id.label.xy.x_lab $id.label.xy.x_entry $id.label.xy.dummy1 \ -+ $id.label.xy.y_lab $id.label.xy.y_entry -side left -anchor e -+ -+ label $id.label.fontpopup_label -text $current_font \ -+ -relief groove -font [list $current_font 12 $fontweight] -padx 5 -+ pack $id.label.fontpopup_label -side left -anchor w -expand yes -fill x -+ label $id.label.fontsize_label -text "size" -width 4 -+ entry $id.label.fontsize_entry -textvariable $var_iemgui_gn_fs -width 5 -+ pack $id.label.fontsize_entry $id.label.fontsize_label \ -+ -side right -anchor e -padx 5 -pady 5 -+ menu $id.popup -+ $id.popup add command \ -+ -label $fontname \ -+ -font [format {{%s} 12 %s} $fontname $fontweight] \ -+ -command "iemgui_toggle_font $id 0" -+ $id.popup add command \ -+ -label "Helvetica" \ -+ -font [format {Helvetica 12 %s} $fontweight] \ -+ -command "iemgui_toggle_font $id 1" -+ $id.popup add command \ -+ -label "Times" \ -+ -font [format {Times 12 %s} $fontweight] \ -+ -command "iemgui_toggle_font $id 2" -+ bind $id.label.fontpopup_label <Button> \ -+ [list tk_popup $id.popup %X %Y] -+ -+ frame $id.spacer2 -height 7 -+ pack $id.spacer2 -side top -+ -+ labelframe $id.colors -borderwidth 1 -text "colors" -font highlight_font -+ pack $id.colors -fill x -ipadx 5 -ipady 4 -+ -+ frame $id.colors.select -+ pack $id.colors.select -side top -+ radiobutton $id.colors.select.radio0 -value 0 -variable \ -+ $var_iemgui_l2_f1_b0 -text "background" -width 10 -justify left -+ radiobutton $id.colors.select.radio1 -value 1 -variable \ -+ $var_iemgui_l2_f1_b0 -text "front" -width 5 -justify left -+ radiobutton $id.colors.select.radio2 -value 2 -variable \ -+ $var_iemgui_l2_f1_b0 -text "label" -width 5 -justify left - if { [eval concat $$var_iemgui_fcol] >= 0 } { -- pack $id.col_select.radio0 $id.col_select.radio1 $id.col_select.radio2 -side left -- } else {pack $id.col_select.radio0 $id.col_select.radio2 -side left} -+ pack $id.colors.select.radio0 $id.colors.select.radio1 \ -+ $id.colors.select.radio2 -side left -+ } else { -+ pack $id.colors.select.radio0 $id.colors.select.radio2 -side left \ -+ } - -- frame $id.col_example_choose -- pack $id.col_example_choose -side top -- button $id.col_example_choose.but -text "compose color" -width 10 \ -+ frame $id.colors.sections -+ pack $id.colors.sections -side top -+ button $id.colors.sections.but -text "compose color" -width 12 \ - -command "iemgui_choose_col_bkfrlb $id" -- label $id.col_example_choose.dummy1 -text "" -width 1 -+ pack $id.colors.sections.but -side left -anchor w -padx 10 -pady 5 \ -+ -expand yes -fill x - if { [eval concat $$var_iemgui_fcol] >= 0 } { -- button $id.col_example_choose.fr_bk -text "o=||=o" -width 5 \ -+ label $id.colors.sections.fr_bk -text "o=||=o" -width 6 \ - -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -foreground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] \ -- -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] -pady 2 -+ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] \ -+ -font [list $current_font 12 $fontweight] -padx 2 -pady 2 -relief ridge - } else { -- button $id.col_example_choose.fr_bk -text "o=||=o" -width 5 \ -+ label $id.colors.sections.fr_bk -text "o=||=o" -width 6 \ - -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -foreground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ -- -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] -pady 2} -- button $id.col_example_choose.lb_bk -text "testlabel" -width 7 \ -+ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ -+ -font [list $current_font 12 $fontweight] -padx 2 -pady 2 -relief ridge -+ } -+ label $id.colors.sections.lb_bk -text "testlabel" -width 9 \ - -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \ - -foreground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] \ -- -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] -pady 2 -- -- pack $id.col_example_choose.but $id.col_example_choose.dummy1 \ -- $id.col_example_choose.fr_bk $id.col_example_choose.lb_bk -side left -- -- label $id.space3 -text "------or click color preset:-------" -- pack $id.space3 -side top -+ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] \ -+ -font [list $current_font 12 $fontweight] -padx 2 -pady 2 -relief ridge -+ pack $id.colors.sections.lb_bk $id.colors.sections.fr_bk \ -+ -side right -anchor e -expand yes -fill both -pady 7 -+ -+# color scheme by Mary Ann Benedetto http://piR2.org -+ frame $id.colors.r1 -+ pack $id.colors.r1 -side top -+ foreach i { 0 1 2 3 4 5 6 7 8 9} \ -+ hexcol { 0xFFFFFF 0xDFDFDF 0xBBBBBB 0xFFC7C6 0xFFE3C6 \ -+ 0xFEFFC6 0xC6FFC7 0xc6FEFF 0xC7C6FF 0xE3C6FF } \ -+ { -+ label $id.colors.r1.c$i -background [format "#%6.6x" $hexcol] \ -+ -activebackground [format "#%6.6x" $hexcol] -relief ridge \ -+ -padx 7 -pady 0 -+ bind $id.colors.r1.c$i <Button> [format "iemgui_preset_col %s %d" $id $hexcol] -+ } -+ pack $id.colors.r1.c0 $id.colors.r1.c1 $id.colors.r1.c2 $id.colors.r1.c3 \ -+ $id.colors.r1.c4 $id.colors.r1.c5 $id.colors.r1.c6 $id.colors.r1.c7 \ -+ $id.colors.r1.c8 $id.colors.r1.c9 -side left -+ -+ frame $id.colors.r2 -+ pack $id.colors.r2 -side top -+ foreach i { 0 1 2 3 4 5 6 7 8 9 } \ -+ hexcol { 0x9F9F9F 0x7C7C7C 0x606060 0xFF0400 0xFF8300 \ -+ 0xFAFF00 0x00FF04 0x00FAFF 0x0400FF 0x9C00FF } \ -+ { -+ label $id.colors.r2.c$i -background [format "#%6.6x" $hexcol] \ -+ -activebackground [format "#%6.6x" $hexcol] -relief ridge \ -+ -padx 7 -pady 0 -+ bind $id.colors.r2.c$i <Button> \ -+ [format "iemgui_preset_col %s %d" $id $hexcol] -+ } -+ pack $id.colors.r2.c0 $id.colors.r2.c1 $id.colors.r2.c2 $id.colors.r2.c3 \ -+ $id.colors.r2.c4 $id.colors.r2.c5 $id.colors.r2.c6 $id.colors.r2.c7 \ -+ $id.colors.r2.c8 $id.colors.r2.c9 -side left -+ -+ frame $id.colors.r3 -+ pack $id.colors.r3 -side top -+ foreach i { 0 1 2 3 4 5 6 7 8 9 } \ -+ hexcol { 0x404040 0x202020 0x000000 0x551312 0x553512 \ -+ 0x535512 0x0F4710 0x0E4345 0x131255 0x2F004D } \ -+ { -+ label $id.colors.r3.c$i -background [format "#%6.6x" $hexcol] \ -+ -activebackground [format "#%6.6x" $hexcol] -relief ridge \ -+ -padx 7 -pady 0 -+ bind $id.colors.r3.c$i <Button> \ -+ [format "iemgui_preset_col %s %d" $id $hexcol] -+ } -+ pack $id.colors.r3.c0 $id.colors.r3.c1 $id.colors.r3.c2 $id.colors.r3.c3 \ -+ $id.colors.r3.c4 $id.colors.r3.c5 $id.colors.r3.c6 $id.colors.r3.c7 \ -+ $id.colors.r3.c8 $id.colors.r3.c9 -side left - -- frame $id.bcol -- pack $id.bcol -side top -- foreach i { 0 1 2 3 4 5 6 7 8 9 } hexcol { 16579836 14737632 12369084 \ -- 16572640 16572608 16579784 14220504 14220540 14476540 16308476 } { -- button $id.bcol.c$i -background [format "#%6.6x" $hexcol] \ -- -activebackground [format "#%6.6x" $hexcol] \ -- -font {courier 2 normal} -padx 7 -pady 6 \ -- -command [format "iemgui_preset_col %s %d" $id $hexcol] } -- pack $id.bcol.c0 $id.bcol.c1 $id.bcol.c2 $id.bcol.c3 $id.bcol.c4 \ -- $id.bcol.c5 $id.bcol.c6 $id.bcol.c7 $id.bcol.c8 $id.bcol.c9 -side left -- -- frame $id.fcol -- pack $id.fcol -side top -- foreach i { 0 1 2 3 4 5 6 7 8 9 } hexcol { 10526880 8158332 6316128 \ -- 16525352 16559172 15263784 1370132 2684148 3952892 16003312 } { -- button $id.fcol.c$i -background [format "#%6.6x" $hexcol] \ -- -activebackground [format "#%6.6x" $hexcol] \ -- -font {courier 2 normal} -padx 7 -pady 6 \ -- -command [format "iemgui_preset_col %s %d" $id $hexcol] } -- pack $id.fcol.c0 $id.fcol.c1 $id.fcol.c2 $id.fcol.c3 $id.fcol.c4 \ -- $id.fcol.c5 $id.fcol.c6 $id.fcol.c7 $id.fcol.c8 $id.fcol.c9 -side left -- -- frame $id.lcol -- pack $id.lcol -side top -- foreach i { 0 1 2 3 4 5 6 7 8 9 } hexcol { 4210752 2105376 0 \ -- 9177096 5779456 7874580 2641940 17488 5256 5767248 } { -- button $id.lcol.c$i -background [format "#%6.6x" $hexcol] \ -- -activebackground [format "#%6.6x" $hexcol] \ -- -font {courier 2 normal} -padx 7 -pady 6 \ -- -command [format "iemgui_preset_col %s %d" $id $hexcol] } -- pack $id.lcol.c0 $id.lcol.c1 $id.lcol.c2 $id.lcol.c3 $id.lcol.c4 \ -- $id.lcol.c5 $id.lcol.c6 $id.lcol.c7 $id.lcol.c8 $id.lcol.c9 -side left -- -- -- label $id.space4 -text "---------------------------------" -- pack $id.space4 -side top -- -- frame $id.cao -+ frame $id.cao -pady 10 - pack $id.cao -side top - button $id.cao.cancel -text {Cancel} -width 6 \ - -command "iemgui_cancel $id" - label $id.cao.dummy1 -text "" -width 3 -- button $id.cao.apply -text {Apply} -width 6 \ -- -command "iemgui_apply $id" -+ button $id.cao.apply -text {Apply} -width 6 -command "iemgui_apply $id" - label $id.cao.dummy2 -text "" -width 3 - button $id.cao.ok -text {OK} -width 6 \ - -command "iemgui_ok $id" -- pack $id.cao.cancel $id.cao.dummy1 \ -- $id.cao.apply $id.cao.dummy2 \ -- $id.cao.ok -side left - -- label $id.space5 -text "" -- pack $id.space5 -side top -+ pack $id.cao.cancel $id.cao.dummy1 -side left -+ pack $id.cao.apply $id.cao.dummy2 -side left -+ pack $id.cao.ok -side left - - if {[info tclversion] < 8.4} { - bind $id <Key-Tab> {tkTabToWindow [tk_focusNext %W]} -@@ -2712,24 +2803,24 @@ - bind $id.rng.min_ent <KeyPress-Return> [concat iemgui_ok $id] - bind $id.rng.max_ent <KeyPress-Return> [concat iemgui_ok $id] - bind $id.para.num_ent <KeyPress-Return> [concat iemgui_ok $id] -- bind $id.snd.ent <KeyPress-Return> [concat iemgui_ok $id] -- bind $id.rcv.ent <KeyPress-Return> [concat iemgui_ok $id] -- bind $id.gnam.ent <KeyPress-Return> [concat iemgui_ok $id] -- bind $id.gnxy.x_ent <KeyPress-Return> [concat iemgui_ok $id] -- bind $id.gnxy.y_ent <KeyPress-Return> [concat iemgui_ok $id] -- bind $id.gnfs.fs_ent <KeyPress-Return> [concat iemgui_ok $id] -+ bind $id.s_r.send.ent <KeyPress-Return> [concat iemgui_ok $id] -+ bind $id.s_r.receive.ent <KeyPress-Return> [concat iemgui_ok $id] -+ bind $id.label.name_entry <KeyPress-Return> [concat iemgui_ok $id] -+ bind $id.label.xy.x_entry <KeyPress-Return> [concat iemgui_ok $id] -+ bind $id.label.xy.y_entry <KeyPress-Return> [concat iemgui_ok $id] -+ bind $id.label.fontsize_entry <KeyPress-Return> [concat iemgui_ok $id] - bind $id.cao.ok <KeyPress-Return> [concat iemgui_ok $id] - pdtk_standardkeybindings $id.dim.w_ent - pdtk_standardkeybindings $id.dim.h_ent - pdtk_standardkeybindings $id.rng.min_ent - pdtk_standardkeybindings $id.rng.max_ent - pdtk_standardkeybindings $id.para.num_ent -- pdtk_standardkeybindings $id.snd.ent -- pdtk_standardkeybindings $id.rcv.ent -- pdtk_standardkeybindings $id.gnam.ent -- pdtk_standardkeybindings $id.gnxy.x_ent -- pdtk_standardkeybindings $id.gnxy.y_ent -- pdtk_standardkeybindings $id.gnfs.fs_ent -+ pdtk_standardkeybindings $id.s_r.send.ent -+ pdtk_standardkeybindings $id.s_r.receive.ent -+ pdtk_standardkeybindings $id.label.name_entry -+ pdtk_standardkeybindings $id.label.xy.x_entry -+ pdtk_standardkeybindings $id.label.xy.y_entry -+ pdtk_standardkeybindings $id.label.fontsize_entry - pdtk_standardkeybindings $id.cao.ok - - $id.dim.w_ent select from 0 -@@ -2807,6 +2898,7 @@ - - toplevel $id - wm title $id {array} -+ wm resizable $id 0 0 - wm protocol $id WM_DELETE_WINDOW [concat array_cancel $id] - - frame $id.name -@@ -3264,18 +3356,21 @@ - # seven "useful" font sizes. - - # tb: user defined typefaces --proc pdtk_pd_startup {version apilist midiapilist fontname} { -+proc pdtk_pd_startup {version apilist midiapilist fontname_from_pd fontweight_from_pd} { - # puts stderr [concat $version $apilist $fontname] -- global pd_myversion pd_apilist pd_midiapilist -+ global pd_myversion pd_apilist pd_midiapilist pd_nt - set pd_myversion $version - set pd_apilist $apilist - set pd_midiapilist $midiapilist -+ global fontname fontweight -+ set fontname $fontname_from_pd -+ set fontweight $fontweight_from_pd - global pd_fontlist - set pd_fontlist {} - - set fontlist "" - foreach i {8 9 10 12 14 16 18 24 30 36} { -- set font [concat $fontname -$i bold] -+ set font [format {{%s} %d %s} $fontname_from_pd $i $fontweight_from_pd] - set pd_fontlist [linsert $pd_fontlist 100000 $font] - set width0 [font measure $font x] - set height0 [lindex [font metrics $font] 5] -@@ -3522,8 +3617,12 @@ - - # create a popup menu - proc audio_popup {name buttonname varname devlist} { -+ global pd_nt - if [winfo exists $name.popup] {destroy $name.popup} - menu $name.popup -tearoff false -+ if {$pd_nt == 1} { -+ $name.popup configure -font menuFont -+ } - # puts stderr [concat $devlist ] - for {set x 0} {$x<[llength $devlist]} {incr x} { - $name.popup add command -label [lindex $devlist $x] \ -@@ -3798,8 +3897,12 @@ - - # create a popup menu - proc midi_popup {name buttonname varname devlist} { -+ global pd_nt - if [winfo exists $name.popup] {destroy $name.popup} - menu $name.popup -tearoff false -+ if {$pd_nt == 1} { -+ $name.popup configure -font menuFont -+ } - # puts stderr [concat $devlist ] - for {set x 0} {$x<[llength $devlist]} {incr x} { - $name.popup add command -label [lindex $devlist $x] \ diff --git a/packages/patches/proxy_icon_and_modified_state-0.41.4.patch b/packages/patches/proxy_icon_and_modified_state-0.41.4.patch deleted file mode 100644 index 1ee7bb41c..000000000 --- a/packages/patches/proxy_icon_and_modified_state-0.41.4.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: g_canvas.c -=================================================================== ---- g_canvas.c (revision 9721) -+++ g_canvas.c (working copy) -@@ -598,9 +598,15 @@ - strcat(namebuf, ")"); - } - else namebuf[0] = 0; -+#ifdef __APPLE__ -+ sys_vgui("wm attributes .x%lx -modified %d -titlepath {%s/%s}\n", -+ x, x->gl_dirty, canvas_getdir(x)->s_name, x->gl_name->s_name); -+ sys_vgui("wm title .x%lx {%s%s}\n", x, x->gl_name->s_name, namebuf); -+#else - sys_vgui("wm title .x%lx {%s%c%s - %s}\n", - x, x->gl_name->s_name, (x->gl_dirty? '*' : ' '), namebuf, - canvas_getdir(x)->s_name); -+#endif - } - - void canvas_dirty(t_canvas *x, t_int n) diff --git a/packages/patches/set_cursors_in_tcl-0.41-test06.patch b/packages/patches/set_cursors_in_tcl-0.41-test06.patch deleted file mode 100644 index b34cce685..000000000 --- a/packages/patches/set_cursors_in_tcl-0.41-test06.patch +++ /dev/null @@ -1,76 +0,0 @@ -Index: u_main.tk -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v -retrieving revision 1.28 -diff -u -w -r1.28 u_main.tk ---- u_main.tk 18 Aug 2007 23:32:44 -0000 1.28 -+++ u_main.tk 6 Nov 2007 02:10:48 -0000 -@@ -31,6 +31,36 @@ - set pd_array_listview_page(0) 0 - # end jsarlo - -+# set up mouse cursors individually on each platform -+switch -- $pd_nt { 0 { -+ # GNU/Linux -+ set cursor_runmode_nothing "left_ptr" -+ set cursor_runmode_clickme "arrow" -+ set cursor_runmode_thicken "sb_v_double_arrow" -+ set cursor_runmode_addpoint "plus" -+ set cursor_editmode_nothing "hand2" -+ set cursor_editmode_connect "circle" -+ set cursor_editmode_disconnect "X_cursor" -+} 1 { -+ # Windows -+ set cursor_runmode_nothing "rigth_ptr" -+ set cursor_runmode_clickme "arrow" -+ set cursor_runmode_thicken "sb_v_double_arrow" -+ set cursor_runmode_addpoint "plus" -+ set cursor_editmode_nothing "hand2" -+ set cursor_editmode_connect "circle" -+ set cursor_editmode_disconnect "X_cursor" -+} 2 { -+ # Mac OS X -+ set cursor_runmode_nothing "arrow" -+ set cursor_runmode_clickme "center_ptr" -+ set cursor_runmode_thicken "sb_v_double_arrow" -+ set cursor_runmode_addpoint "plus" -+ set cursor_editmode_nothing "hand2" -+ set cursor_editmode_connect "circle" -+ set cursor_editmode_disconnect "X_cursor" -+} } -+ - if {$pd_nt == 1} { - global pd_guidir - global pd_tearoff -Index: g_editor.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v -retrieving revision 1.20 -diff -u -w -r1.20 g_editor.c ---- g_editor.c 9 Oct 2006 04:36:12 -0000 1.20 -+++ g_editor.c 6 Nov 2007 02:10:48 -0000 -@@ -729,17 +729,13 @@ - /* ------------------------ event handling ------------------------ */ - - static char *cursorlist[] = { --#ifdef MSW -- "right_ptr", /* CURSOR_RUNMODE_NOTHING */ --#else -- "left_ptr", /* CURSOR_RUNMODE_NOTHING */ --#endif -- "arrow", /* CURSOR_RUNMODE_CLICKME */ -- "sb_v_double_arrow", /* CURSOR_RUNMODE_THICKEN */ -- "plus", /* CURSOR_RUNMODE_ADDPOINT */ -- "hand2", /* CURSOR_EDITMODE_NOTHING */ -- "circle", /* CURSOR_EDITMODE_CONNECT */ -- "X_cursor" /* CURSOR_EDITMODE_DISCONNECT */ -+ "$cursor_runmode_nothing", -+ "$cursor_runmode_clickme", -+ "$cursor_runmode_thicken", -+ "$cursor_runmode_addpoint", -+ "$cursor_editmode_nothing", -+ "$cursor_editmode_connect", -+ "$cursor_editmode_disconnect" - }; - - void canvas_setcursor(t_canvas *x, unsigned int cursornum) diff --git a/packages/patches/show_whole_subpatch_name_in_window_title-0.41.4.patch b/packages/patches/show_whole_subpatch_name_in_window_title-0.41.4.patch deleted file mode 100644 index 1b5f1d6f1..000000000 --- a/packages/patches/show_whole_subpatch_name_in_window_title-0.41.4.patch +++ /dev/null @@ -1,39 +0,0 @@ -Index: g_canvas.c -=================================================================== ---- g_canvas.c (revision 9910) -+++ g_canvas.c (working copy) -@@ -1133,10 +1133,22 @@ - - /* -------------------------- subcanvases ---------------------- */ - --static void *subcanvas_new(t_symbol *s) -+static void *subcanvas_new(t_symbol *s, int argc, t_atom *argv) - { - t_atom a[6]; - t_canvas *x, *z = canvas_getcurrent(); -+ if (argc) -+ { -+ int bufsize; -+ char *buf; -+ t_binbuf *bb = binbuf_new(); -+ binbuf_addv(bb, "s", s); -+ binbuf_add(bb, argc, argv); -+ binbuf_gettext(bb, &buf, &bufsize); -+ buf[bufsize] = '\0'; -+ binbuf_free(bb); -+ s = gensym(buf); -+ } - if (!*s->s_name) s = gensym("/SUBPATCH/"); - SETFLOAT(a, 0); - SETFLOAT(a+1, GLIST_DEFCANVASYLOC); -@@ -1750,8 +1762,8 @@ - A_NULL); - - /* ----- subcanvases, which you get by typing "pd" in a box ---- */ -- class_addcreator((t_newmethod)subcanvas_new, gensym("pd"), A_DEFSYMBOL, 0); -- class_addcreator((t_newmethod)subcanvas_new, gensym("page"), A_DEFSYMBOL, 0); -+ class_addcreator((t_newmethod)subcanvas_new, gensym("pd"), A_GIMME, 0); -+ class_addcreator((t_newmethod)subcanvas_new, gensym("page"), A_GIMME, 0); - - class_addmethod(canvas_class, (t_method)canvas_click, - gensym("click"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0); diff --git a/packages/patches/sine_cosine_sum_memory_leak_fix-0.41.4.patch b/packages/patches/sine_cosine_sum_memory_leak_fix-0.41.4.patch deleted file mode 100644 index 2763f42fc..000000000 --- a/packages/patches/sine_cosine_sum_memory_leak_fix-0.41.4.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: g_array.c -=================================================================== ---- g_array.c (revision 9700) -+++ g_array.c (working copy) -@@ -1207,7 +1207,7 @@ - - static void garray_sinesum(t_garray *x, t_symbol *s, int argc, t_atom *argv) - { -- t_float *svec = (t_float *)t_getbytes(sizeof(t_float) * argc); -+ t_float *svec; - int npoints, i; - if (argc < 2) - { -@@ -1230,7 +1230,7 @@ - - static void garray_cosinesum(t_garray *x, t_symbol *s, int argc, t_atom *argv) - { -- t_float *svec = (t_float *)t_getbytes(sizeof(t_float) * argc); -+ t_float *svec; - int npoints, i; - if (argc < 2) - { diff --git a/packages/patches/use_FILENAME_MAX_for_file_operations-0.41.4.patch b/packages/patches/use_FILENAME_MAX_for_file_operations-0.41.4.patch deleted file mode 100644 index fe6c2f0b5..000000000 --- a/packages/patches/use_FILENAME_MAX_for_file_operations-0.41.4.patch +++ /dev/null @@ -1,582 +0,0 @@ -Index: m_pd.h -=================================================================== ---- m_pd.h (revision 9725) -+++ m_pd.h (working copy) -@@ -51,7 +51,7 @@ - #include <stddef.h> /* just for size_t -- how lame! */ - #endif - --#define MAXPDSTRING 1000 /* use this for anything you want */ -+#define MAXPDSTRING 1000 /* must be >= FILENAME_MAX */ - #define MAXPDARG 5 /* max number of args we can typecheck today */ - - /* signed and unsigned integer types the size of a pointer: */ -Index: g_editor.c -=================================================================== ---- g_editor.c (revision 9725) -+++ g_editor.c (working copy) -@@ -979,7 +979,7 @@ - "open," or "help." */ - static void canvas_done_popup(t_canvas *x, t_float which, t_float xpos, t_float ypos) - { -- char pathbuf[MAXPDSTRING], namebuf[MAXPDSTRING]; -+ char pathbuf[FILENAME_MAX], namebuf[FILENAME_MAX]; - t_gobj *y; - for (y = x->gl_list; y; y = y->g_next) - { -@@ -1011,7 +1011,7 @@ - t_atom *av = binbuf_getvec(ob->te_binbuf); - if (ac < 1) - return; -- atom_string(av, namebuf, MAXPDSTRING); -+ atom_string(av, namebuf, FILENAME_MAX); - dir = canvas_getdir((t_canvas *)y)->s_name; - } - else -Index: s_file.c -=================================================================== ---- s_file.c (revision 9725) -+++ s_file.c (working copy) -@@ -43,23 +43,23 @@ - - static void sys_initloadpreferences( void) - { -- char filenamebuf[MAXPDSTRING], *homedir = getenv("HOME"); -+ char filenamebuf[FILENAME_MAX], *homedir = getenv("HOME"); - int fd, length; -- char user_prefs_file[MAXPDSTRING]; /* user prefs file */ -+ char user_prefs_file[FILENAME_MAX]; /* user prefs file */ - /* default prefs embedded in the package */ -- char default_prefs_file[MAXPDSTRING]; -+ char default_prefs_file[FILENAME_MAX]; - struct stat statbuf; - -- snprintf(default_prefs_file, MAXPDSTRING, "%s/default.pdsettings", -+ snprintf(default_prefs_file, FILENAME_MAX, "%s/default.pdsettings", - sys_libdir->s_name); - if (homedir) -- snprintf(user_prefs_file, MAXPDSTRING, "%s/.pdsettings", homedir); -+ snprintf(user_prefs_file, FILENAME_MAX, "%s/.pdsettings", homedir); - if (stat(user_prefs_file, &statbuf) == 0) -- strncpy(filenamebuf, user_prefs_file, MAXPDSTRING); -+ strncpy(filenamebuf, user_prefs_file, FILENAME_MAX); - else if (stat(default_prefs_file, &statbuf) == 0) -- strncpy(filenamebuf, default_prefs_file, MAXPDSTRING); -+ strncpy(filenamebuf, default_prefs_file, FILENAME_MAX); - else return; -- filenamebuf[MAXPDSTRING-1] = 0; -+ filenamebuf[FILENAME_MAX-1] = 0; - if ((fd = open(filenamebuf, 0)) < 0) - { - if (sys_verbose) -@@ -128,17 +128,17 @@ - - static void sys_initsavepreferences( void) - { -- char filenamebuf[MAXPDSTRING], errbuf[MAXPDSTRING], -+ char filenamebuf[FILENAME_MAX], errbuf[FILENAME_MAX], - *homedir = getenv("HOME"); - FILE *fp; - - if (!homedir) - return; -- snprintf(filenamebuf, MAXPDSTRING, "%s/.pdsettings", homedir); -- filenamebuf[MAXPDSTRING-1] = 0; -+ snprintf(filenamebuf, FILENAME_MAX, "%s/.pdsettings", homedir); -+ filenamebuf[FILENAME_MAX-1] = 0; - if ((sys_prefsavefp = fopen(filenamebuf, "w")) == NULL) - { -- snprintf(errbuf, MAXPDSTRING, "%s: %s",filenamebuf, strerror(errno)); -+ snprintf(errbuf, FILENAME_MAX, "%s: %s",filenamebuf, strerror(errno)); - pd_error(0, errbuf); - } - } -@@ -228,15 +228,15 @@ - { - char cmdbuf[256]; - int nread = 0, nleft = size; -- char embedded_prefs[MAXPDSTRING]; -- char user_prefs[MAXPDSTRING]; -+ char embedded_prefs[FILENAME_MAX]; -+ char user_prefs[FILENAME_MAX]; - char *homedir = getenv("HOME"); - struct stat statbuf; - /* the 'defaults' command expects the filename without .plist at the - end */ -- snprintf(embedded_prefs, MAXPDSTRING, "%s/../org.puredata.pd", -+ snprintf(embedded_prefs, FILENAME_MAX, "%s/../org.puredata.pd", - sys_libdir->s_name); -- snprintf(user_prefs, MAXPDSTRING, -+ snprintf(user_prefs, FILENAME_MAX, - "%s/Library/Preferences/org.puredata.pd.plist", homedir); - if (stat(user_prefs, &statbuf) == 0) - snprintf(cmdbuf, 256, "defaults read org.puredata.pd %s 2> /dev/null\n", -Index: configure.in -=================================================================== ---- configure.in (revision 9725) -+++ configure.in (working copy) -@@ -347,11 +347,11 @@ - OSNUMBER=2 - if test x$jack = "xyes"; - then -- LDFLAGS=$LDFLAGS" -weak_framework Jack" -+ LDFLAGS=$LDFLAGS" -weak_framework Jackmp" - fi - if test x$jack = "xrun"; - then -- LDFLAGS=$LDFLAGS" -weak_framework Jack" -+ LDFLAGS=$LDFLAGS" -weak_framework Jackmp" - fi - fi - -Index: s_main.c -=================================================================== ---- s_main.c (revision 9725) -+++ s_main.c (working copy) -@@ -177,9 +177,9 @@ - - static void openit(const char *dirname, const char *filename) - { -- char dirbuf[MAXPDSTRING], *nameptr; -+ char dirbuf[FILENAME_MAX], *nameptr; - int fd = open_via_path(dirname, filename, "", dirbuf, &nameptr, -- MAXPDSTRING, 0); -+ FILENAME_MAX, 0); - if (fd >= 0) - { - close (fd); -@@ -430,7 +430,7 @@ - INSTALL_PREFIX. In MSW, we don't try to use INSTALL_PREFIX. */ - void sys_findprogdir(char *progname) - { -- char sbuf[MAXPDSTRING], sbuf2[MAXPDSTRING], *sp; -+ char sbuf[FILENAME_MAX], sbuf2[FILENAME_MAX], *sp; - char *lastslash; - #ifdef UNISTD - struct stat statbuf; -@@ -439,12 +439,12 @@ - /* find out by what string Pd was invoked; put answer in "sbuf". */ - #ifdef MSW - GetModuleFileName(NULL, sbuf2, sizeof(sbuf2)); -- sbuf2[MAXPDSTRING-1] = 0; -+ sbuf2[FILENAME_MAX-1] = 0; - sys_unbashfilename(sbuf2, sbuf); - #endif /* MSW */ - #ifdef UNISTD -- strncpy(sbuf, progname, MAXPDSTRING); -- sbuf[MAXPDSTRING-1] = 0; -+ strncpy(sbuf, progname, FILENAME_MAX); -+ sbuf[FILENAME_MAX-1] = 0; - #endif - lastslash = strrchr(sbuf, '/'); - if (lastslash) -@@ -491,16 +491,16 @@ - sys_libdir = gensym(sbuf2); - sys_guidir = &s_; /* in MSW the guipath just depends on the libdir */ - #else -- strncpy(sbuf, sbuf2, MAXPDSTRING-30); -- sbuf[MAXPDSTRING-30] = 0; -+ strncpy(sbuf, sbuf2, FILENAME_MAX-30); -+ sbuf[FILENAME_MAX-30] = 0; - strcat(sbuf, "/lib/pd"); - if (stat(sbuf, &statbuf) >= 0) - { - /* complicated layout: lib dir is the one we just stat-ed above */ - sys_libdir = gensym(sbuf); - /* gui lives in .../lib/pd/bin */ -- strncpy(sbuf, sbuf2, MAXPDSTRING-30); -- sbuf[MAXPDSTRING-30] = 0; -+ strncpy(sbuf, sbuf2, FILENAME_MAX-30); -+ sbuf[FILENAME_MAX-30] = 0; - strcat(sbuf, "/lib/pd/bin"); - sys_guidir = gensym(sbuf); - } -@@ -509,8 +509,8 @@ - /* simple layout: lib dir is the parent */ - sys_libdir = gensym(sbuf2); - /* gui lives in .../bin */ -- strncpy(sbuf, sbuf2, MAXPDSTRING-30); -- sbuf[MAXPDSTRING-30] = 0; -+ strncpy(sbuf, sbuf2, FILENAME_MAX-30); -+ sbuf[FILENAME_MAX-30] = 0; - strcat(sbuf, "/bin"); - sys_guidir = gensym(sbuf); - } -@@ -525,7 +525,6 @@ - - int sys_argparse(int argc, char **argv) - { -- char sbuf[MAXPDSTRING]; - int i; - while ((argc > 0) && **argv == '-') - { -@@ -901,7 +900,7 @@ - from command-line arguments */ - static void sys_afterargparse(void) - { -- char sbuf[MAXPDSTRING]; -+ char sbuf[FILENAME_MAX]; - int i; - int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; - int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; -@@ -909,13 +908,13 @@ - int nmidiindev = 0, midiindev[MAXMIDIINDEV]; - int nmidioutdev = 0, midioutdev[MAXMIDIOUTDEV]; - /* add "extra" library to path */ -- strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30); -- sbuf[MAXPDSTRING-30] = 0; -+ strncpy(sbuf, sys_libdir->s_name, FILENAME_MAX-30); -+ sbuf[FILENAME_MAX-30] = 0; - strcat(sbuf, "/extra"); - sys_setextrapath(sbuf); - /* add "doc/5.reference" library to helppath */ -- strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30); -- sbuf[MAXPDSTRING-30] = 0; -+ strncpy(sbuf, sys_libdir->s_name, FILENAME_MAX-30); -+ sbuf[FILENAME_MAX-30] = 0; - strcat(sbuf, "/doc/5.reference"); - sys_helppath = namelist_append_files(sys_helppath, sbuf); - /* correct to make audio and MIDI device lists zero based. On -Index: s_path.c -=================================================================== ---- s_path.c (revision 9725) -+++ s_path.c (working copy) -@@ -256,10 +256,10 @@ - #endif - ) - { -- char dirbuf[MAXPDSTRING]; -+ char dirbuf[FILENAME_MAX]; - int dirlen = (strrchr(name, '/') - name); -- if (dirlen > MAXPDSTRING-1) -- dirlen = MAXPDSTRING-1; -+ if (dirlen > FILENAME_MAX-1) -+ dirlen = FILENAME_MAX-1; - strncpy(dirbuf, name, dirlen); - dirbuf[dirlen] = 0; - *fdp = sys_trytoopenone(dirbuf, name+(dirlen+1), ext, -@@ -326,32 +326,32 @@ - search attempts. */ - void open_via_helppath(const char *name, const char *dir) - { -- char realname[MAXPDSTRING], dirbuf[MAXPDSTRING], *basename; -+ char realname[FILENAME_MAX], dirbuf[FILENAME_MAX], *basename; - /* make up a silly "dir" if none is supplied */ - const char *usedir = (*dir ? dir : "./"); - int fd; - - /* 1. "objectname-help.pd" */ -- strncpy(realname, name, MAXPDSTRING-10); -- realname[MAXPDSTRING-10] = 0; -+ strncpy(realname, name, FILENAME_MAX-10); -+ realname[FILENAME_MAX-10] = 0; - if (strlen(realname) > 3 && !strcmp(realname+strlen(realname)-3, ".pd")) - realname[strlen(realname)-3] = 0; - strcat(realname, "-help.pd"); - if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, -- MAXPDSTRING, 0, sys_helppath)) >= 0) -+ FILENAME_MAX, 0, sys_helppath)) >= 0) - goto gotone; - - /* 2. "help-objectname.pd" */ - strcpy(realname, "help-"); -- strncat(realname, name, MAXPDSTRING-10); -- realname[MAXPDSTRING-1] = 0; -+ strncat(realname, name, FILENAME_MAX-10); -+ realname[FILENAME_MAX-1] = 0; - if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, -- MAXPDSTRING, 0, sys_helppath)) >= 0) -+ FILENAME_MAX, 0, sys_helppath)) >= 0) - goto gotone; - - /* 3. "objectname.pd" */ - if ((fd = do_open_via_path(dir, name, "", dirbuf, &basename, -- MAXPDSTRING, 0, sys_helppath)) >= 0) -+ FILENAME_MAX, 0, sys_helppath)) >= 0) - goto gotone; - post("sorry, couldn't find help patch for \"%s\"", name); - return; -@@ -379,7 +379,7 @@ - int rcargc; - char* rcargv[NUMARGS]; - char* buffer; -- char fname[MAXPDSTRING], buf[1000], *home = getenv("HOME"); -+ char fname[FILENAME_MAX], buf[1000], *home = getenv("HOME"); - int retval = 1; /* that's what we will return at the end; for now, let's think it'll be an error */ - - /* initialize rc-arg-array so we can safely clean up at the end */ -@@ -391,7 +391,7 @@ - - *fname = '\0'; - -- strncat(fname, home? home : ".", MAXPDSTRING-10); -+ strncat(fname, home? home : ".", FILENAME_MAX-10); - strcat(fname, "/"); - - strcat(fname, STARTUPNAME); -Index: g_canvas.c -=================================================================== ---- g_canvas.c (revision 9725) -+++ g_canvas.c (working copy) -@@ -1543,7 +1543,6 @@ - { - t_namelist *nl, thislist; - int fd = -1; -- char listbuf[MAXPDSTRING]; - t_canvas *y; - - /* first check if "name" is absolute (and if so, try to open) */ -@@ -1563,12 +1562,12 @@ - dir = (x2 ? canvas_getdir(x2)->s_name : "."); - for (nl = y->gl_env->ce_path; nl; nl = nl->nl_next) - { -- char realname[MAXPDSTRING]; -- strncpy(realname, dir, MAXPDSTRING); -- realname[MAXPDSTRING-3] = 0; -+ char realname[FILENAME_MAX]; -+ strncpy(realname, dir, FILENAME_MAX); -+ realname[FILENAME_MAX-3] = 0; - strcat(realname, "/"); -- strncat(realname, nl->nl_string, MAXPDSTRING-strlen(realname)); -- realname[MAXPDSTRING-1] = 0; -+ strncat(realname, nl->nl_string, FILENAME_MAX-strlen(realname)); -+ realname[FILENAME_MAX-1] = 0; - if ((fd = sys_trytoopenone(realname, name, ext, - dirresult, nameresult, size, bin)) >= 0) - return (fd); -Index: s_loader.c -=================================================================== ---- s_loader.c (revision 9725) -+++ s_loader.c (working copy) -@@ -86,7 +86,7 @@ - - static int sys_do_load_lib(t_canvas *canvas, char *objectname) - { -- char symname[MAXPDSTRING], filename[MAXPDSTRING], dirbuf[MAXPDSTRING], -+ char symname[MAXPDSTRING], filename[FILENAME_MAX], dirbuf[FILENAME_MAX], - *classname, *nameptr, altsymname[MAXPDSTRING]; - void *dlobj; - t_xxx makeout = NULL; -@@ -137,23 +137,23 @@ - #endif - /* try looking in the path for (objectname).(sys_dllextent) ... */ - if ((fd = canvas_open(canvas, objectname, sys_dllextent, -- dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) -+ dirbuf, &nameptr, FILENAME_MAX, 1)) >= 0) - goto gotone; - /* same, with the more generic sys_dllextent2 */ - if ((fd = canvas_open(canvas, objectname, sys_dllextent2, -- dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) -+ dirbuf, &nameptr, FILENAME_MAX, 1)) >= 0) - goto gotone; - /* next try (objectname)/(classname).(sys_dllextent) ... */ -- strncpy(filename, objectname, MAXPDSTRING); -+ strncpy(filename, objectname, FILENAME_MAX); - filename[MAXPDSTRING-2] = 0; - strcat(filename, "/"); -- strncat(filename, classname, MAXPDSTRING-strlen(filename)); -- filename[MAXPDSTRING-1] = 0; -+ strncat(filename, classname, FILENAME_MAX-strlen(filename)); -+ filename[FILENAME_MAX-1] = 0; - if ((fd = canvas_open(canvas, filename, sys_dllextent, -- dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) -+ dirbuf, &nameptr, FILENAME_MAX, 1)) >= 0) - goto gotone; - if ((fd = canvas_open(canvas, filename, sys_dllextent2, -- dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) -+ dirbuf, &nameptr, FILENAME_MAX, 1)) >= 0) - goto gotone; - return (0); - gotone: -@@ -161,11 +161,11 @@ - class_set_extern_dir(gensym(dirbuf)); - - /* rebuild the absolute pathname */ -- strncpy(filename, dirbuf, MAXPDSTRING); -- filename[MAXPDSTRING-2] = 0; -+ strncpy(filename, dirbuf, FILENAME_MAX); -+ filename[FILENAME_MAX-2] = 0; - strcat(filename, "/"); -- strncat(filename, nameptr, MAXPDSTRING-strlen(filename)); -- filename[MAXPDSTRING-1] = 0; -+ strncat(filename, nameptr, FILENAME_MAX-strlen(filename)); -+ filename[FILENAME_MAX-1] = 0; - - #ifdef DL_OPEN - dlobj = dlopen(filename, RTLD_NOW | RTLD_GLOBAL); -Index: m_binbuf.c -=================================================================== ---- m_binbuf.c (revision 9725) -+++ m_binbuf.c (working copy) -@@ -740,7 +740,7 @@ - - static int binbuf_doopen(char *s, int mode) - { -- char namebuf[MAXPDSTRING]; -+ char namebuf[FILENAME_MAX]; - #ifdef MSW - mode |= O_BINARY; - #endif -@@ -750,7 +750,7 @@ - - static FILE *binbuf_dofopen(char *s, char *mode) - { -- char namebuf[MAXPDSTRING]; -+ char namebuf[FILENAME_MAX]; - sys_bashfilename(s, namebuf); - return (fopen(namebuf, mode)); - } -@@ -761,7 +761,7 @@ - int fd; - int readret; - char *buf; -- char namebuf[MAXPDSTRING]; -+ char namebuf[FILENAME_MAX]; - - namebuf[0] = 0; - if (*dirname) -@@ -814,9 +814,9 @@ - int crflag) - { - int filedesc; -- char buf[MAXPDSTRING], *bufptr; -+ char buf[FILENAME_MAX], *bufptr; - if ((filedesc = canvas_open(canvas, filename, "", -- buf, &bufptr, MAXPDSTRING, 0)) < 0) -+ buf, &bufptr, FILENAME_MAX, 0)) < 0) - { - error("%s: can't open", filename); - return (1); -@@ -832,9 +832,9 @@ - int crflag) - { - int filedesc; -- char buf[MAXPDSTRING], *bufptr; -+ char buf[FILENAME_MAX], *bufptr; - if ((filedesc = open_via_path( -- dirname, filename, "", buf, &bufptr, MAXPDSTRING, 0)) < 0) -+ dirname, filename, "", buf, &bufptr, FILENAME_MAX, 0)) < 0) - { - error("%s: can't open", filename); - return (1); -@@ -853,7 +853,7 @@ - int binbuf_write(t_binbuf *x, char *filename, char *dir, int crflag) - { - FILE *f = 0; -- char sbuf[WBUFSIZE], fbuf[MAXPDSTRING], *bp = sbuf, *ep = sbuf + WBUFSIZE; -+ char sbuf[WBUFSIZE], fbuf[FILENAME_MAX], *bp = sbuf, *ep = sbuf + WBUFSIZE; - t_atom *ap; - int indx, deleteit = 0; - int ncolumn = 0; -Index: d_soundfile.c -=================================================================== ---- d_soundfile.c (revision 9725) -+++ d_soundfile.c (working copy) -@@ -400,9 +400,9 @@ - int *p_bytespersamp, int *p_bigendian, int *p_nchannels, long *p_bytelimit, - long skipframes) - { -- char buf[OBUFSIZE], *bufptr; -+ char buf[FILENAME_MAX], *bufptr; - int fd; -- fd = open_via_path(dirname, filename, "", buf, &bufptr, MAXPDSTRING, 1); -+ fd = open_via_path(dirname, filename, "", buf, &bufptr, FILENAME_MAX, 1); - if (fd < 0) - return (-1); - else return (open_soundfile_via_fd(fd, headersize, p_bytespersamp, -@@ -416,9 +416,9 @@ - int *p_bytespersamp, int *p_bigendian, int *p_nchannels, long *p_bytelimit, - long skipframes) - { -- char buf[OBUFSIZE], *bufptr; -+ char buf[FILENAME_MAX], *bufptr; - int fd; -- fd = canvas_open(canvas, filename, "", buf, &bufptr, MAXPDSTRING, 1); -+ fd = canvas_open(canvas, filename, "", buf, &bufptr, FILENAME_MAX, 1); - if (fd < 0) - return (-1); - else return (open_soundfile_via_fd(fd, headersize, p_bytespersamp, -@@ -738,15 +738,15 @@ - int filetype, int nframes, int bytespersamp, - int bigendian, int nchannels, int swap, t_float samplerate) - { -- char filenamebuf[MAXPDSTRING], buf2[MAXPDSTRING]; -+ char filenamebuf[FILENAME_MAX], buf2[FILENAME_MAX]; - char headerbuf[WRITEHDRSIZE]; - t_wave *wavehdr = (t_wave *)headerbuf; - t_nextstep *nexthdr = (t_nextstep *)headerbuf; - t_aiff *aiffhdr = (t_aiff *)headerbuf; - int fd, headersize = 0; - -- strncpy(filenamebuf, filename, MAXPDSTRING-10); -- filenamebuf[MAXPDSTRING-10] = 0; -+ strncpy(filenamebuf, filename, FILENAME_MAX-10); -+ filenamebuf[FILENAME_MAX-10] = 0; - - if (filetype == FORMAT_NEXT) - { -@@ -812,7 +812,7 @@ - headersize = sizeof(t_wave); - } - -- canvas_makefilename(canvas, filenamebuf, buf2, MAXPDSTRING); -+ canvas_makefilename(canvas, filenamebuf, buf2, FILENAME_MAX); - sys_bashfilename(buf2, buf2); - if ((fd = open(buf2, BINCREATE, 0666)) < 0) - return (-1); -Index: m_class.c -=================================================================== ---- m_class.c (revision 9725) -+++ m_class.c (working copy) -@@ -498,7 +498,7 @@ - - static t_symbol *addfileextent(t_symbol *s) - { -- char namebuf[MAXPDSTRING], *str = s->s_name; -+ char namebuf[FILENAME_MAX], *str = s->s_name; - int ln = strlen(str); - if (!strcmp(str + ln - 3, ".pd")) return (s); - strcpy(namebuf, str); -@@ -520,7 +520,7 @@ - { - t_pd *current; - int fd; -- char dirbuf[MAXPDSTRING], *nameptr; -+ char dirbuf[FILENAME_MAX], *nameptr; - if (tryingalready) return; - newest = 0; - class_loadsym = s; -@@ -534,9 +534,9 @@ - class_loadsym = 0; - current = s__X.s_thing; - if ((fd = canvas_open(canvas_getcurrent(), s->s_name, ".pd", -- dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0 || -+ dirbuf, &nameptr, FILENAME_MAX, 0)) >= 0 || - (fd = canvas_open(canvas_getcurrent(), s->s_name, ".pat", -- dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0) -+ dirbuf, &nameptr, FILENAME_MAX, 0)) >= 0) - { - close (fd); - if (!pd_setloadingabstraction(s)) -Index: g_array.c -=================================================================== ---- g_array.c (revision 9725) -+++ g_array.c (working copy) -@@ -1384,7 +1384,7 @@ - { - int nelem, filedesc, i; - FILE *fd; -- char buf[MAXPDSTRING], *bufptr; -+ char buf[FILENAME_MAX], *bufptr; - int yonset, elemsize; - t_array *array = garray_getarray_floatonly(x, &yonset, &elemsize); - if (!array) -@@ -1394,7 +1394,7 @@ - } - nelem = array->a_n; - if ((filedesc = canvas_open(glist_getcanvas(x->x_glist), -- filename->s_name, "", buf, &bufptr, MAXPDSTRING, 0)) < 0 -+ filename->s_name, "", buf, &bufptr, FILENAME_MAX, 0)) < 0 - || !(fd = fdopen(filedesc, "r"))) - { - error("%s: can't open", filename->s_name); diff --git a/packages/patches/use_individual_help_patches_for_midi-0.41.0-test04.patch b/packages/patches/use_individual_help_patches_for_midi-0.41.0-test04.patch deleted file mode 100644 index 2f03b8286..000000000 --- a/packages/patches/use_individual_help_patches_for_midi-0.41.0-test04.patch +++ /dev/null @@ -1,72 +0,0 @@ -Index: x_midi.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/x_midi.c,v -retrieving revision 1.2 -retrieving revision 1.2.10.1 -diff -u -w -r1.2 -r1.2.10.1 ---- x_midi.c 6 Sep 2004 20:20:36 -0000 1.2 -+++ x_midi.c 14 May 2007 18:31:31 -0000 1.2.10.1 -@@ -160,7 +160,6 @@ - notein_class = class_new(gensym("notein"), (t_newmethod)notein_new, - (t_method)notein_free, sizeof(t_notein), CLASS_NOINLET, A_DEFFLOAT, 0); - class_addlist(notein_class, notein_list); -- class_sethelpsymbol(notein_class, gensym("midi")); - notein_sym = gensym("#notein"); - } - -@@ -234,7 +233,6 @@ - (t_method)ctlin_free, sizeof(t_ctlin), - CLASS_NOINLET, A_GIMME, 0); - class_addlist(ctlin_class, ctlin_list); -- class_sethelpsymbol(ctlin_class, gensym("midi")); - ctlin_sym = gensym("#ctlin"); - } - -@@ -301,7 +299,6 @@ - (t_method)pgmin_free, sizeof(t_pgmin), - CLASS_NOINLET, A_DEFFLOAT, 0); - class_addlist(pgmin_class, pgmin_list); -- class_sethelpsymbol(pgmin_class, gensym("midi")); - pgmin_sym = gensym("#pgmin"); - } - -@@ -366,7 +363,6 @@ - bendin_class = class_new(gensym("bendin"), (t_newmethod)bendin_new, - (t_method)bendin_free, sizeof(t_bendin), CLASS_NOINLET, A_DEFFLOAT, 0); - class_addlist(bendin_class, bendin_list); -- class_sethelpsymbol(bendin_class, gensym("midi")); - bendin_sym = gensym("#bendin"); - } - -@@ -725,7 +721,6 @@ - noteout_class = class_new(gensym("noteout"), (t_newmethod)noteout_new, 0, - sizeof(t_noteout), 0, A_DEFFLOAT, 0); - class_addfloat(noteout_class, noteout_float); -- class_sethelpsymbol(noteout_class, gensym("midi")); - } - - -@@ -765,7 +760,6 @@ - ctlout_class = class_new(gensym("ctlout"), (t_newmethod)ctlout_new, 0, - sizeof(t_ctlout), 0, A_DEFFLOAT, A_DEFFLOAT, 0); - class_addfloat(ctlout_class, ctlout_float); -- class_sethelpsymbol(ctlout_class, gensym("midi")); - } - - -@@ -805,7 +799,6 @@ - pgmout_class = class_new(gensym("pgmout"), (t_newmethod)pgmout_new, 0, - sizeof(t_pgmout), 0, A_DEFFLOAT, 0); - class_addfloat(pgmout_class, pgmout_float); -- class_sethelpsymbol(pgmout_class, gensym("midi")); - } - - -@@ -842,7 +835,6 @@ - bendout_class = class_new(gensym("bendout"), (t_newmethod)bendout_new, 0, - sizeof(t_bendout), 0, A_DEFFLOAT, 0); - class_addfloat(bendout_class, bendout_float); -- class_sethelpsymbol(bendout_class, gensym("midi")); - } - - /* -------------------------- touch -------------------------- */ diff --git a/packages/redhat_rpm/pd-extended.spec b/packages/redhat_rpm/pd-extended.spec index c82fcc054..c7e779bd0 100644 --- a/packages/redhat_rpm/pd-extended.spec +++ b/packages/redhat_rpm/pd-extended.spec @@ -498,9 +498,7 @@ find externals/pdp externals/pidip -type f -exec perl -p -i -e "s|<quicktime/|<l perl -p -i -e "s|pdp pidip||g" externals/Makefile %endif -# patch the official pd source cd packages -make patch_pd # make and install pd and externals cd linux_make @@ -551,9 +549,6 @@ for library in ${EXTERNALS} ; do ${DESTDIR_ROOT}/${library}%{_prefix}/lib/pd/extra/ fi make -C externals DESTDIR=${DESTDIR} prefix=${prefix} libpddir=${libpddir} libpdbindir=${libpdbindir} ${library}_install - if [ -d "${libpddir}/doc/5.reference/" ] ; then - (cd ${libpddir}/doc/5.reference/ ; ${buildhome}/scripts/convert-help-to-standard.sh) - fi find ${DESTDIR_ROOT}/${library} -type f | sed "s|${DESTDIR_ROOT}/${library}||g" > ${buildhome}/files-subpackage-${library} done @@ -566,9 +561,6 @@ for abstraction in ${ABSTRACTIONS} ; do libpddir=${libdir}/pd libpdbindir=${libpddir}/bin make -C abstractions DESTDIR=${DESTDIR} prefix=${prefix} libpddir=${libpddir} libpdbindir=${libpdbindir} ${abstraction}_install - if [ -d "${libpddir}/doc/5.reference/" ] ; then - (cd ${libpddir}/doc/5.reference/ ; ${buildhome}/scripts/convert-help-to-standard.sh) - fi find ${DESTDIR_ROOT}/${abstraction} -type f | sed "s|${DESTDIR_ROOT}/${abstraction}||g" > ${buildhome}/files-subpackage-${abstraction} done @@ -799,8 +791,6 @@ install: cannot stat `/usr/src/rpm/BUILD/pure-data/packages/linux_make/../../pac install: cannot stat `/usr/src/rpm/BUILD/pure-data/packages/linux_make/../../packages/noncvs/linux/extra/*.*': No such file or directory -install: cannot stat `/usr/src/rpm/BUILD/pure-data/packages/linux_make/../../packages/noncvs/linux/gripd/*.*': No such file or directory - * Tue Jul 25 2006 Fernando Lopez-Lezcano <nando@ccrma.stanford.edu> 0.39.2 - changed package name to pd-extended, build all of it, both pd and the external collection diff --git a/pd/README b/pd/README deleted file mode 100644 index e69de29bb..000000000 diff --git a/scripts/auto-build/auto-build-common b/scripts/auto-build/auto-build-common deleted file mode 100644 index f76c683f3..000000000 --- a/scripts/auto-build/auto-build-common +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# these are common variables for the auto-build scripts - -SYSTEM=$(uname -s | sed 'y|ABCDEFGHIJKLMNOPQRSTUVWXYZ|abcdefghijklmnopqrstuvwxyz|') -DATE=$(date +%Y-%m-%d) -TIME=$(date +%H.%M.%S) -HOSTNAME=$(hostname | sed 's|\([a-zA-Z0-9-]\)\..*|\1|' | sed 'y|ABCDEFGHIJKLMNOPQRSTUVWXYZ|abcdefghijklmnopqrstuvwxyz|') - -# use the hostname from /etc/hostname in case we are a chroot build enviroment -if [ -e /etc/hostname ]; then - HOSTNAME=`cat /etc/hostname` -else - HOSTNAME=$(hostname | sed 's|\([a-zA-Z0-9-]\)\..*|\1|' | sed 'y|ABCDEFGHIJKLMNOPQRSTUVWXYZ|abcdefghijklmnopqrstuvwxyz|') -fi - -## the following creates a spam-bot that sends emails to an address that has not asked for it -## because of the spam-problem, i (jmz) have disabled it -# recipient of any emails set from the scripts -#RECIPIENT=pd-cvs@iem.at - - -## if you want to send emails about the success of your build, -## please create a file "auto-build-common.local" in this directory -## and set the "RECIPIENT" address to some valid email-address -# -## please do NOT check your auto-build-common.local into the CVS -# -## another possibility is to set the "RECIPIENT" environmental variable before running -## the autobuilder - -if [ -e ${SCRIPT_DIR}/auto-build-common.local ]; then - . ${SCRIPT_DIR}/auto-build-common.local -else - echo "Could not find local configuration in \"${SCRIPT_DIR}/auto-build-common.local\"" - echo "Skipping... (see ${SCRIPT_DIR}/auto-build-common for instructions)" - echo -fi - -# cygwin/Mingw don't have 'mail', but do have 'email' which is close enough. -# To get around the troubles with mail servers, we'll contact the SMTP server -# of the mailing lists directly (mail.iem.at). -if [ -x /usr/bin/mail ]; then - MAIL_COMMAND=/usr/bin/mail -elif [ -x /bin/mail ]; then - MAIL_COMMAND=/bin/mail -else - MAIL_COMMAND="email --smtp-server mail.iem.at" -fi - - -#------------------------------------------------------------------------------# -# print out ip addresses for debugging -print_ip_address() -{ - echo -n "hostname: " - hostname - echo "---------------------------" - if [ -x /sbin/ifconfig ]; then - /sbin/ifconfig - else - ipconfig - fi -} - - -rsync_distro() -{ -# let rsync handle the cleanup with --delete - DISTRO=$(basename $1) - echo "rsyncing $DISTRO to ${1}:" - RSYNC_COMMAND="rsync -a --delete-before rsync://128.238.56.50/distros/${DISTRO}/ ${1}/" - case $SYSTEM in - mingw*) - /c/cygwin/bin/sh -c "$RSYNC_COMMAND" - ;; - *) - $RSYNC_COMMAND - ;; - esac -} diff --git a/scripts/auto-build/create-latest-build-listing.py b/scripts/auto-build/create-latest-build-listing.py deleted file mode 100755 index f7d97a88e..000000000 --- a/scripts/auto-build/create-latest-build-listing.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python - -import string -import os,sys,errno -import re -import StringIO - - -for root, dirs, files in os.walk('/var/www/auto-build/'): - dirs.sort() - if 'latest' in dirs: - dirs.remove('latest') - for name in files: - m = re.search('^Pd-[01]\.[0-9][0-9].*[^5]$', name) - if m: - commonbuildname = re.sub('-20[01][0-9][01][0-9][0-9][0-9]', '', name) - commonbuildpath = os.path.join('/var/www/auto-build/latest', commonbuildname) - buildtarball = os.path.join(root, m.string) - #print "link: ", buildtarball, commonbuildpath - try: - os.symlink(buildtarball, commonbuildpath) - except OSError, e: - if e.errno == errno.EEXIST: - #print "removing ", commonbuildpath - os.remove(commonbuildpath) - os.symlink(buildtarball, commonbuildpath) - - diff --git a/scripts/auto-build/extra-rsync.bat b/scripts/auto-build/extra-rsync.bat deleted file mode 100644 index 0db0c86e0..000000000 --- a/scripts/auto-build/extra-rsync.bat +++ /dev/null @@ -1,18 +0,0 @@ -REM uses http://setacl.sourceforge.net/ - -cd \msys\1.0\home\pd\ - -REM echo y|cacls c:\msys\1.0\home\pd\auto-build /C /T /G pd:F everyone:R - -setacl -on c:\msys\1.0\home\pd\auto-build -ot file -actn ace -ace "n:pd;p:full,write_owner;i:so,sc;m:set" -ace "n:everyone;p:read;i:so,sc;m:set" - -REM Cygwin rsync seems to be unhappy with SVN's .svn file permissions, so -REM ignore SVN files first to get all the 'meat' -rsync -av --progress --whole-file --exclude='*inv\**' --cvs-exclude --timeout=60 rsync://128.238.56.50/distros/pd-extended/ /home/pd/auto-build/pd-extended/ -rsync -av --progress --whole-file --exclude='*inv\**' --cvs-exclude --timeout=60 rsync://128.238.56.50/distros/pd-devel/ /home/pd/auto-build/pd-devel/ - -sleep 60 - -REM now get the SVN changes, this might fail a lot, especially on '.svn/entries' -rsync -av --progress --whole-file --delete-before --exclude='*inv\**' --timeout=60 rsync://128.238.56.50/distros/pd-extended/ /home/pd/auto-build/pd-extended/ -rsync -av --progress --whole-file --delete-before --exclude='*inv\**' --timeout=60 rsync://128.238.56.50/distros/pd-devel/ /home/pd/auto-build/pd-devel/ diff --git a/scripts/auto-build/mail-mingw-log-hack.sh b/scripts/auto-build/mail-mingw-log-hack.sh deleted file mode 100755 index 30b237bc4..000000000 --- a/scripts/auto-build/mail-mingw-log-hack.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -mailbody_on_failure () { - ## this is a somewhat simplistic expression to detect error-lines - cat "$1" | grep -i "error: " | tail -20 - echo "" - echo "the full logfile can be viewed at" - echo "http://autobuild.puredata.info/auto-build/${DATE}/logs/${LOGFILE##*/}" -} - - -for logfile in $(ls -1 /var/www/auto-build/${DATE}/logs/${DATE}_*_mingw*.txt); do - completion_test=$(tail -1 "${logfile}") - if [ "x${completion_test}" != "xSUCCESS" ]; then - if [ "x${RECIPIENT}" != "x" ]; then - SUBJECT="autobuild: $distro $HOSTNAME $DATE $TIME" - mailbody_on_failure "${logfile}" | mail -s "autobuild: $logfile" ${RECIPIENT} - fi - fi -done diff --git a/scripts/auto-build/pd-devel-auto-builder.sh b/scripts/auto-build/pd-devel-auto-builder.sh deleted file mode 100755 index cf8a0909d..000000000 --- a/scripts/auto-build/pd-devel-auto-builder.sh +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh -# this script is the first attempt to have an automated updater and builder - -# the source dir where this script is -## this could be done more easily with ${0%/*} -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -## this could be done more easily with ${0##*/} -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -BUILD_DIR=. -case $SYSTEM in - linux) - BUILD_DIR=linux_make - echo "Configuring to use $BUILD_DIR on GNU/Linux" - ;; - darwin) - BUILD_DIR=darwin_app - echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X" - ;; - mingw*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on MinGW/Windows" - ;; - cygwin*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on Cygwin/Windows" - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - - -# convert into absolute path -## shouldn't this use the ${SCRIPT_DIR} variable rather than call an external program? -cd $(echo $0 | sed 's|\(.*\)/.*$|\1|')/../.. -auto_build_root_dir=$(pwd) -echo "root: $auto_build_root_dir" - -# let rsync handle the cleanup with --delete -case $SYSTEM in - mingw*) - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links --delete rsync://128.238.56.50/distros/pd-devel/ ${auto_build_root_dir}/" - ;; - *) - rsync -a --delete rsync://128.238.56.50/distros/pd-devel/ ${auto_build_root_dir}/ - ;; -esac - -cd "${auto_build_root_dir}/packages/$BUILD_DIR" -make -C "${auto_build_root_dir}/packages" set_version PD-EXTENDED_VERSION_PREFIX=devel -make test_locations -mount -print_ip_address -make package_clean -make install PD-EXTENDED_VERSION_PREFIX=devel -make package PD-EXTENDED_VERSION_PREFIX=devel - - -upload_build () -{ - platform_folder=$1 - build_folder=$2 - archive_format=$3 - - archive=$(ls -1 ${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format} | tail -1) - - echo "upload specs $1 $2 $3" - echo "Uploading $archive" - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - if [ -e ${archive} ]; then - case $SYSTEM in - mingw*) - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links --chmod=a+r ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename}" && \ - md5sum ${archive} > ${archive}.md5 && \ - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${archive}.md5 rsync://128.238.56.50/upload/${DATE}/${upload_filename}.md5" && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - rsync -a --chmod=a+r ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - md5sum ${archive} > ${archive}.md5 && \ - rsync -a ${archive}.md5 rsync://128.238.56.50/upload/${DATE}/${upload_filename}.md5 && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - esac - fi -} - - -case $SYSTEM in - linux) - if [ -x /usr/bin/dpkg-deb ]; then - upload_build linux_make . deb - else - upload_build linux_make build tar.bz2 - fi - ;; - darwin) - upload_build darwin_app . dmg - ;; - mingw*) - upload_build win32_inno Output exe - ;; - cygwin*) - upload_build win32_inno Output exe - ;; -esac - diff --git a/scripts/auto-build/pd-extended-auto-builder.sh b/scripts/auto-build/pd-extended-auto-builder.sh deleted file mode 100755 index 723645fdf..000000000 --- a/scripts/auto-build/pd-extended-auto-builder.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh -# this script is the first attempt to have an automated updater and builder - -# the source dir where this script is -## this could be done more easily with ${0%/*} -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -## this could be done more easily with ${0##*/} -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -BUILD_DIR=. -case $SYSTEM in - linux) - BUILD_DIR=linux_make - echo "Configuring to use $BUILD_DIR on GNU/Linux" - ;; - darwin) - BUILD_DIR=darwin_app - echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X" - ;; - mingw*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on MinGW/Windows" - ;; - cygwin*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on Cygwin/Windows" - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - - -# convert into absolute path -cd "${SCRIPT_DIR}/../.." -auto_build_root_dir=`pwd` -echo "build root: $auto_build_root_dir" -rsync_distro "$auto_build_root_dir" - -cd "${auto_build_root_dir}/packages/$BUILD_DIR" -make -C "${auto_build_root_dir}/packages" set_version -make test_locations -echo "mounts ----------------------------------------" -mount -print_ip_address -make package_clean -make install && make package - - -upload_build () -{ - platform_folder=$1 - build_folder=$2 - archive_format=$3 - - archive=$(ls -1 ${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format} | tail -1) - - echo "upload specs $1 $2 $3" - echo "Uploading $archive" - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - if [ -e ${archive} ]; then - case $SYSTEM in - mingw*) - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links --chmod=a+r ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename}" && \ - md5sum ${archive} > ${archive}.md5 && \ - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${archive}.md5 rsync://128.238.56.50/upload/${DATE}/${upload_filename}.md5" && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - rsync -a --chmod=a+r ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - md5sum ${archive} > ${archive}.md5 && \ - rsync -a ${archive}.md5 rsync://128.238.56.50/upload/${DATE}/${upload_filename}.md5 && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - esac - fi -} - - -case $SYSTEM in - linux) - if [ -x /usr/bin/dpkg-deb ]; then - upload_build linux_make . deb - else - upload_build linux_make build tar.bz2 - fi - ;; - darwin) - upload_build darwin_app . dmg - ;; - mingw*) - upload_build win32_inno Output exe - ;; - cygwin*) - upload_build win32_inno Output exe - ;; -esac - diff --git a/scripts/auto-build/pd-extended-release-auto-builder.sh b/scripts/auto-build/pd-extended-release-auto-builder.sh deleted file mode 100755 index 723645fdf..000000000 --- a/scripts/auto-build/pd-extended-release-auto-builder.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh -# this script is the first attempt to have an automated updater and builder - -# the source dir where this script is -## this could be done more easily with ${0%/*} -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -## this could be done more easily with ${0##*/} -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -BUILD_DIR=. -case $SYSTEM in - linux) - BUILD_DIR=linux_make - echo "Configuring to use $BUILD_DIR on GNU/Linux" - ;; - darwin) - BUILD_DIR=darwin_app - echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X" - ;; - mingw*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on MinGW/Windows" - ;; - cygwin*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on Cygwin/Windows" - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - - -# convert into absolute path -cd "${SCRIPT_DIR}/../.." -auto_build_root_dir=`pwd` -echo "build root: $auto_build_root_dir" -rsync_distro "$auto_build_root_dir" - -cd "${auto_build_root_dir}/packages/$BUILD_DIR" -make -C "${auto_build_root_dir}/packages" set_version -make test_locations -echo "mounts ----------------------------------------" -mount -print_ip_address -make package_clean -make install && make package - - -upload_build () -{ - platform_folder=$1 - build_folder=$2 - archive_format=$3 - - archive=$(ls -1 ${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format} | tail -1) - - echo "upload specs $1 $2 $3" - echo "Uploading $archive" - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - if [ -e ${archive} ]; then - case $SYSTEM in - mingw*) - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links --chmod=a+r ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename}" && \ - md5sum ${archive} > ${archive}.md5 && \ - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${archive}.md5 rsync://128.238.56.50/upload/${DATE}/${upload_filename}.md5" && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - rsync -a --chmod=a+r ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - md5sum ${archive} > ${archive}.md5 && \ - rsync -a ${archive}.md5 rsync://128.238.56.50/upload/${DATE}/${upload_filename}.md5 && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - esac - fi -} - - -case $SYSTEM in - linux) - if [ -x /usr/bin/dpkg-deb ]; then - upload_build linux_make . deb - else - upload_build linux_make build tar.bz2 - fi - ;; - darwin) - upload_build darwin_app . dmg - ;; - mingw*) - upload_build win32_inno Output exe - ;; - cygwin*) - upload_build win32_inno Output exe - ;; -esac - diff --git a/scripts/auto-build/pd-main+libs-auto-builder.sh b/scripts/auto-build/pd-main+libs-auto-builder.sh deleted file mode 100755 index 7cbdbf027..000000000 --- a/scripts/auto-build/pd-main+libs-auto-builder.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/sh -# this script is the first attempt to have an automated updater and builder - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -BUILD_DIR=. -case $SYSTEM in - linux) - BUILD_DIR=linux_make - echo "Configuring to use $BUILD_DIR on GNU/Linux" - ;; - darwin) - BUILD_DIR=darwin_app - echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X" - ;; - mingw*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on MinGW/Windows" - ;; - cygwin*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on Cygwin/Windows" - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - - -# convert into absolute path -cd $(echo $0 | sed 's|\(.*\)/.*$|\1|')/../.. -auto_build_root_dir=$(pwd) -echo "root: $auto_build_root_dir" - -# let rsync handle the cleanup with --delete -case $SYSTEM in - mingw*) - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links --delete rsync://128.238.56.50/distros/pd-main+libs/ ${auto_build_root_dir}/" - ;; - *) - rsync -a --delete rsync://128.238.56.50/distros/pd-main+libs/ ${auto_build_root_dir}/ - ;; -esac - -cd "${auto_build_root_dir}/packages/$BUILD_DIR" -make -C "${auto_build_root_dir}/packages" set_version PD-EXTENDED_VERSION_PREFIX=vanilla+libs -make test_locations -mount -make package_clean -make install PD-EXTENDED_VERSION_PREFIX=vanilla+libs -make package PD-EXTENDED_VERSION_PREFIX=vanilla+libs - - -upload_build () -{ - platform_folder=$1 - build_folder=$2 - archive_format=$3 - - archive="${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format}" - - echo "upload specs $1 $2 $3" - echo "Uploading $archive" - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - case $SYSTEM in - mingw*) - test -e ${archive} && /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename}" && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - test -e ${archive} && rsync -a ${archive} \ - rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - esac -} - - -case $SYSTEM in - linux) - if [ -x /usr/bin/dpkg-deb ]; then - upload_build linux_make . deb - else - upload_build linux_make build tar.bz2 - fi - ;; - darwin) - upload_build darwin_app . dmg - ;; - mingw*) - upload_build win32_inno Output exe - ;; - cygwin*) - upload_build win32_inno Output exe - ;; -esac - diff --git a/scripts/auto-build/pd-main-auto-builder.sh b/scripts/auto-build/pd-main-auto-builder.sh deleted file mode 100755 index c494b029b..000000000 --- a/scripts/auto-build/pd-main-auto-builder.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -case $SYSTEM in - linux) - configure_options="--enable-alsa --enable-jack" - platform_name=$(uname -m) - ;; - darwin) - configure_options="" - platform_name=$(uname -p) - ;; - mingw*) - configure_options="" - platform_name=i386 - ;; - cygwin*) - configure_options="" - platform_name=i386 - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - -# convert into absolute path -cd $(echo $0 | sed 's|\(.*\)/.*$|\1|')/../.. -auto_build_root_dir=$(pwd) -echo "root: $auto_build_root_dir" - - -# let rsync handle the cleanup with --delete -rsync -av --delete rsync://128.238.56.50/distros/pd-main/ \ - ${auto_build_root_dir}/ - -case $SYSTEM in - darwin) - archive_format=dmg - archive=$(ls -1 ${auto_build_root_dir}/packages/darwin_app/Pd*.dmg) - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - cd ${auto_build_root_dir}/packages/darwin_app/ - make package_clean - make test_locations - make darwin_app_core && \ - make readme_install && \ - make package && \ - rsync -a ${archive} \ - rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - package_name="/tmp/pd-${DATE}-${SYSTEM}-${HOSTNAME}-${platform_name}.tar.bz2" - cd ${auto_build_root_dir}/pd/src && \ - autoconf && \ - ./configure $configure_options && \ - make && \ - cd ../../ && \ - tar cjf $package_name pd && \ - rsync -a ${package_name} rsync://128.238.56.50/upload/${DATE}/ && \ - rm -f -- ${package_name} && \ - echo "successfully uploaded: ${package_name}" && \ - echo SUCCESS - ;; -esac - diff --git a/scripts/auto-build/pd-puredyne-auto-builder.sh b/scripts/auto-build/pd-puredyne-auto-builder.sh deleted file mode 100755 index d06ef7ad8..000000000 --- a/scripts/auto-build/pd-puredyne-auto-builder.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/sh -# this script is the first attempt to have an automated updater and builder - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -BUILD_DIR=. -case $SYSTEM in - linux) - BUILD_DIR=linux_make - echo "Configuring to use $BUILD_DIR on GNU/Linux" - ;; - darwin) - BUILD_DIR=darwin_app - echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X" - ;; - mingw*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on MinGW/Windows" - ;; - cygwin*) - BUILD_DIR=win32_inno - echo "Configuring to use $BUILD_DIR on Cygwin/Windows" - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - - -# convert into absolute path -cd $(echo $0 | sed 's|\(.*\)/.*$|\1|')/../.. -auto_build_root_dir=$(pwd) -echo "root: $auto_build_root_dir" - -# let rsync handle the cleanup with --delete -rsync -a --delete rsync://128.238.56.50/distros/pd-puredyne/ \ - ${auto_build_root_dir}/ - -cd "${auto_build_root_dir}/packages/$BUILD_DIR" -make -C "${auto_build_root_dir}/packages" set_version PD-EXTENDED_VERSION_PREFIX=puredyne -make test_locations -make package_clean -make install PD-EXTENDED_VERSION_PREFIX=puredyne -make package PD-EXTENDED_VERSION_PREFIX=puredyne - - -upload_build () -{ - platform_folder=$1 - build_folder=$2 - archive_format=$3 - - archive="${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format}" - - echo "upload specs $1 $2 $3" - echo "Uploading $archive" - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - case $SYSTEM in - mingw*) - test -e ${archive} && /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename}" &&\ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - test -e ${archive} && rsync -a ${archive} \ - rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - esac -} - - -case $SYSTEM in - linux) - if [ -x /usr/bin/dpkg-deb ]; then - upload_build linux_make . deb - else - upload_build linux_make build tar.bz2 - fi - ;; - darwin) - upload_build darwin_app . dmg - ;; - mingw*) - upload_build win32_inno Output exe - ;; - cygwin*) - upload_build win32_inno Output exe - ;; -esac - diff --git a/scripts/auto-build/pdvanilla-hcs.git-auto-builder.sh b/scripts/auto-build/pdvanilla-hcs.git-auto-builder.sh deleted file mode 100755 index 387b2855a..000000000 --- a/scripts/auto-build/pdvanilla-hcs.git-auto-builder.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -# the source dir where this script is -## this could be done more easily with ${0%/*} -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -## this could be done more easily with ${0##*/} -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -# convert into absolute path -cd "${SCRIPT_DIR}/../.." -auto_build_root_dir=`pwd` -echo "build root: $auto_build_root_dir" -rsync_distro "$auto_build_root_dir" - - -cd "${auto_build_root_dir}" -echo "--------------------------------------------------------------------------------" -git pull -echo "--------------------------------------------------------------------------------" -./autogen.sh -echo "--------------------------------------------------------------------------------" -./configure -echo "--------------------------------------------------------------------------------" -make -echo "--------------------------------------------------------------------------------" -mkdir "${auto_build_root_dir}/testinstall" -make DESTDIR="${auto_build_root_dir}/testinstall" install -echo "--------------------------------------------------------------------------------" -make dist - - -# since the above test can cause this script to exit with an error, force it -# to be happy to prevent getting automated error emails to root -true diff --git a/scripts/auto-build/prep-auto-build-upload b/scripts/auto-build/prep-auto-build-upload deleted file mode 100755 index 0bcc12340..000000000 --- a/scripts/auto-build/prep-auto-build-upload +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# prepare a directory per date for the auto-builders to upload to - -HOSTNAME=`hostname` -SYSTEM=`uname -s` -DATE=`date +%Y-%m-%d` -TIME=`date +%H.%M.%S` -SCRIPT=`echo $0| sed 's|.*/\(.*\)|\1|g'` -LOGFILE=/home/pd/logs/${DATE}_${TIME}_-_${SCRIPT}_-_${SYSTEM}.txt - -#BUILD_ROOT="/var/www/auto-build" - -prep_project() -{ - PROJECT=$1 - BUILD_ROOT="$2" - TODAYS_ROOT="${BUILD_ROOT}/${DATE}" - chown -R root.root "${BUILD_ROOT}" >> $LOGFILE 2>&1 - chown -R pd "${BUILD_ROOT}/latest" >> $LOGFILE 2>&1 - mkdir "${TODAYS_ROOT}" >> $LOGFILE 2>&1 - mkdir "${TODAYS_ROOT}/logs" >> $LOGFILE 2>&1 - chown -R nobody.nogroup "${TODAYS_ROOT}" >> $LOGFILE 2>&1 - - chown -R ${PROJECT}.${PROJECT} /home/${PROJECT}/ >> $LOGFILE 2>&1 - chmod -R u+rw /home/${PROJECT}/ >> $LOGFILE 2>&1 -} - - -prep_project pd /var/www/auto-build -prep_project arduino /var/www/arduino diff --git a/scripts/auto-build/pure-data-rsync b/scripts/auto-build/pure-data-rsync deleted file mode 100755 index 9fed6bcc6..000000000 --- a/scripts/auto-build/pure-data-rsync +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# rsync the CVS source files from SourceForge to make a local copy - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -LOGFILE=/home/pd/logs/${DATE}_${TIME}_-_${SCRIPT}_-_${SYSTEM}.txt - -VERBOSE_FLAGS=-v -#VERBOSE_FLAGS="-v --progress" - -touch $LOGFILE - -echo "rsync pure-data" >> $LOGFILE 2>&1 -echo "----------------------------------------------------------------------" >> $LOGFILE 2>&1 -(/usr/bin/rsync -ax $VERBOSE_FLAGS --delete pure-data.svn.sourceforge.net::svn/pure-data/ /home/pd/svnroot/pure-data/ || /usr/bin/logger -i -p local6.warning -t "$0" "rsync pure-data SVN FAILED") >> $LOGFILE 2>&1 - -echo "rsync pd-gem" >> $LOGFILE 2>&1 -echo "----------------------------------------------------------------------" >> $LOGFILE 2>&1 -(/usr/bin/rsync -ax $VERBOSE_FLAGS --delete rsync://pd-gem.cvs.sourceforge.net/cvsroot/p/pd/pd-gem/ /home/pd/cvsroot/pd-gem || /usr/bin/logger -i -p local6.warning -t "$0" "rsync pd-gem CVS FAILED") >> $LOGFILE 2>&1 - -echo "chown -R pd.pd /home/pd/cvsroot" >> $LOGFILE 2>&1 -echo "----------------------------------------------------------------------" >> $LOGFILE 2>&1 -chown -R pd.pd /home/pd/cvsroot >> $LOGFILE 2>&1 - -echo "chown -R pd.pd /home/pd/svnroot" >> $LOGFILE 2>&1 -echo "----------------------------------------------------------------------" >> $LOGFILE 2>&1 -chown -R pd.pd /home/pd/svnroot >> $LOGFILE 2>&1 - - diff --git a/scripts/auto-build/pure-data-rsync-checkout b/scripts/auto-build/pure-data-rsync-checkout deleted file mode 100755 index e5e4256b5..000000000 --- a/scripts/auto-build/pure-data-rsync-checkout +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# update from the local CVS repository - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') -LOGFILE=/home/pd/logs/${DATE}_${TIME}_-_${SCRIPT}_-_${SYSTEM}.txt - -update_distro () -{ - distro=$1 - echo "------------------------------------------------------------" >> $LOGFILE 2>&1 - echo "$distro" >> $LOGFILE 2>&1 - echo "------------------------------------------------------------" >> $LOGFILE 2>&1 - /home/pd/rsync/$distro/scripts/update-developer-layout.sh >> $LOGFILE 2>&1 -} - -touch $LOGFILE - -for dir in /home/pd/rsync/*; do - dirname=$(echo $dir | sed 's|.*/\(.*\)|\1|') - test -e $dir/scripts/update-developer-layout.sh && \ - update_distro $dirname -done - -for dir in /home/pd/rsync/*.git; do - cd $dir - git pull >> $LOGFILE 2>&1 - cd scripts - svn --ignore-externals update >> $LOGFILE 2>&1 -done - -# since the above test can cause this script to exit with an error, force it -# to be happy to prevent getting automated error emails to root -true diff --git a/scripts/auto-build/pure-data.git-auto-builder.sh b/scripts/auto-build/pure-data.git-auto-builder.sh deleted file mode 100755 index 387b2855a..000000000 --- a/scripts/auto-build/pure-data.git-auto-builder.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -# the source dir where this script is -## this could be done more easily with ${0%/*} -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -## this could be done more easily with ${0##*/} -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -# convert into absolute path -cd "${SCRIPT_DIR}/../.." -auto_build_root_dir=`pwd` -echo "build root: $auto_build_root_dir" -rsync_distro "$auto_build_root_dir" - - -cd "${auto_build_root_dir}" -echo "--------------------------------------------------------------------------------" -git pull -echo "--------------------------------------------------------------------------------" -./autogen.sh -echo "--------------------------------------------------------------------------------" -./configure -echo "--------------------------------------------------------------------------------" -make -echo "--------------------------------------------------------------------------------" -mkdir "${auto_build_root_dir}/testinstall" -make DESTDIR="${auto_build_root_dir}/testinstall" install -echo "--------------------------------------------------------------------------------" -make dist - - -# since the above test can cause this script to exit with an error, force it -# to be happy to prevent getting automated error emails to root -true diff --git a/scripts/auto-build/pure-data.umlaeute.git-auto-builder.sh b/scripts/auto-build/pure-data.umlaeute.git-auto-builder.sh deleted file mode 100755 index 387b2855a..000000000 --- a/scripts/auto-build/pure-data.umlaeute.git-auto-builder.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -# the source dir where this script is -## this could be done more easily with ${0%/*} -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -## this could be done more easily with ${0##*/} -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -# convert into absolute path -cd "${SCRIPT_DIR}/../.." -auto_build_root_dir=`pwd` -echo "build root: $auto_build_root_dir" -rsync_distro "$auto_build_root_dir" - - -cd "${auto_build_root_dir}" -echo "--------------------------------------------------------------------------------" -git pull -echo "--------------------------------------------------------------------------------" -./autogen.sh -echo "--------------------------------------------------------------------------------" -./configure -echo "--------------------------------------------------------------------------------" -make -echo "--------------------------------------------------------------------------------" -mkdir "${auto_build_root_dir}/testinstall" -make DESTDIR="${auto_build_root_dir}/testinstall" install -echo "--------------------------------------------------------------------------------" -make dist - - -# since the above test can cause this script to exit with an error, force it -# to be happy to prevent getting automated error emails to root -true diff --git a/scripts/auto-build/run-automated-build.bat b/scripts/auto-build/run-automated-build.bat deleted file mode 100644 index a46d4750e..000000000 --- a/scripts/auto-build/run-automated-build.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off - -C:\msys\1.0\bin\sh.exe --login -i -c /home/pd/auto-build/pd-extended/scripts/auto-build/run-automated-builder - diff --git a/scripts/auto-build/run-automated-build.cygwin.sh b/scripts/auto-build/run-automated-build.cygwin.sh deleted file mode 100755 index 0fdb0a36f..000000000 --- a/scripts/auto-build/run-automated-build.cygwin.sh +++ /dev/null @@ -1,2 +0,0 @@ -/cygdrive/c/msys/1.0/bin/sh --login -i -c /home/pd/auto-build/pd-extended/scripts/auto-build/run-automated-builder - diff --git a/scripts/auto-build/run-automated-builder b/scripts/auto-build/run-automated-builder deleted file mode 100755 index 911e25ac7..000000000 --- a/scripts/auto-build/run-automated-builder +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh - - -## TODO: -# - change the logfile name -# - use a wrapper for rsync to handle platform specifics -# - check whether rsync (or any other upload mechanism) is present -# and mail accordingly - -cd / - -# On Mac OS X, there are some handy things in Fink, but don't override the -# built-in tools -PATH="${PATH}:/sw/bin:/sw/sbin" -export PATH - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - -mailbody_on_failure () { - ## this is a somewhat simplistic expression to detect error-lines - echo "last 20 errors ----------------------------------------" - cat ${LOGFILE} | grep -i -e "error: " -e "cannot find" | tail -20 - echo "last 15 lines ----------------------------------------" - tail -15 ${LOGFILE} - echo "" - echo "the full logfile - if it has been succesfully uploaded - can be viewed at:" - echo "http://autobuild.puredata.info/auto-build/${DATE}/logs/${LOGFILE##*/}" -} - -run_build_script () -{ - distro=$1 - chroot=$2 - - BUILDSCRIPT="${HOME}/auto-build/${distro}/scripts/auto-build/${distro}-auto-builder.sh" - ## LATER: make the uploaded ${LOGFILE} (name) be consistent with the uploaded package-file (name) - LOGFILE="${HOME}/logs/${DATE}_${TIME}_${SYSTEM}_${HOSTNAME}_${distro}.txt" - touch "${LOGFILE}" - - if [ -d /var/chroot/$chroot ]; then - echo "----------------------------------------" >> "$LOGFILE" 2>&1 - echo "Building in dchroot $chroot" >> "$LOGFILE" 2>&1 - echo "----------------------------------------" >> "$LOGFILE" 2>&1 - dchroot -c $chroot -d "$BUILDSCRIPT" >> "$LOGFILE" 2>&1 - else - echo "----------------------------------------" >> "$LOGFILE" 2>&1 - echo "Building on native system" >> "$LOGFILE" 2>&1 - echo "----------------------------------------" >> "$LOGFILE" 2>&1 - sh "$BUILDSCRIPT" >> "$LOGFILE" 2>&1 - fi - - case $SYSTEM in - mingw*) - /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${LOGFILE} rsync://128.238.56.50/upload/${DATE}/logs/" - ;; - *) - rsync -a "$LOGFILE" rsync://128.238.56.50/upload/${DATE}/logs/ - ;; - esac - -# send status report if something failed - completion_test=$(tail -1 ${LOGFILE}) - if [ "x${completion_test}" != "xSUCCESS" ]; then - if [ "x${RECIPIENT}" != "x" ]; then - SUBJECT="autobuild: $distro $HOSTNAME $DATE $TIME" - mailbody_on_failure | $MAIL_COMMAND -s "${SUBJECT}" ${RECIPIENT} - fi - fi -} - -for distrodir in ${HOME}/auto-build/*; do - distro=$(echo $distrodir | sed 's|.*/\(.*\)|\1|') - if [ -e $distrodir/scripts/auto-build/${distro}-auto-builder.sh ]; then - run_build_script $distro IGNORE_CHROOT_USE_SYSTEM - if [ -e /var/chroot ]; then - for chrootdir in /var/chroot/*; do - chroot=$(echo $chrootdir | sed 's|.*/\(.*\)|\1|') - HOSTNAME=`cat /var/chroot/$chroot/etc/hostname` - run_build_script $distro $chroot - done - fi - fi -done - -# since the above test can cause this script to exit with an error, force it -# to be happy to prevent getting automated error emails to root -true diff --git a/scripts/auto-build/tcltk_core-8-4-branch_auto-builder.sh b/scripts/auto-build/tcltk_core-8-4-branch_auto-builder.sh deleted file mode 100755 index ac92a254c..000000000 --- a/scripts/auto-build/tcltk_core-8-4-branch_auto-builder.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/sh -# this script is the first attempt to have an automated updater and builder - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - - -# convert into absolute path -cd $(echo $0 | sed 's|\(.*\)/.*$|\1|') -auto_build_root_dir=$(pwd) -echo "root: $auto_build_root_dir" - -# let rsync handle the cleanup with --delete -rsync -a --delete rsync://128.238.56.50/distros/tcltk_core-8-4-branch/ \ - ${auto_build_root_dir}/ - -BUILD_DIR=. -case $SYSTEM in - linux) - BUILD_DIR=unix - echo "Configuring to use $BUILD_DIR on GNU/Linux" - ;; - darwin) - BUILD_DIR=macosx - echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X" - export PATH=/bin:/sbin:/usr/bin:/usr/sbin -# export CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 \ -# -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" - make -C tcl/${BUILD_DIR} deploy - make -C tk/${BUILD_DIR} deploy - ;; - mingw*) - BUILD_DIR=win - echo "Configuring to use $BUILD_DIR on MinGW/Windows" - ;; - cygwin*) - BUILD_DIR=win - echo "Configuring to use $BUILD_DIR on Cygwin/Windows" - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - - -# not used (yet...) -exit - - - -upload_build () -{ - platform_folder=$1 - build_folder=$2 - archive_format=$3 - - archive="${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format}" - - echo "upload specs $1 $2 $3" - echo "Uploading $archive" - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - case $SYSTEM in - mingw*) - test -e ${archive} && /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename}" &&\ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - test -e ${archive} && rsync -a ${archive} \ - rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - esac -} - - -case $SYSTEM in - linux) - upload_build linux_make build tar.bz2 - ;; - darwin) - upload_build darwin_app . dmg - ;; - mingw*) - upload_build win32_inno Output exe - ;; - cygwin*) - upload_build win32_inno Output exe - ;; -esac - diff --git a/scripts/auto-build/tcltk_core-8-5-branch_auto-builder.sh b/scripts/auto-build/tcltk_core-8-5-branch_auto-builder.sh deleted file mode 100755 index effc0dc04..000000000 --- a/scripts/auto-build/tcltk_core-8-5-branch_auto-builder.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/sh -# this script is the first attempt to have an automated updater and builder - -# the source dir where this script is -SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|') -. $SCRIPT_DIR/auto-build-common - -# the name of this script -SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g') - - -# convert into absolute path -cd $(echo $0 | sed 's|\(.*\)/.*$|\1|') -auto_build_root_dir=$(pwd) -echo "root: $auto_build_root_dir" - -# let rsync handle the cleanup with --delete -rsync -a --delete rsync://128.238.56.50/distros/tcltk_core-8-5-branch/ \ - ${auto_build_root_dir}/ - -BUILD_DIR=. -case $SYSTEM in - linux) - BUILD_DIR=unix - echo "Configuring to use $BUILD_DIR on GNU/Linux" - ;; - darwin) - BUILD_DIR=macosx - echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X" - export PATH=/bin:/sbin:/usr/bin:/usr/sbin - export CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 \ - -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" - make -C tcl/${BUILD_DIR} deploy - make -C tk/${BUILD_DIR} deploy - ;; - mingw*) - BUILD_DIR=win - echo "Configuring to use $BUILD_DIR on MinGW/Windows" - ;; - cygwin*) - BUILD_DIR=win - echo "Configuring to use $BUILD_DIR on Cygwin/Windows" - ;; - *) - echo "ERROR: Platform $SYSTEM not supported!" - exit - ;; -esac - - -# not used (yet...) -exit - - - -upload_build () -{ - platform_folder=$1 - build_folder=$2 - archive_format=$3 - - archive="${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format}" - - echo "upload specs $1 $2 $3" - echo "Uploading $archive" - upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|") - case $SYSTEM in - mingw*) - test -e ${archive} && /c/cygwin/bin/sh -c \ - "rsync --archive --no-links --copy-links ${archive} rsync://128.238.56.50/upload/${DATE}/${upload_filename}" &&\ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - *) - test -e ${archive} && rsync -a ${archive} \ - rsync://128.238.56.50/upload/${DATE}/${upload_filename} && \ - echo "successfully uploaded: ${upload_filename}" && \ - echo SUCCESS - ;; - esac -} - - -case $SYSTEM in - linux) - upload_build linux_make build tar.bz2 - ;; - darwin) - upload_build darwin_app . dmg - ;; - mingw*) - upload_build win32_inno Output exe - ;; - cygwin*) - upload_build win32_inno Output exe - ;; -esac - diff --git a/scripts/build-libs-for-pd-on-mingw.sh b/scripts/build-libs-for-pd-on-mingw.sh deleted file mode 100755 index 621af2a81..000000000 --- a/scripts/build-libs-for-pd-on-mingw.sh +++ /dev/null @@ -1,169 +0,0 @@ -#!/bin/sh - -# this script is no longer maintained, instead use the 'sources tree and this script: -# https://pure-data.svn.sourceforge.net/svnroot/pure-data/sources/build-libs-on-mingw.sh - -# This script builds everything needed to build Pd-extended on MinGW. You -# need to download all of the source files listed on -# http://puredata.org/docs/developer/win first, put them all into one -# directory, then run this script in that directory. It should build and -# install everything. Make sure you have this line in your -# c:\msys\1.0\etc\fstab: - -# c:\MinGW /usr/local - -# This ensures that everything will be installed in the right -# place. <hans@eds.org> - -# pthreads -testfile=/usr/local/bin/pthreadGC2.dll -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - cd pthreads.2 - make clean GC-inlined - cp libpthreadGC2.a /usr/local/lib - cp pthreadGC2.dll /usr/local/bin - cp pthread.h sched.h semaphore.h /usr/local/include/ - cd .. -fi - -# Tcl -testfile=/usr/local/bin/tcl84.dll -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf tcl8.4.*-src.tar.gz - cd tcl8.4.*/win - ./configure && make CYGPATH=echo && make install - cd ../.. -fi - -# Tk -testfile=/usr/local/bin/tk84.dll -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf tk8.4.*-src.tar.gz - cd tk8.4.*/win - ./configure && make CYGPATH=echo && make install - cd ../.. -fi - -# ogg -testfile=/usr/local/lib/libogg.a -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf libogg-1.1.*.tar.gz - cd libogg-1.1.* - ./configure && make && make install - cd .. -fi - - -# GNU regex -testfile=/usr/local/lib/libregex.a -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf regex-0.12.tar.gz - cd regex-0.12 - ./configure && make - ar ru libregex.a regex.o - cp libregex.a /usr/local/lib - cp regex.h /usr/local/include - cd .. -fi - - -# vorbis -testfile=/usr/local/lib/libvorbisfile.a -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf libvorbis-1.1.*.tar.gz - cd libvorbis-1.1.* - ./configure && make - cd lib - /bin/sh ../libtool --tag=CC --mode=link gcc -O20 -D__NO_MATH_INLINES \ - -fsigned-char -DUSE_MEMORY_H -o libvorbisfile.la -rpath \ - /usr/local/lib -no-undefined -version-info 4:0:1 vorbisfile.lo \ - libvorbis.la /usr/local/lib/libogg.la - cd .. - make && make install - cd .. -fi - -# LAME -testfile=/usr/local/bin/libmp3lame-0.dll -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf lame-398-2.tar.gz - cd lame-398-2 - ./configure --disable-frontend \ - && make \ - && make install - cd .. -fi - -# speex -testfile=/usr/local/lib/libspeex.a -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf speex-*.tar.gz - cd speex-* - ./configure --enable-sse && make && make install - cd .. -fi - -# FLAC -testfile=/usr/local/lib/libFLAC.a -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf flac-1.1.*.tar.gz && cd flac-1.1.* - ./configure && make && make install || echo -e "\n\n$testfile failed!!\n\n" -# the compilation bombs, but builds most of what we need, so install anyway - make -k install - cd .. -fi - -# libsndfile -# the FLAC build bombs, so disable FLAC support in libsndfile -testfile=/usr/local/lib/libsndfile.a -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf libsndfile-1.0.19.tar.gz - cd libsndfile-1.0.19 - ./configure --disable-alsa --enable-sqlite - && make && make check && make install - cd .. -fi - -# fftw3 -testfile=/usr/local/lib/libfftw3.a -if [ -e "$testfile" ]; then - echo "$testfile exists, skipping..." -else - echo "Building everything for $testfile" - tar xzf fftw-3.1.*.tar.gz - cd fftw-3.1.* - ./configure --with-our-malloc16 --with-windows-f77-mangling --enable-shared --disable-static --enable-threads --with-combined-threads --enable-portable-binary --enable-float --enable-sse && \ - make && make install - cd .. -fi - diff --git a/scripts/build-packages.sh b/scripts/build-packages.sh deleted file mode 100644 index 8b2898217..000000000 --- a/scripts/build-packages.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# this script builds the apt repo for http://apt.puredata.info/releases - -cd /var/www/releases - -# delete old ones -find dists -name Packages.gz -delete -find dists -name Packages.bz2 -delete - -# make new Packages files -for dir in dists/*/*/binary-*; do - dpkg-scanpackages ${dir} /dev/null | gzip -9c > ${dir}/Packages.gz - dpkg-scanpackages ${dir} /dev/null | bzip2 -9c > ${dir}/Packages.bz2 -done - -for dir in dists/*; do - apt-ftparchive contents $dir | gzip -9c > ${dir}/Contents.gz - apt-ftparchive release $dir > ${dir}/Release -done - - diff --git a/scripts/checkout-developer-layout.sh b/scripts/checkout-developer-layout.sh deleted file mode 100755 index 18ad41975..000000000 --- a/scripts/checkout-developer-layout.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - -# this script automatically generates a directory with all of the Pd code out -# of CVS in the standard developer's layout. <hans@at.or.at> - -# Usage: -# - with no arguments, it will check out the code using anonymous CVS. -# - to check out using your SourceForge ID, add that as the argument - -URL="https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/" -GEMURL="https://pd-gem.svn.sourceforge.net/svnroot/pd-gem/trunk/" -PDAUTH="" -SVNOPTIONS="--ignore-externals" - -print_usage () -{ - echo " " - echo "Usage: $0 [sourceforge ID]" - echo " if no ID is given, it will check out anonymously" - echo " " - exit -} - -if [ $# -eq 0 ]; then - echo "Checking out anonymously. Give your SourceForge ID if you don't want that." -elif [ "$1" == "--help" ]; then - print_usage -elif [ "$1" == "-h" ]; then - print_usage -elif [ $# -eq 1 ]; then - PDAUTH="--username $1" -else - print_usage -fi - -echo "checking out pure-data" -svn checkout $SVNOPTIONS $PDAUTH $URL pure-data - -cd pure-data - -for section in Gem videoIO; do - echo "checking out Gem::${section}" - svn checkout $SVNOPTIONS ${PDAUTH} ${GEMURL}/${section} ${section} -done - - -# make the symlinks which simulate the files being installed into the packages -cd packages && make devsymlinks diff --git a/scripts/config-switcher.sh b/scripts/config-switcher.sh deleted file mode 100755 index 783dfaf2a..000000000 --- a/scripts/config-switcher.sh +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh - - -#==============================================================================# -# functions - -print_usage() { - echo "Usage: " - echo "To load a config file:" - echo " $0 load CONFIG_NAME" - echo " " - echo "To save the current config to file:" - echo " $0 save CONFIG_NAME" - echo " " - echo "To delete the current config:" - echo " $0 delete CONFIG_NAME" - echo " " - echo "To list existing configs:" - echo " $0 list" - echo " " - echo "To print the contents of a config:" - echo " $0 print CONFIG_NAME" - echo " " - echo "To see the difference between the current config and another:" - echo " $0 diff CONFIG_NAME" - echo " " - echo "To use the .pdrc instead, add '--pdrc':" - echo " $0 --pdrc load CONFIG_NAME" - echo " $0 --pdrc save CONFIG_NAME" - echo " $0 --pdrc delete CONFIG_NAME" - echo " $0 --pdrc list" - echo " $0 --pdrc print CONFIG_NAME" - echo " $0 --pdrc diff CONFIG_NAME" - exit -} - -#==============================================================================# -# THE PROGRAM - -if [ $# -lt 1 ]; then - print_usage -else - # get the command line arguments - if [ $1 == "--pdrc" ]; then - CONFIG_DIR=~ - CONFIG_FILE=.pdrc - COMMAND=$2 - CONFIG_NAME=$3 - else - COMMAND=$1 - CONFIG_NAME=$2 - # location of pref file that Pd reads - case `uname` in - Darwin) - CONFIG_DIR=~/Library/Preferences - CONFIG_FILE=org.puredata.pdextended.plist - ;; - Linux) - CONFIG_DIR=~ - CONFIG_FILE=.pdextended - ;; - *) - echo "Not supported on this platform." - exit - ;; - esac - fi - - # everything happens in this dir - cd $CONFIG_DIR - - selected_file="$CONFIG_DIR/$CONFIG_FILE-$CONFIG_NAME" - case $COMMAND in - load) - if [ -e "$selected_file" ]; then - test -e "$CONFIG_FILE" && mv -f "$CONFIG_FILE" /tmp - cp "$selected_file" "$CONFIG_FILE" && \ - echo "Pd config \"$selected_file\" loaded." - else - echo "\"$selected_file\" doesn't exist. No action taken." - fi - ;; - save) - if [ -e "$CONFIG_FILE" ]; then - cp -f "$CONFIG_FILE" "$selected_file" && \ - echo "Pd config \"$CONFIG_NAME\" saved." - else - echo "\"$CONFIG_FILE\" doesn't exist. No action taken." - fi - ;; - delete) - if [ -e "$selected_file" ]; then - rm -f "$selected_file" && \ - echo "Pd config \"$selected_file\" deleted." - else - echo "\"$selected_file\" doesn't exist. No action taken." - fi - ;; - list) - echo "Available configs:" - pwd - ls -1 "${CONFIG_FILE}"* -pwd - ;; - print) - if [ "${CONFIG_NAME}" == "" ]; then - cat "${CONFIG_FILE}" - else - cat "$selected_file" - fi - ;; - diff) - diff -uw "${CONFIG_FILE}" "$selected_file" - ;; - *) print_usage ;; - esac -fi diff --git a/scripts/convert-help-to-standard.sh b/scripts/convert-help-to-standard.sh deleted file mode 100755 index 56175fd16..000000000 --- a/scripts/convert-help-to-standard.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -# this script renames help patches that don't follow the OBJECTNAME-help.pd -# format that has become the standard. -# -# for more info on the standard, check this thread: -# http://lists.puredata.info/pipermail/pd-dev/2003-09/001519.html -# -# this script is a hack to take care of this until all of the files get -# renamed by their respective maintainers. - -for helpfile in help-*.pd ; do - if [ -e $helpfile ]; then - newhelpfile=`echo $helpfile | sed 's/^help\-\(.*\)\.pd$/\1-help.pd/'` - if [ "$helpfile" != "$newhelpfile" ]; then - echo " swap $helpfile" "$newhelpfile" - mv "$helpfile" "$newhelpfile" - else - echo "SAMEFILE $helpfile" - fi - fi -done - -# this isn't used yet -#NON_STANDARD_HELP_FILES=`ls -1 *.pd | \ -# grep -v '^.*-help.pd$' | \ -# grep -v '^help-.*.pd$' | \ -# grep -v '^externals.pd$' | \ -# grep -v 'test' | \ -# grep -v 'example' | \ -# grep -v 'demo' | \ -# grep -v 'x_all_guis' | \ -# grep -v 'all_about_' | \ -# grep -v 'pddp' | \ -# grep -v 'readme' | \ -# grep -v '^.*-list.pd$' | \ -# grep -v '^.*-joystick.pd$'` - -#for helpfile in $NON_STANDARD_HELP_FILES ; do -# echo NONE $helpfile -#done - diff --git a/scripts/download-pd-archives.sh b/scripts/download-pd-archives.sh deleted file mode 100755 index 1d80583c6..000000000 --- a/scripts/download-pd-archives.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# This script downloads mbox archives of the Pd lists and sets them up at -# Apple Mail.app local mailboxes. -# <hans@at.or.at> - -# which lists you want to download. The lists hosted on this server are: -# gem-dev pd-announce pd-cvs pd-dev pd-list pd-ot pdweb -LISTS="pd-announce pd-dev pd-list pd-ot pdweb" -MAILBOX_ROOT=~/Library/Mail/Mailboxes/Pd - -for listname in $LISTS ; do - echo " " - echo " " - echo Downloading $listname: - if [ ! -d $MAILBOX_ROOT/$listname.mbox ]; then - mkdir $MAILBOX_ROOT/$listname.mbox - fi - cd $MAILBOX_ROOT/$listname.mbox - wget http://lists.puredata.info/pipermail/$listname.mbox/$listname.mbox && \ - (rm mbox table_of_contents; mv $listname.mbox mbox) -done diff --git a/scripts/find-wish.app.sh b/scripts/find-wish.app.sh deleted file mode 100755 index 6ea50da95..000000000 --- a/scripts/find-wish.app.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -cvs_root_dir=`echo $0 | sed 's|\(.*\)/.*$|\1|'`/.. -cd $cvs_root_dir -cvs_root_dir=`pwd` - -TCLTK="$1" - -if [ "x${TCLTK}" != "x" ]; then - test -d /Volumes/${TCLTK} || \ - hdiutil mount -quiet ${cvs_root_dir}/packages/darwin_app/${TCLTK}.dmg - echo "/Volumes/${TCLTK}" -else - if [ -d "/Library/Frameworks/Tk.framework/Resources" ]; then - echo "/Library/Frameworks/Tk.framework/Resources" - else - if [ -d "/System/Library/Frameworks/Tk.framework/Resources" ]; then - echo "/System/Library/Frameworks/Tk.framework/Resources" - fi - fi -fi - diff --git a/scripts/guiplugins/buttonbar/buttonbar-plugin.tcl b/scripts/guiplugins/buttonbar/buttonbar-plugin.tcl deleted file mode 100644 index 2fe0cab40..000000000 --- a/scripts/guiplugins/buttonbar/buttonbar-plugin.tcl +++ /dev/null @@ -1,1212 +0,0 @@ -# this plugin creates a buttonbar on a patch window when that patch -# window is in Edit Mode - -# this GUI plugin removes the menubars from any patch window that is -# not in Edit Mode. Also, if a patch is switched to Run Mode, the -# menubar will be removed. - -package require base64 - -proc make_pd_button {mytoplevel name} { - button $mytoplevel.buttonbar.$name -image buttonimage$name \ - -relief flat -borderwidth 0 -highlightthickness 0 \ - -highlightcolor grey -highlightbackground grey -padx 0 -pady 0 \ - -command "menu_send_float \$::focused_window $name 0" - pack $mytoplevel.buttonbar.$name -side left -padx 0 -pady 0 -} - -proc make_iemgui_button {mytoplevel name} { - button $mytoplevel.buttonbar.$name -image buttonimage$name \ - -relief sunken -borderwidth 0 -highlightthickness 0 \ - -highlightcolor grey -highlightbackground grey -padx 0 -pady 0 \ - -command "menu_send \$::focused_window $name" - pack $mytoplevel.buttonbar.$name -side left -padx 0 -pady 0 -} - -proc showhide_buttonbar {mytoplevel} { - if { ! [winfo exists $mytoplevel.buttonbar]} { - frame $mytoplevel.buttonbar -cursor arrow -background grey \ - -pady 0 - make_pd_button $mytoplevel obj - make_pd_button $mytoplevel msg - make_pd_button $mytoplevel floatatom - make_pd_button $mytoplevel symbolatom - make_pd_button $mytoplevel text - make_iemgui_button $mytoplevel bng - make_iemgui_button $mytoplevel toggle - make_iemgui_button $mytoplevel numbox - make_iemgui_button $mytoplevel hslider - make_iemgui_button $mytoplevel vslider - make_iemgui_button $mytoplevel hradio - make_iemgui_button $mytoplevel vradio - make_iemgui_button $mytoplevel vumeter - make_iemgui_button $mytoplevel mycnv - make_iemgui_button $mytoplevel menuarray - } - if {$::editmode($mytoplevel)} { - set tkcanvas [tkcanvas_name $mytoplevel] - pack forget $tkcanvas - pack $mytoplevel.buttonbar -side top -fill x - pack $tkcanvas -side top -expand 1 -fill both - } else { - pack forget $mytoplevel.buttonbar - } -} - -bind PatchWindow <FocusIn> {+showhide_buttonbar %W} -bind PatchWindow <<EditMode>> {+showhide_buttonbar %W} - -#set imgdir "/Users/hans/Desktop/buttonbar" -#image create photo buttonimageobj -file $imgdir/obj.gif.pgm -#image create photo buttonimagemsg -file $imgdir/msg.gif.pgm -#image create photo buttonimagefloatatom -file $imgdir/floatatom.gif -#image create photo buttonimagesymbolatom -file $imgdir/symbolatom.gif -#image create photo buttonimagetext -file $imgdir/text.gif - -#image create photo buttonimagebng -file $imgdir/bng.gif -#image create photo buttonimagetoggle -file $imgdir/toggle.gif -#image create photo buttonimagenumbox -file $imgdir/numbox.gif -#image create photo buttonimagehslider -file $imgdir/hslider.gif.pgm -#image create photo buttonimagevslider -file $imgdir/vslider.gif.pgm -#image create photo buttonimagehradio -file $imgdir/hradio.gif.pgm -#image create photo buttonimagevradio -file $imgdir/vradio.gif.pgm -#image create photo buttonimagevumeter -file $imgdir/vumeter.gif -#image create photo buttonimagemycnv -file $imgdir/mycnv.gif - -#image create photo buttonimagemenuarray -file $imgdir/array.gif - -set menuarraydata { -R0lGODlhHAATAMQAAAAAAAsLCxISEh0dHSQkJDMzMzs7O0ZGRlJSUnFxcXl5eZGRkaCgoK2trbu7 -u8bGxtjY2OLi4unp6f7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQA -AAAAIf/8SUNDUkdCRzEwMTIAAA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3Nw -QVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAA -ABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAAB -uAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNj -bQAADpAAAACmbW1vZAAADzgAAAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVog -AAAAAAAAcEsAALBzAAAij1hZWiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9z -ZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHN -AABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0A -Zf8A0gF8AkoDHgQIBSMGXAeyCSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8n -MSh9KcgrDixTLZMu0DAJMT8ybTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYM -RwRH/kj3Se9K6EvhTNxN1k7RT81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYglj -E2QeZSpmNmdCaE9pW2poa3ZshG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBP -gVKCVYNWhFeFV4ZWh1SIUolQik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxF -nUmeTJ9QoFShWKJco1+kYqVmpmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25 -VrpNu0O8Ob0tvh+/EMAAwO3B2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC -0ofTStQN1M7VjNZK1wjXxNh+2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm -3OeV6E/pCunH6ojrTOwU7OLtt+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc -/wBiAMoBZgIoAucDzgTNBfYHNQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOF -JMEl+ycuKF4pjSq4K+AtAy4iLzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9B -IUIBQuJDw0SkRYZGaUdNSDBJFkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZ -W8tcvV2uXqBfkGCBYXJiY2NUZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ2 -03fPeMx5yHrCe7x8tn2ufqd/n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGS -DpMLlAiVBZYClv+X/Zj6mfea9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62y -rrevvLDDscuy1LPdtOa18Lb4uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrK -hctwzFjNQM4mzwvP79DS0bPSk9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe -5JrlmOaZ55von+mk6qrrsey57cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ -ABYATgCiARIBqQJNAvgDxwStBagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob -1hzOHcMeth+oIJchhCJvI1ckPCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0 -MxszwDRlNQo1rjZTNvY3mjg+OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNF -C0W0Rl9HCke3SGVJFEnDSnNLJUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+Viz -WW1aKFriW51cWF0TXc5eil9GYAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3F -bpNvYXAwcP9xz3Kgc3F0QnUVded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF -3oa5h5WIcYlNiiqLCIvmjMSNo46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57w -n+eg4aHdotyj36Tkpeym+KgHqRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+ -w7/6wTXCdcO8xRDGbsfayV7K9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8A -AG5kaW4AAAAAAAAGNgAAlvAAAFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuF -AAMBAAACAAAAGwAwAEoAZQB+AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowC -sALWAv0DJgNRA34DrAPdBBAERQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2 -ChgKfgrmC1MLwww2DK0NJw2kDiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8Z -VRn8GqUbUBv7HKkdVx4HHrgfayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQt -oC5uLz0wDjDhMbUyizNjND01GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cw -SDtJSEpXS2dMeE2LTqBPtVDLUeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltn -jWjBafdrL2xpbaVu43AjcWVyqnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0K -jpqQMZHPk3SVIJbTmI6aT5wYneifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MO -xU3Hj8nUzBzOaNC30wjVWNel2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7 -lP0P/ob//wAAABwAMwBQAGsAhwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLG -Au8DGgNHA3cDqAPdBBMETASHBMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4L -MwusDCoMrA0zDb0OSw7dD3IQChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzs -HageZR8kH+UgqCFtIjQi/iPKJJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRI -NTI2HDcJN/Y45TnWOsg7vTy0Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR -1lL3VBlVO1ZfV4RYqlnRWvlcI11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQ -dN12Knd3eMV6EntffKx9+H9EgJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2a -vpxEnc6fXKDuooWkIKXAp2SpDaq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK -28yazlTQC9G+027VG9bG2HDaGNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD -+yb8x/5m//8AAAAjAEIAZwCJAKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD -/wRGBJIE4QU0BYoF5AZBBqEHBQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLC -E6YUkBV/FnMXbBhqGWwacxuAHJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMy -vzP9NT42gDfFOQw6VzujPPM+RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hY -wlotW5ldBl50X+RhVWLHZDplr2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJc -g+uFe4cNiJ+KMovFjViO7JB/khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGv -abDeslKzwrUxtp+4C7l2uuC8Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar -1/rZQdqB27nc6d4M3yfgOuE+4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K -8CDwsfFD8dPyXfLo83Pz+PR99QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+ -Nv6o/xr/jf//AABkZXNjAAAAAAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1 -YwAAAAAAAAAFAAAADGVuVVMAAAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAAS -AAAAgGl0SVQAAAAUAAAAkgBDAG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBh -AHIAYgAtAEwAQwBEAEwAQwBEACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QA -AAAAAAAGEAAAnGEAAAAAwF3/AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBs -ZSwgSW5jLiwgMjAxMAAALAAAAAAcABMAAAWO4CSOZGmeE6CubOu2IoDOp5zS+GgDxmn0ox9K9lBF -ShKVRBQx1iYJVUMkLAIGPYdUOCpODirFxMpgsB4LFULFEJl3gIMhoCIoWPRXgaCKtQQAgC8qgioF -O3wAAQZvKwIDdSoQExIFBUkxbw8ihytHP5VAJDsTXJQFP6I0pDk4rK0zr7BPN7NDfoO5L7atIQA7 -} -image create photo buttonimagemenuarray -data $menuarraydata - -set bngdata { -R0lGODlhEgASAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABIAEgAAAjOMj4nA7Q8MfE -setqINWqtueQpH -ctgonSeatqy7sqqIznTShG8Elt/mia06k9wlVYS8WAUAOw== -} -image create photo buttonimagebng -data $bngdata - -set floatatomdata { -R0lGODlhEQARANUAAAAAAAAAkQBPkQoKChMTEy5BgkEAT09PLk+CyE+JzU+f0lxcQXAuLnm97oJB -cILI7okuXJjc/6WlsatcALdmALd5XL3Ckb3CpcDAwMju/9KRLtLq+9L35eDg4OX7/+7cwvLSn/vS -kf7//v/lq//uzf//7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQKAAAAIf/8SUNDUkdCRzEwMTIA -AA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0 -AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52 -Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgA -AAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZ -WiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///z -JgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAA -Y3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAey -CSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8y -bTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7R -T81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3Zs -hG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQ -ik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVm -pmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B -2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+ -2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLt -t+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYH -NQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4i -LzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJ -Fkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NU -ZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/ -n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea -9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4 -uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPS -k9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey5 -7cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwSt -BagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ck -PCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+ -OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNL -JUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9G -YAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUV -ded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSN -o46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgH -qRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K -9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAA -AFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+ -AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAE -RQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2k -DiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgf -ayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01 -GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDL -UeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVy -qnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wY -neifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel -2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsA -hwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASH -BMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQ -ChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPK -JJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0 -Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlc -I11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9E -gJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2Sp -Daq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDa -GNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJ -AKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEH -BQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuA -HJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+ -RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDpl -r2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/ -khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8 -Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+ -4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR9 -9QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAA -AAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMA -AAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBD -AG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBE -ACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/ -AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAA -AAARABEAAAZcQJFwSCwaj0iAcqkcdI4AIwBDwEiZSxHVSoyKPpINcdsVgQoXQ4bYGZQnkRFAUfQK -ASUIx2FB1MsVBw0hCX9DURoBIhQPhnciJAwLAh6OIlhZh12YmEien6ChQ0EAOw== -} -image create photo buttonimagefloatatom -data $floatatomdata - -set hradiodata { -R0lGODlhEwASAPABAP///wAAACH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABMAEgAAAieEj6nL7Q9jCrTaSw2uK2hwgd0X -eorplaOonqQluuBmThpNS/rO6wUAOw== -} -image create photo buttonimagehradio -data $hradiodata - -set hsliderdata { -R0lGODlhFwATAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABcAEwAAAjOMj6nL7Q+jAbTaiycGqCYegI3X -TQ95gCKDmuFJfe4Yl6/T3uuSq1tXS2k2RIvkiEwqIwUAOw== -} -image create photo buttonimagehslider -data $hsliderdata - -set msgdata { -R0lGODlhGgARAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABoAEQAAAjCMj6kK7Q+jM4CtVam8KVMOeh+I -WaSJiOeYrh3qBqocH/N83rX97qy8WXkkxKKPUwAAOw== -} -image create photo buttonimagemsg -data $msgdata - -set mycnvdata { -R0lGODlhEgATAIAAAODg4P///yH5BAQAAAAAIf/8SUNDUkdCRzEwMTIAAA+EYXBwbAIAAABtbnRy -UkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYA -AQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAAB -fAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAABhJu/2Rp -bgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgAAAAoY3BydAAAD2AAAAAk -WFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZWiAAAAAAAAAlgQAAF1cA -AKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov// -/aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0A -AHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAeyCSQKswxdDg4P0xGeE2UV -LBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8ybTOXNLw13Tb2OA05HTop -OzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7RT81QylHIUsdTx1THVchW -ylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3ZshG2Sbp9vrXC6cchy1XPi -dO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQik2LSoxHjUOOQI//PZA7 -kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVmpmmnbKhvqXGqdKt1rHet -eK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B2cLDw6rEj8VxxlHHL8gK -yOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+2TjZ8tqq22LcGtzS3Yre -Qt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLtt+6S73XwX/FR8kzzT/Rb -9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYHNQiUCgULmQ0xDtcQhxIv -E9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4iLzswTjFdMmQzaDRmNWA2 -VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJFkn8SuRLzUy3TaNOkk+A -UHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NUZEZlOGYrZyBoFGkKagJq -+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/n4CWgY2Cg4N6hP9vhWWG -XIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea9JvwnOyd6J7jn9+g2qHU -os6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4uAG5CboPuxS8GL0avhq/ -GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPSk9Ny1FHVL9YN1uvXydin -2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey57cHuyu/U8N7x6vL39AT1 -FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwStBagGuQfeCRcKWAuhDPEO -Qw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ckPCUdJfsm1CepKHkpRioO -KtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+OOE5hDooOss7bzwSPLU9 -WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNLJUvWTIlNPE3wTqRPWVAO -UMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9GYAJgvmF7Yjli//djtWR1 -ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUVded2uneOeGJ5N3oMeuF7 -uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSNo46Dj2SQRpEokguS8JPV -lLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgHqRiqLKtDrFutdq6Tr7Gw -0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K9MynznzQcdKM1MzXQNnY -3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAAAFjoAABTGAAAil4AACeX -AAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+AJcAsADJAOIA+wEUAS0B -RgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAERQR8BLYE8QUuBW0FrgXx -BjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2kDiUOqA8uD7YQQRDPEV4R -8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgfayAeINQhiiL/QiL7I7Uk -cSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01GTX4Ntg3ujifOYc6cDtc -PEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDLUeNS+1QUVS5WSldmWIRZ -olrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVyqnPxdTt2h3fWeSd6fHvT -fS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wYneifv6Gdo4GlbadhqVur -Xa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel2ezcKd5Z4HriieSG5nLo -Tuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsAhwChALwA1gDxAQwBJgFB -AV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASHBMQFBAVGBYoF0AYZBmQG -sAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQChClEUMR4xKHEywT1RR/ -FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPKJJglaCY7J/8PJ+YowCmb -KngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0Pa0+qD+lQKZBqEKtQ7VE -vkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlcI11OXntfqWDZYgpjPmRz -Zatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9EgJGB3YMqhHiFx4cXiGqJ -vosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2SpDaq6rGyuIq/dsZ2zYbUp -tvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDaGNvB3WnfEeC54mLkDOW1 -51/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJAKsAzQDvAREBMwFWAXoB -nwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEHBQdsB9cIRwi7CTQJswo4 -CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuAHJEdpx7BH+AhASIlI0sk -ciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+RT+bQPNC/05DrEUMRm5H -00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDplr2claJ1qFWuPbQpuhnAE -cYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/khOTppU5lsyYX5nym4Sd -Fp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8Sr2yvxvAg8Hqw1LEucYf -x4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+4j7jL+Qc5P3l2ear53ro -PukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR99QH1hPYE9oX3BfeI+Ar4 -jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAAAAAAAApDb2xvciBMQ0QA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMAAAASAAAATGZyRlIAAAAS -AAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBDAG8AbAChbwByACAATABD -AEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBEACAAYwBvAGwAbwByAEwA -QwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/AAAAAAAAAAAAAAAAAAAA -AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAAAAASABMAAAIljI+JwO0P -DJxN0mnvy7qGvn2gN5JlJJYcuHat9l4xNWPKjedKAQA7 -} -image create photo buttonimagemycnv -data $mycnvdata - -set numboxdata { -R0lGODlhFgATANUAAAAAAAAAZQAAeABbqQBvrwkJCRISEiUlJS14ry2Iyjo6OkCAtUCWylRUVFsA -AGWv4nNzc4gAAIi7xYvF64/P75OTk6Pe/KlbLa9lAK+dZa+vr7WAQLuALb29vcDAwM+PLc+WTtT0 -/Nzc3N7i7eDg4OKvZerq6uvKi+3k3vT8/PX19fjZnfznr/z41Pz89P39/QAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQAAAAAIf/8SUNDUkdCRzEwMTIA -AA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0 -AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52 -Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgA -AAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZ -WiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///z -JgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAA -Y3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAey -CSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8y -bTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7R -T81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3Zs -hG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQ -ik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVm -pmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B -2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+ -2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLt -t+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYH -NQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4i -LzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJ -Fkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NU -ZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/ -n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea -9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4 -uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPS -k9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey5 -7cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwSt -BagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ck -PCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+ -OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNL -JUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9G -YAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUV -ded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSN -o46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgH -qRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K -9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAA -AFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+ -AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAE -RQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2k -DiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgf -ayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01 -GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDL -UeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVy -qnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wY -neifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel -2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsA -hwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASH -BMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQ -ChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPK -JJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0 -Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlc -I11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9E -gJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2Sp -Daq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDa -GNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJ -AKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEH -BQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuA -HJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+ -RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDpl -r2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/ -khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8 -Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+ -4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR9 -9QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAA -AAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMA -AAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBD -AG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBE -ACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/ -AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAA -AAAWABMAAAaXwJdwSCwahYCkcskskIpM5bFj8BAB1M6xSLUiX1kjakTsfsEGrdC1SS5SQ1HhjFaf -AiEWYHKl118fCS8cAAx9LwBFHgYvGA8rAhkDcGeJcQYaLhcSERQlk0OWli8mBxVCIAAEgIKhZyoK -EEMnABYtDnyuiEINDURsSQiUlS8QCipiZFBIFQcmW0eiUaNb0tPXUtDa29xCQQA7 -} -image create photo buttonimagenumbox -data $numboxdata - -set objdata { -R0lGODlhFgARAPABAP///wAAACH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABYAEQAAAiWEj6kW7emaCqtOaynQ+O6+aBx4 -jCRinurKtpDLtKLMmJEtwUYBADs= -} -image create photo buttonimageobj -data $objdata - -set symbolatomdata { -R0lGODlhEQARANUAAAAAAAAALgAAkQoKChMTEy4ueS5BcC5cn0FBLk8AAFxmXFyJt2aYwokuAJFc -QZG915jI6pjX959cT6uCXLGCT7HS5beYn8DAwMiRQdLu+9f38uDg4OXIpez9//LSmPL/8vfSkff/ -//v38v7////y4P/94v//8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQAAAAAIf/8SUNDUkdCRzEwMTIA -AA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0 -AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52 -Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgA -AAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZ -WiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///z -JgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAA -Y3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAey -CSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8y -bTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7R -T81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3Zs -hG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQ -ik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVm -pmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B -2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+ -2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLt -t+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYH -NQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4i -LzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJ -Fkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NU -ZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/ -n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea -9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4 -uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPS -k9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey5 -7cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwSt -BagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ck -PCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+ -OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNL -JUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9G -YAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUV -ded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSN -o46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgH -qRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K -9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAA -AFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+ -AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAE -RQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2k -DiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgf -ayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01 -GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDL -UeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVy -qnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wY -neifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel -2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsA -hwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASH -BMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQ -ChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPK -JJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0 -Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlc -I11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9E -gJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2Sp -Daq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDa -GNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJ -AKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEH -BQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuA -HJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+ -RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDpl -r2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/ -khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8 -Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+ -4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR9 -9QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAA -AAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMA -AAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBD -AG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBE -ACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/ -AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAA -AAARABEAAAZfwJFwSCwaj0iAcqkcbI4AI+BCuEiZyxHVSowit12kcDMIlxyIw8eSGXqFUZCgI+Qk -FvT3KGqiABghQhgAEHpRIiMlDREkEwYVe2EeAQoFGhIPbl1YSmFunJxioqOko0EAOw== -} -image create photo buttonimagesymbolatom -data $symbolatomdata - -set textdata { -R0lGODlhGwARAPAAAP///wAAACH5BAAAAAAAIf8LSUNDUkdCRzEwMTL/AAAPhGFwcGwCAAAAbW50 -clJHQiBYWVogB9oACQABAA8AEwAfYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbW -AAEAAAAA0y1hcHBs2S6BsfMyXumJcebqTFAPNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA -AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAYSbmRp -bgAAB+wAAAY+ZGVz/2MAAA4sAAAAZGRzY20AAA6QAAAApm1tb2QAAA84AAAAKGNwcnQAAA9gAAAA -JFhZWiAAAAAAAABhCgAAOFEAAAdYWFlaIAAAAAAAAHBLAACwcwAAIo9YWVogAAAAAAAAJYEAABdX -AACpPlhZWiAAAAAAAADzUgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L/ -//2jAAAD3AAAwGxjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHN -AAB2Y2d0AAAAAAAAAAAAAwEAAAIAAAAdAGUA0gF8AkoDHgQIBSMGXP8HsgkkCrMMXQ4OD9MRnhNl -FSwW7RieGkQb3x1rHu4gYyHOIzEkiSXfJzEofSnIKw4sUy2TLtAwCTE/Mm0zlzS8Nd029jgNOR06 -KTszPDc9Oj46PzdAM0EuQilDIkQaRRRGDEcER/5I90nvSuhL4UzcTdZO0U/NUMpRyFLHU8dUx1XI -VspXzFjPWdNa11vdXOJd6V7wX/hhAGIJYxNkHmUqZjZnQmhPaVtqaGt2bIRtkm6fb61wunHIctVz -4nTvdfx3B3gSeRx6J3swfDd9P35Ff0qAT4FSglWDVoRXhVeGVodUiFKJUIpNi0qMR41DjkCPPZA7 -kTiSN5M2lDWVNZb/Npc3mDmZO5o+m0KcRZ1JnkyfUKBUoViiXKNfpGKlZqZpp2yob6lxqnSrdax3 -rXiuea95sHmxeLJ2s3S0cbVutmm3Y7hduVa6TbtDvDm9Lb4fvxDAAMDtwdnCw8OqxI/FccZRxy/I -CsjkybzKkMtkzDXNBc3Tzp/PatAz0PzRwtKH00rUDdTO1YzWStcI18TYftk42fLaqtti3Brc0t2K -3kLe+d+x4GjhIOHY4o/jR+P/5LblbeYl5tznlehP6Qrpx+qI60zsFOzi7bfuku918F/xUfJM80/0 -W/Vt9of3p/jN+fj7I/xU/Yr+xP//AAAAHABiAMoBZgIoAucDzgTN/wX2BzUIlAoFC5kNMQ7XEIcS -LxPcFX0XFRikGicbmR0EHl0fsiD/IkcjhSTBJfsnLiheKY0quCvgLQMuIi87ME4xXTJkM2g0ZjVg -NlY3Rzg2OR86CDrvO9M8tz2aPnw/XkA/QSFCAULiQ8NEpEWGRmlHTUgwSRZJ/ErkS81Mt02jTpJP -gFBwUWFSU1NFVDhVK1YeVxBYA1j2Weda2VvLXL1drl6gX5BggWFyYmNjVGRGZThmK2cgaBRpCmoC -avpr9Gzubepu5m/jcOFx33Ldc9t02XXWdtN3z3jMech6wnu8fLZ9rn6nf5+AloGNgoODeoRvhWWG -XIdTiEmJQYo5i/8xjCqNJY4fjxqQFZERkg6TC5QIlQWWApb/l/2Y+pn3mvSb8Jzsneie45/foNqh -1KLOo8ikw6W+prmntaixqa+qrauurK+tsq63r7yww7HLstSz3bTmtfC2+LgBuQm6D7sUvBi9Gr4a -vxjAFcEQwgnDAcP2xOvF3cbPx7/IrcmayoXLcMxYzUDOJs8Lz+/Q0tGz0pPTctRR1S/WDdbr18nY -p9mF2mXbRtwp3Q7d9d7f38zgvOGv4qXjnuSa5Zjmmeeb6J/ppOqq67Hsue3B7srv1PDe8ery9/QE -9RT2Jfc3+Er5YPp3+478pv3A/t3//wAAABYATgCiARIBqQJNAvj/A8cErQWoBrkH3gkXClgLoQzx -DkMPjBDWEhYTThR6FZ4WuBfKGNYZ2hraG9Yczh3DHrYfqCCXIYQibyNXJDwlHSX7JtQnqSh5KUYq -DirRK5EsTi0HLbsuby8gL80weTElMcwydDMbM8A0ZTUKNa42Uzb2N5o4PjjhOYQ6KDrLO288Ejy1 -PVg9+j6dP0A/40CGQSlBzUJxQxZDvERjRQtFtEZfRwpHt0hlSRRJw0pzSyVL1kyJTTxN8E6kT1lQ -DlDEUXtSMlLpU6FUWlUSVcxWhVc/V/lYs1ltWiha4ludXFhdE13OXopfRmACYL5he2I5YvdjtWR1 -ZTVl92a5Z31o/0JpCGnPaphrYmwtbPhtxW6Tb2FwMHD/cc9yoHNxdEJ1FXXndrp3jnhieTd6DHrh -e7h8j31lfjx/FH/sgMWBnYJ3g1CEKoUEhd6GuYeViHGJTYoqiwiL5ozEjaOOg49kkEaRKJILkvCT -1ZS8laOWjJd2mGCZTJo6myicF50Infue8J/noOGh3aLco9+k5KXspvioB6kYqiyrQ6xbrXauk6+x -sNKx87MWtDq1X7aHt6+42boEuzG8X72QvsO/+sE1wnXDvMUQxm7H2sleyvTMp8580HHSjNTM10DZ -2Nyl35jis+X36Wfs8vB29CP39Pvw//8AAG5kaW4AAAAAAAAGNv8AAJbwAABY6AAAUxgAAIpeAAAn -lwAAFqgAAFANAABUOQACQo8AAfCjAAFrhQADAQAAAgAAABsAMABKAGUAfgCXALAAyQDiAPsBFAEt -AUYBYQF7AZYBsQHOAesCCQIoAkgCaQKMArAC1gL9AyYDUQN+A6wD3QQQBEUEfAS2BPEFLgVtBa4F -8QY1BnwGxAcOB1sHqQf6CE0Iowj8CVgJtgoYCn4K5gtTC8MMNgytDScNpA4lDqgPLg+2EEEQzxFe -EfAShBMZE7EUSxTnFYQWIxbEF2YYChivGVUZ/BqlG1Ab+xypHVceBx64H2sgHiDUIYoiQiL7I7Uk -cSUtJesmqif/aigsKO8ptCp6K0EsCizULaAubi89MA4w4TG1MoszYzQ9NRk1+DbYN7o4nzmHOnA7 -XDxLPTw+MD8mQB9BGkIYQxhEG0UgRidHMEg7SUhKV0tnTHhNi06gT7VQy1HjUvtUFFUuVkpXZliE -WaJaw1vkXQdeLF9SYHpho2LPY/xlKmZbZ41owWn3ay9saW2lbuNwI3Flcqpz8XU7dod31nknenx7 -030tfop/64FPgreEIoWShwaIf4n9i4CNCo6akDGRz5N0lSCW05iOmk+cGJ3on7+hnaOBpW2nYalb -q12taK95sZGzsLXVuAC6L7xivpjA0sMOxU3Hj8nUzBzOaNC3/9MI1VjXpdns3CneWeB64onkhuZy -6E7qG+vZ7YvvM/DS8mnz+fWE9wr4k/oW+5T9D/6G//8AAAAcADMAUABrAIcAoQC8ANYA8QEMASYB -QQFdAXkBlgGzAdEB8QIRAjICVQJ5Ap8CxgLvAxoDRwN3A6gD3QQTBEwEhwTEBQQFRgWKBdAGGQZk -BrAHAAdRB6UH/AhWCLMJFAl4CeEKTQq+CzMLrAwqDKwNMw29DksO3Q9yEAoQpRFDEeMShxMsE9UU -fxUrFdkWiRc6F+0YoBlVGgsawRt5HDIc7B2oHmUfJB/lIKghbSI0Iv4jyiSYJWgmOycPJ+YowCmb -KngrVyw3Lf8ZLfsu3y/EMKoxkDJ3M180SDUyNhw3CTf2OOU51jrIO708tD2tPqg/pUCmQahCrUO1 -RL5Fy0baR+tI/koTSytMRE1eTnpPmFC2UdZS91QZVTtWX1eEWKpZ0Vr5XCNdTl57X6lg2WIKYz5k -c2WrZuRoIGleap1r320jbmlvsXD6ckVzkHTddip3d3jFehJ7X3ysffh/RICRgd2DKoR4hceHF4hq -ib6LFYxujcuPK5CPkfeTY5TTlkeXwJk9mr6cRJ3On1yg7qKFpCClwKdkqQ2quqxsriKv3bGds2G1 -Kbb0uMO6lLxnvjvAEMHjw7XFhMdQyRfK28yazlTQC9G+027/1RvWxthw2hjbwd1p3xHgueJi5Azl -tedf6Qjqsexa7gHvqPFP8vT0mPY799/5g/sm/Mf+Zv//AAAAIwBCAGcAiQCrAM0A7wERATMBVgF6 -AZ8BxQHsAhYCQQJuAp4C0AMGAz4DewO7A/8ERgSSBOEFNAWKBeQGQQahBwUHbAfXCEcIuwk0CbMK -OArEC1cL8gyUDT8N8g6sD28QORELEeMSwhOmFJAVfxZzF2wYahlsGnMbgByRHacewR/gIQEiJSNL -JHIlmybEJ+4pGipIK3csqC3cLxEwSTGDMr8z/TU+NoA3xTkMOlc7ozzzPkU/m0DzQk5DrEUMRm5H -00k5SqFM/wpNc07dUEdRsVMbVIRV7ldYWMJaLVuZXQZedF/kYVVix2Q6Za9nJWidahVrj20KboZw -BHGEcwR0h3YLd5B5F3qffCl9tH9AgM2CXIPrhXuHDYifijKLxY1YjuyQf5ITk6aVOZbMmF+Z8puE -nRaeqKA5ocijVqTipmyn86l3qvisdq3xr2mw3rJSs8K1MbafuAu5drrgvEq9sr8bwIPB6sNSxLnG -H8eGyOzKUcu2zRvOf8/i0UPSotP+1VfWq9f62UHagdu53OneDN8n4DrhPuI+4y/kHOT95dnmq+d6 -6D7pAum56nDrIOvL7HftGO257lju8e+K8CDwsfFD8dPyXf/y6PNz8/j0ffUB9YT2BPaF9wX3iPgK -+I35DfmJ+gb6g/r8+3X77fxm/Nr9Tv3C/jb+qP8a/43//wAAZGVzYwAAAAAAAAAKQ29sb3IgTENE -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAABQAAAAxlblVTAAAAEgAAAExmckZSAAAA -EgAAAF5kZURFAAAAEAAAAHBlc0VTAAAAEgAAAIBpdElUAAAAFAAAAJIAQwBvAGwAbwByACAATABD -AEQAyQCTYwByAGEAbgAgAEwAQwBEAEYAYQByAGIALQBMAEMARABMAEMARAAgAGMAbwBsAG8AcgBM -AEMARAAgAGMAbwBsAG8AcgBpAABtbW9kAAAAAAAABhAAAJxhAAAAAMBd/wAAAAAAAAAAAAAAAAAA -AAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTAAACwAAAAAGwARAAACMYSPqcvt -D6Oc1IR6V54bhb+B1nGB3UimQKkqnRl6zKvJ9YqjrO6GH5pbnSrEovH4KAAAOw== -} -image create photo buttonimagetext -data $textdata - -set toggledata { -R0lGODlhFAATAPMAAP///wAAAAEBAfz8/N3d3YeHh729vRISEg0NDQ4ODgAAAAAAAAAAAAAAAAAA -AAAAACH5BAAAAAAAIf8LSUNDUkdCRzEwMTL/AAAPhGFwcGwCAAAAbW50clJHQiBYWVogB9oACQAB -AA8AEwAfYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBs2S6B -sfMyXumJcebqTFAPNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOclhZWgAAASwAAAAU -Z1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAAAXwAAAAsclRSQwAAAagA -AAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAYSbmRpbgAAB+wAAAY+ZGVz/2MA -AA4sAAAAZGRzY20AAA6QAAAApm1tb2QAAA84AAAAKGNwcnQAAA9gAAAAJFhZWiAAAAAAAABhCgAA -OFEAAAdYWFlaIAAAAAAAAHBLAACwcwAAIo9YWVogAAAAAAAAJYEAABdXAACpPlhZWiAAAAAAAADz -UgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L///2jAAAD3AAAwGxjdXJ2 -AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAAB2Y2d0AAAAAAAAAAAA -AwEAAAIAAAAdAGUA0gF8AkoDHgQIBSMGXP8HsgkkCrMMXQ4OD9MRnhNlFSwW7RieGkQb3x1rHu4g -YyHOIzEkiSXfJzEofSnIKw4sUy2TLtAwCTE/Mm0zlzS8Nd029jgNOR06KTszPDc9Oj46PzdAM0Eu -QilDIkQaRRRGDEcER/5I90nvSuhL4UzcTdZO0U/NUMpRyFLHU8dUx1XIVspXzFjPWdNa11vdXOJd -6V7wX/hhAGIJYxNkHmUqZjZnQmhPaVtqaGt2bIRtkm6fb61wunHIctVz4nTvdfx3B3gSeRx6J3sw -fDd9P35Ff0qAT4FSglWDVoRXhVeGVodUiFKJUIpNi0qMR41DjkCPPZA7kTiSN5M2lDWVNZb/Npc3 -mDmZO5o+m0KcRZ1JnkyfUKBUoViiXKNfpGKlZqZpp2yob6lxqnSrdax3rXiuea95sHmxeLJ2s3S0 -cbVutmm3Y7hduVa6TbtDvDm9Lb4fvxDAAMDtwdnCw8OqxI/FccZRxy/ICsjkybzKkMtkzDXNBc3T -zp/PatAz0PzRwtKH00rUDdTO1YzWStcI18TYftk42fLaqtti3Brc0t2K3kLe+d+x4GjhIOHY4o/j -R+P/5LblbeYl5tznlehP6Qrpx+qI60zsFOzi7bfuku918F/xUfJM80/0W/Vt9of3p/jN+fj7I/xU -/Yr+xP//AAAAHABiAMoBZgIoAucDzgTN/wX2BzUIlAoFC5kNMQ7XEIcSLxPcFX0XFRikGicbmR0E -Hl0fsiD/IkcjhSTBJfsnLiheKY0quCvgLQMuIi87ME4xXTJkM2g0ZjVgNlY3Rzg2OR86CDrvO9M8 -tz2aPnw/XkA/QSFCAULiQ8NEpEWGRmlHTUgwSRZJ/ErkS81Mt02jTpJPgFBwUWFSU1NFVDhVK1Ye -VxBYA1j2Weda2VvLXL1drl6gX5BggWFyYmNjVGRGZThmK2cgaBRpCmoCavpr9Gzubepu5m/jcOFx -33Ldc9t02XXWdtN3z3jMech6wnu8fLZ9rn6nf5+AloGNgoODeoRvhWWGXIdTiEmJQYo5i/8xjCqN -JY4fjxqQFZERkg6TC5QIlQWWApb/l/2Y+pn3mvSb8Jzsneie45/foNqh1KLOo8ikw6W+prmntaix -qa+qrauurK+tsq63r7yww7HLstSz3bTmtfC2+LgBuQm6D7sUvBi9Gr4avxjAFcEQwgnDAcP2xOvF -3cbPx7/IrcmayoXLcMxYzUDOJs8Lz+/Q0tGz0pPTctRR1S/WDdbr18nYp9mF2mXbRtwp3Q7d9d7f -38zgvOGv4qXjnuSa5Zjmmeeb6J/ppOqq67Hsue3B7srv1PDe8ery9/QE9RT2Jfc3+Er5YPp3+478 -pv3A/t3//wAAABYATgCiARIBqQJNAvj/A8cErQWoBrkH3gkXClgLoQzxDkMPjBDWEhYTThR6FZ4W -uBfKGNYZ2hraG9Yczh3DHrYfqCCXIYQibyNXJDwlHSX7JtQnqSh5KUYqDirRK5EsTi0HLbsuby8g -L80weTElMcwydDMbM8A0ZTUKNa42Uzb2N5o4PjjhOYQ6KDrLO288Ejy1PVg9+j6dP0A/40CGQSlB -zUJxQxZDvERjRQtFtEZfRwpHt0hlSRRJw0pzSyVL1kyJTTxN8E6kT1lQDlDEUXtSMlLpU6FUWlUS -VcxWhVc/V/lYs1ltWiha4ludXFhdE13OXopfRmACYL5he2I5YvdjtWR1ZTVl92a5Z31o/0JpCGnP -aphrYmwtbPhtxW6Tb2FwMHD/cc9yoHNxdEJ1FXXndrp3jnhieTd6DHrhe7h8j31lfjx/FH/sgMWB -nYJ3g1CEKoUEhd6GuYeViHGJTYoqiwiL5ozEjaOOg49kkEaRKJILkvCT1ZS8laOWjJd2mGCZTJo6 -myicF50Infue8J/noOGh3aLco9+k5KXspvioB6kYqiyrQ6xbrXauk6+xsNKx87MWtDq1X7aHt6+4 -2boEuzG8X72QvsO/+sE1wnXDvMUQxm7H2sleyvTMp8580HHSjNTM10DZ2Nyl35jis+X36Wfs8vB2 -9CP39Pvw//8AAG5kaW4AAAAAAAAGNv8AAJbwAABY6AAAUxgAAIpeAAAnlwAAFqgAAFANAABUOQAC -Qo8AAfCjAAFrhQADAQAAAgAAABsAMABKAGUAfgCXALAAyQDiAPsBFAEtAUYBYQF7AZYBsQHOAesC -CQIoAkgCaQKMArAC1gL9AyYDUQN+A6wD3QQQBEUEfAS2BPEFLgVtBa4F8QY1BnwGxAcOB1sHqQf6 -CE0Iowj8CVgJtgoYCn4K5gtTC8MMNgytDScNpA4lDqgPLg+2EEEQzxFeEfAShBMZE7EUSxTnFYQW -IxbEF2YYChivGVUZ/BqlG1Ab+xypHVceBx64H2sgHiDUIYoiQiL7I7UkcSUtJesmqif/aigsKO8p -tCp6K0EsCizULaAubi89MA4w4TG1MoszYzQ9NRk1+DbYN7o4nzmHOnA7XDxLPTw+MD8mQB9BGkIY -QxhEG0UgRidHMEg7SUhKV0tnTHhNi06gT7VQy1HjUvtUFFUuVkpXZliEWaJaw1vkXQdeLF9SYHph -o2LPY/xlKmZbZ41owWn3ay9saW2lbuNwI3Flcqpz8XU7dod31nknenx7030tfop/64FPgreEIoWS -hwaIf4n9i4CNCo6akDGRz5N0lSCW05iOmk+cGJ3on7+hnaOBpW2nYalbq12taK95sZGzsLXVuAC6 -L7xivpjA0sMOxU3Hj8nUzBzOaNC3/9MI1VjXpdns3CneWeB64onkhuZy6E7qG+vZ7YvvM/DS8mnz -+fWE9wr4k/oW+5T9D/6G//8AAAAcADMAUABrAIcAoQC8ANYA8QEMASYBQQFdAXkBlgGzAdEB8QIR -AjICVQJ5Ap8CxgLvAxoDRwN3A6gD3QQTBEwEhwTEBQQFRgWKBdAGGQZkBrAHAAdRB6UH/AhWCLMJ -FAl4CeEKTQq+CzMLrAwqDKwNMw29DksO3Q9yEAoQpRFDEeMShxMsE9UUfxUrFdkWiRc6F+0YoBlV -GgsawRt5HDIc7B2oHmUfJB/lIKghbSI0Iv4jyiSYJWgmOycPJ+YowCmbKngrVyw3Lf8ZLfsu3y/E -MKoxkDJ3M180SDUyNhw3CTf2OOU51jrIO708tD2tPqg/pUCmQahCrUO1RL5Fy0baR+tI/koTSytM -RE1eTnpPmFC2UdZS91QZVTtWX1eEWKpZ0Vr5XCNdTl57X6lg2WIKYz5kc2WrZuRoIGleap1r320j -bmlvsXD6ckVzkHTddip3d3jFehJ7X3ysffh/RICRgd2DKoR4hceHF4hqib6LFYxujcuPK5CPkfeT -Y5TTlkeXwJk9mr6cRJ3On1yg7qKFpCClwKdkqQ2quqxsriKv3bGds2G1Kbb0uMO6lLxnvjvAEMHj -w7XFhMdQyRfK28yazlTQC9G+027/1RvWxthw2hjbwd1p3xHgueJi5Azltedf6Qjqsexa7gHvqPFP -8vT0mPY799/5g/sm/Mf+Zv//AAAAIwBCAGcAiQCrAM0A7wERATMBVgF6AZ8BxQHsAhYCQQJuAp4C -0AMGAz4DewO7A/8ERgSSBOEFNAWKBeQGQQahBwUHbAfXCEcIuwk0CbMKOArEC1cL8gyUDT8N8g6s -D28QORELEeMSwhOmFJAVfxZzF2wYahlsGnMbgByRHacewR/gIQEiJSNLJHIlmybEJ+4pGipIK3cs -qC3cLxEwSTGDMr8z/TU+NoA3xTkMOlc7ozzzPkU/m0DzQk5DrEUMRm5H00k5SqFM/wpNc07dUEdR -sVMbVIRV7ldYWMJaLVuZXQZedF/kYVVix2Q6Za9nJWidahVrj20KboZwBHGEcwR0h3YLd5B5F3qf -fCl9tH9AgM2CXIPrhXuHDYifijKLxY1YjuyQf5ITk6aVOZbMmF+Z8puEnRaeqKA5ocijVqTipmyn -86l3qvisdq3xr2mw3rJSs8K1MbafuAu5drrgvEq9sr8bwIPB6sNSxLnGH8eGyOzKUcu2zRvOf8/i -0UPSotP+1VfWq9f62UHagdu53OneDN8n4DrhPuI+4y/kHOT95dnmq+d66D7pAum56nDrIOvL7Hft -GO257lju8e+K8CDwsfFD8dPyXf/y6PNz8/j0ffUB9YT2BPaF9wX3iPgK+I35DfmJ+gb6g/r8+3X7 -7fxm/Nr9Tv3C/jb+qP8a/43//wAAZGVzYwAAAAAAAAAKQ29sb3IgTENEAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAG1sdWMAAAAAAAAABQAAAAxlblVTAAAAEgAAAExmckZSAAAAEgAAAF5kZURFAAAAEAAA -AHBlc0VTAAAAEgAAAIBpdElUAAAAFAAAAJIAQwBvAGwAbwByACAATABDAEQAyQCTYwByAGEAbgAg -AEwAQwBEAEYAYQByAGIALQBMAEMARABMAEMARAAgAGMAbwBsAG8AcgBMAEMARAAgAGMAbwBsAG8A -cgBpAABtbW9kAAAAAAAABhAAAJxhAAAAAMBd/wAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5 -cmlnaHQgQXBwbGUsIEluYy4sIDIwMTAAACwAAAAAFAATAAAEWhDISau92IbNuxeUxw0kSRRBOBRE -6Q7GYaRTAMvvbQy0ZOuu2I6nIgmNOFIP8EMajqVl04hIDKPFkiGBuCqzOui3pk2Kpc5gEi0u79Cs -nFMqmg5O9LoIlOlLIgA7 -} -image create photo buttonimagetoggle -data $toggledata - -set vradiodata { -R0lGODlhEgATAPABAP///wAAACH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABIAEwAAAiyEj6kW7b7YexEES2+801aefRik -LSApKqU6QZuZJqsMv2qMzHltts3n01UWBQA7 -} -image create photo buttonimagevradio -data $vradiodata - -set vsliderdata { -R0lGODlhFQAXAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABUAFwAAAjOMj6kJ7Q/Wgc5EGe7SG3P1IaHo -YVnpUY+prmk7TqgUnzPI3jid8zr5kwUtLBXx1TIpEwUAOw== -} -image create photo buttonimagevslider -data $vsliderdata - -set vumeterdata { -R0lGODlhHQAQAKIAAAAAAEBAQOjoKPwoKPysRP///wAAAAAAACH5BAQAAAAAIf/8SUNDUkdCRzEw -MTIAAA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3 -dHB0AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAA -AA52Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAA -DzgAAAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAi -j1hZWiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe -///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEB -zQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMG -XAeyCSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJ -MT8ybTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN -1k7RT81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2po -a3ZshG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SI -UolQik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+k -YqVmpmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAA -wO3B2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjX -xNh+2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU -7OLtt+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTN -BfYHNQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+At -Ay4iLzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdN -SDBJFkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJi -Y2NUZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2u -fqd/n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6 -mfea9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa1 -8Lb4uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS -0bPSk9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrr -sey57cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgD -xwStBagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJv -I1ckPCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3 -mjg+OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnD -SnNLJUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5e -il9GYAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0 -QnUVded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvm -jMSNo46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym -+KgHqRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfa -yV7K9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAA -lvAAAFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoA -ZQB+AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPd -BBAERQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0N -Jw2kDiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4H -HrgfayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNj -ND01GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBP -tVDLUeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43Aj -cWVyqnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6a -T5wYneifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjV -WNel2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQ -AGsAhwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBME -TASHBMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7d -D3IQChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi -/iPKJJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7 -vTy0Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnR -WvlcI11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9 -+H9EgJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXA -p2SpDaq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG -2HDaGNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIA -ZwCJAKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZB -BqEHBQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwa -cxuAHJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6Vzuj -PPM+RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLH -ZDplr2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO -7JB/khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2 -uuC8Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfg -OuE+4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz -+PR99QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNj -AAAAAAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVu -VVMAAAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAA -kgBDAG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwA -QwBEACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAA -wF3/AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAA -LAAAAAAdABAAAANeWAXR/gEoJeeyy43NWwUgSGEZBFVjijEN10UWGoqUeZJTGGvu4OEXFcv2w31k -PFeRJGnmiA7U6vNsEK7Y4swphC5XuWoAm4UBdWKidCodCt7wbyxc866NYnjcDAwmAAA7 -} -image create photo buttonimagevumeter -data $vumeterdata - -pdtk_post "Finished loading buttonbar-plugin.tcl\n" - - diff --git a/scripts/guiplugins/buttonbar/images/bng.gif b/scripts/guiplugins/buttonbar/images/bng.gif deleted file mode 100644 index c1d880c471358436bfe8103d6c1d0470e3dcd59c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3853 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 diff --git a/scripts/guiplugins/buttonbar/images/floatatom.gif b/scripts/guiplugins/buttonbar/images/floatatom.gif deleted file mode 100644 index d52d608d8ecda7d9f3384f45ad537c8f9c69fd9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4321 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 L6c*vIK;ypvnwOU1 diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.bng.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.bng.gif deleted file mode 100644 index 9670581c682b4eb9db16c317dc2a4b2c5dac0287..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4182 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 diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.hradio.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.hradio.gif deleted file mode 100644 index 4654ba91cb80ac0a2105e60445f957874122ab93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4082 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 D8}3al diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.hslider.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.hslider.gif deleted file mode 100644 index f8760fea22c35bb91151fe482d7469e3c5261fa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4100 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 UyU$lA6ZJCZ&YFq|qJi4K0OKxJO8@`> diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.msg.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.msg.gif deleted file mode 100644 index a7e4fc32e5a39d56e01705d0d06d20abdffef497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4122 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 diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.obj.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.obj.gif deleted file mode 100644 index 8be904808fdea926141de891b9ec697a88ba8899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4094 zcmb_fc{o*V*T2ue;h1MpoX9+rd3Fq$=OIEI$2`wdAtWSI2_=LKktCudLS(E+ks(7G z%#vB>-AB*!KG%DF?{|IweCxXQ-oLf(-@5O;_qwmW_D@GwTTb4I8PI`DK(yG{SOS3n zfs?yPBr$N3aG;CDn(1ihNQg^F0zi}C<nQkdhemvSg9D*B#^$Uo1~m@I0SwRp2Egfr z3-VVtF)<)!|99IOg}9InixB7f@0|ZNN*xF-2mnkNVlcY>!D>Y8{0CbQaagc_FvM{u zVw}5^3xuN~EF5TIhJ|nigsI*B;3gt={)2mnI27kb%>4)eDZMYj#lsf>)Dq;VxZs0u z&^U2n7ndNM4}>!ye9y<n4_bgm4#NC6|3E02<~)Q?5nl{+h0F;JfSf5bkIg?Ze|-QR z1_8j8{!ff24geNw04i1fiTyM?dRZ{$p&(Z&r~r_`C^Y~enIaH=@<MZF0dSZ}Ane~I z5DrTKKuiG8=8X#p3_apPY}fz*|Cj&gq5sN2K-D2u_yoWcz<pTo1v4BqQM_J%@Tk zehOVrX-`c}Gfa1f0na4Nyv%xsO_P24gcrvO26u9hTjEqQ&orL|{{?{_A!=cBk!;a7 z;^Y#ll0H&5Pq#=<%52F|$)8XVP?S=VRaQ_@P?c4aQWw<_z;bD_X)$V3>L7J~pV`)3 z)%&JDV=!SjYV_84z@*o-$E@4D+oIdD$Ew%5-)89Su<ZxC$#b*z-yPN*cbtGTIgY`F z125<*<EG(m>|y8W?iK2t;FINB=vU+aG@vK&eb8+1YREwtDx5yzcqCtxc(m*V)r(p& zda=fFW|u7EtrDygtuI?8SzIwoHc2r|)w`;bhP|eiPEgKJ%#_QL&6c??eM34&=B8|} ze4b*y$}NrCS_Qgy3<^z(EQ)RJo-1)IbuM$g=TYum;a3?@6?{LWI;<xAK}2oD!-%@@ zN1^q>j{_Qf8$F)jn(Ujco*F*Gw#YvhY2|!D+XmW}+s9sZbX0YwcLlsM?H21n_sqX; z>CNbK>6acL85kZc9P)f4_2%I1%Xdk`dLvXLgYU17>U|*l(E0J=nB3ULc-1H83ATxM zlPOagQ@hi3pWSCLGaqNu=XB->^NnA87I+pWzTWs|{2l$h`^S|<gC)kL+2toIS*syy zj_aly20x8A?SA=eC2g1Q4D9agb01h7ru^<a`U)H;0B6t(bA|K6zaj>a10-80X|n5R z5{f)33F;5DN%Ue26HFIam{?2M_}KGKAUW(gA7KbwI^2n;+IjZ*MEM;A(gd4?K8qkk zxx^I3jU?<PU8LMkyGoyzv69u1lac3CAX8XX99DXwoUanC>Y%2oeo_ObF^lccEY-TK z?V)3MMqHO!_dsu6f5700VTn<eajc2Isgs$xxt4{TrH~beHLVT8X6x)%+cCSobI<J` zI21W%oR4z~bjIN<T(t3Wu0n1YcSaAiC){(-Ytwth=ZEit-<<zUz;xhb(5K+BkkQcL zu%Yn&h@QxoQ7zGp7am+Jk134JiA%c_A0L@O@JqyBK9^*EMK@VJMLt#Hs$d$=HO_Rl z45m!FEb45E>tr`ba^N|Hn}@l3dE5D$x7Kbi6@0rhS2$fXUOaMlu%xH7qpbB_b9qBW zU1e=m&HV?}wKb0(JgIGY*iqN_XrzAf@j}B|<4zN-nfxiuGsYIy=WMNPFId}{+G$^s zcfdNfIv2YpUk!D?=&5;~-<#Oy-)}RZHpn|fF|_*T-P`(i*~5V&rtif@sYVw+y#81| zmN<_8q&*=pNj>>%YI?f=bIVNaY}wqM`TQ@r3wd8}eJlK4`lD*GZmD^>eWiDGWNm8w z$Hw+1@)zS4&$jH2-tPImu>ETX_YT{BPZD<k0Wbq2a2G}otArcEcM#pk8j=dqX4Dip z3)+UFm~x#OOLLWWl%AQvh%u7s4s#PrFYD;Bakg>x(c^<BIyf3RD=;@tCUE(2Tc1+m zIl;5fJHl7VA0ePENG<qQC{x%-1SRrJ)K3f}HXt4$!6VTx87##v)pi;$jh22OV=l8L zn=hv#HzS{*z^~A!=%+-l)Szsmyr)v2s-`-pc3E9OeLy1s%ZzQ&#A#7zJ=S*ALF+s@ zgV$x$?a&L-=g}WENH$b5Tr(;)K5Ig4(rFrHCTaHFyx79llHRi4D$!cide^4@tdA|f z?W|qFIU9Qh`$2~kNA2_Q^Q}%%&hpNLZCry(2wob$?b_^i!Ck|H%wxzi*UQ;k#Cyl5 z%QxH4$zR-`5HJ*26ciAw5yBMmHS}rNwQ%PM*+|OBnW(1d^b7clN->NvOR-&X1((9& zO%enXk%?26o0D!_2}m|f5lkgZUAWqrR&p&q-6cailRt|hYc2cz^_CkYIahCn=AO?p z$XB?<f19O%tYH7nTH)8Cnc~U26D8B7^JPo-b}CSntX0DIvDJ1pp%1ca>mI(V`&rNY zSfRnOG3iNd)7VqwGl>?*=NYXXFZSA{UxswFbkV-@?H+&a(7V}RJ{bKb;N8`c{ts$n zA1BJDb7$+nY=3uK+E@$S<lf%gUpx90@I7jQ#MVG613=Ci05;zMFlPlI#Q^}mn*cCF z{nUgC01J5l*GLDjwGsgHN(6tm5q2OB^Z*`Q1UJD$@EXj5eHbH51f~shf<?h{V0ExT z*dm-9`o^4rd%&;4AHqlBhX`JTDdHlc8Zn8aMQS0Vk&Vc85>XN#k_RN~q|&6(q@5^g zlpU%PwMS-1Rzh|_ZbROPW<_5_FHo3MbWqAr)==?Ll~VIiSI~&kG}5Zm4$(Q#t<fhi z9Al_s)Mxz4l)%i*+{xm~ie{}nW_j#@t&H7-egAmn32P1%M-!(Ph66KlGKGtv!L`rb za4LXDglCbriqDf@n15B^v0$W-x-eRJM5IX6S4>%)T6{*LK{8becUoEcnDma!N7<)x zh4M)X{)*?6^p%xV#8r9KIMvxSSh1{{>{=LYJ{|Ehin?d?to7Xt!VOc6ii{gf`b_7{ z_AMAKMXmI#U2PK1-nH$po3}?f2s@gck8~<=9>N_!?aj_D&Ar`Y+e^&b!>7!5&YwE~ zA6ON%9-<hU6gC>c7a1Kjd_m-5O3Y%M@uepTT!~ppq*r2+4^v~)(AV-aBr=DxgKuDR zhI6mw8{cLv_*VF$xS%Ai%%|L`((b-}jeBiGU1t5mhWAb2saT71Yi`>+LI-u1VR!oL zk^bX@?r)w9lfAe3P&T$SAux6JbL4FD{N;tfZ$>}Z7sr-USEbh8ZFv0L{gtqd-pSr$ z-oJiG^ZW9jHUgx83Gf0*pcu4(QLql9gz>`EVfL^HsQ&e^x3G0M9b6J_36Fpm!e7Bx z5o`z@L>Qt1sy+kK0GWjBBtepBlcbQmAw5RwLi!K|P^PFd)B%|lSv@%;c{uqD+7R7J zAw^M5DM(pOB}Mg|TAzB7CXg0QTSkYao1;%+5N3GK7{esQG{&6FqQJ7uT6D~kje@P6 zJ>t0J@ud?L9C*%CoL?{%Cw;h1bN%M-J(bJj&a22rpy6BKZxgsB7%pTjEGu$MWM6bz ztW&&7B11Av%JK9WX-S#mvgEQ`a$n>}6?zn(D?L`OQK?WZQ@f{Lp;3cv&}`M}(;nAZ zJo8(RL0`x~)6l^v(m2<o(R9>o+v1p|qLrg{f=$)gx3;_Ixb2M`q8uyFk2#}pDlS3z z`>ylu7!L=}0<UQwZeI_-I{&>ut)PtH$xy+tu<))(`Y6Zf>I*wDnz5O2lktKH;fdWz zELS{}TT_{?`lj`z3uUBdZfE1J59jFIY|B&5Z@sNqFj#o5XytBVDW<Hg+@+GL>S?w2 z1FqW1x`KMA27$)SrjDoATijX|+i2V8IvTnXx=jeLS$aS9=MP%Ep?KRm?E9X5^wmfI zan?`mlOEG_pPOf$=PAE5e0BUz_M>jeb_KRtv2MJvxtY7AxIMiazt4Nn{oD0u2XF%o z;0BVxeJ}u4VRSGlm=!D%RtW2YEy0=L>TqB99rzmrDMAGig?NS_AhnTM$QhE;P{rp- z)k%v{Bq(px2QnS9XXK~J>(O%PP6}&^4a)0Os#F`))ii#z@^lnXm0vR4W6WTRVGd&P zX7xPg%@)KSdpz?*IY&F^=aVol9&Y_pfjqZ(JNZ@w*aXiAg$Y-POo-8m>q^8+zK}YU zR*{L7?UJWduvRQl`l+I&dQ0u62EhnhtwpKrt23-CuUBk<HViVFG|@4wGiSF*uw1dW zv3Y4LVwY!6>JaQW?_}xR?V^CMb>nd_@MQ8z_d)w!_D2RJ1R;ZyLMg&BB3L2|qXjNJ zj!}ypxO6UlF)=EM>PlgXWNKHM&9$YBm@J0udpG2B`g0xgHf|*pFyE;tk}vKlu_~Rt z=Ux7@GOTK+I<#iJ*5l#SBeVLK4HAuoO%%<cPd~TlJ%99qy)C}|M~7Kw^DEBo%RNiI zrhSbA?1M2wvv0BQ?hgNcZ#{bd!`_(sc-*JviSJXC(|n&5W>jWX=EUZY&mVpnTe$x< z@|((c`1j@?{)?E!zNN5b*5&3E8^X%^YRVdBt!^E=KD=SS@$F~O&z;Q+zhJ)-wvbzi z+a%jpcF;R%yHvZ$d!&2udk6a=`^yKe2jhoEhcAE2{H`Fd5z>e|;E#AZ5*TQ#pSNEi z#sI5%<o^Gie7r*-fp%mh(3ukNYiSN$>7m2GHBj5^FYMrg*VKYAEp+(fgS7tU#Cinl z9;rtto&~VL4|s!OKM)8ozyNYJq1J_iJSX7$?}#?!1wy~bB7ZUd@GuaMm`u$5pAip8 zIv*)UXc<5X-NbDtB5JcI%I^QPV0<{FCIP_u`9}nLxVZ;o)FHu)7slxN;zWfplHwBL zkf<dxhzcISMXsk;k}d~a@}iAP<nG%=4+(Iv+S=uXGeu@pZ@pR)j0yR27pDxre|lHm JGZ_vP{{<afPg?*0 diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.text.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.text.gif deleted file mode 100644 index f5eb519037c255259fe397d3faa60a5df7701f89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4093 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 V3oBPHaOXPY33uFE-xUNv`CqkST+ILg diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.vradio.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.vradio.gif deleted file mode 100644 index 17f43472c340cd84d3eb5712cf1c91c130b354c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4087 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 GQ2G~dxJ^C) diff --git a/scripts/guiplugins/buttonbar/images/hi-bit/old.vslider.gif b/scripts/guiplugins/buttonbar/images/hi-bit/old.vslider.gif deleted file mode 100644 index a194f87822648ce120b91f66dd05196bb089f048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4102 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 WlAliD_fvFoeNxq$h(bmXQ2Q5yj#PgD diff --git a/scripts/guiplugins/buttonbar/images/hradio.gif b/scripts/guiplugins/buttonbar/images/hradio.gif deleted file mode 100644 index c0d8aa8734f16d163d3633ce2fce6159b09f9257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3841 zcmb_fXHZm2x9v#`3^_+(1j!jBXNDj-2Z<7foO2YofCz{rMMOyg5+sNS0wRKdAW;EP zkRU-6$w4yC8@cy;w_d#;@6X#+eR}O(yLWfh?sL{znpzstG7i*$3T#0D4u=B(Ts(rq z@e{a+Bi6!Tj5Sp?MMXr#aL(>N03g=@AW(G1208&iCV)?Jb`Es%#^Ve;e(de->kI(7 zG#>Lf`2_^w@ijcYWO>yJji2%6fC50;2w%tY-<Y2c08aw}U{C)y#u*0yy#)Z3ivPxT zjR6E-0zx+u=prt5UJgQ{3IJjjhuh`C*USRoEE9)2d4$8Al>h*n2B5>sDL5eHJQu$b zG6cZ?<%c-A;?Mn$!SEYG@%RG3;=m{*3aSlbg%ct;2yBqgh%TWTNNmZ-$j2xPsIjyH zbn6TSOlr(?7d%-v&`uYJIYcidbIx&#@<j9Y@skOd2xbet7a<Z=67v?ncezbsMsi=8 zROW&#ubjBNl!C0Htdf+nxQdV}FNR%>Nu5T6L=&$0`^tgVruGk=dEIHf3H=WSLx%lE zea5{ey{5fpedhfZgO(##$E-eC&)6*3uGnqaA36X>A}4BRRxF>3q^qi%fxESbn`eku zf_Iirp>K^}tAAg>$H0Z4&EV5eWEfRAO9XeMNR(8x(slJ1?O202<G;+}%@ZsVEpC`6 zncg%`HcZh=)xM>fhPkbrj#J2x%aqQN%9gw%aaSTo@}5+#%ze2$#RsYn)$_FqbPElO zOp7fa*_7CqI+nRSb}#p;@U8T(3VIS;9a<As8(tUwG`v3SSx7_BbN@!4CifRk&9*J( zt$HspZ8EO}+u2@IbbyZa&dE1jT~*!bJ^pWvdWHK?eM|4!`ZETc2PK9OLu12*BOdR? z-=BVXGnzD}Jx)44{PEU=_9wzm-Jh>dN>A=gRef=sW||(INtsohJ({ck>Nby_|GbdC zsJVz+YWn8A%(*=M{q7Hg71T=a&zq~dYcy*M>n}F4HiNh9w~cmmcMbNee|hgG9h4sq z9UY!<oSL4c{O&$~DOhm85%fb`pghp;uwnQRVjn3%cn5_bzE3Jj_K6~iN|<_@HkzK6 zp_GZ6`Thkst1a6zG>%=9Bk@uv=LxqEj~#CsUo-z#L6{J`u$+j#sI8c@xZ7nHiEEPP zQkv3|GHkMhvYT>a@-Gzf6r+^vl$BI2szOv3FkNb;>NhmpHTABDXwhk%YA@*w>Auh_ z(a$o7HS{xbFg7t!H<dQyH)pk=u!LFeU;S=1X+2=`%C^?7$Ufs*oI`-4lar~l23FdI z-xcjf<BsxxdK`Q1d2M+A^jY>@^qcpe3z!M~5;Pe+5i%A!5;hp#7x5;tEvhNH_Ii0t zVQfxZ+F$YU5eYcoMC=WlB$Jz3$to!_siL>|(l~Fkr88yFW>RL6WfR{ayo<<z=HTv~ z<sRQZ$lH6c^>8i!N5Nv@T+vkV_@m*HzS6F;_Qx&djTQBkbyYP_YOCvNp4GmnYkS&N zKk#h4VdnXA<5tsQGo*#6mHZ`58^bH6cBa=19kiVkZ-}}eUHjduJu`1ddSCa|yvyrP z9Pk^o98w<U8X+Fpd_Vf3VKjRzVBF}V@C50^>Zf;~%O?}3uwOK$d1uIGe$CF!4SsE# zuUjZvELh6>mb-la`-2~aE2TfHR_oVV);l-)H^;YTw}0*&?7@H0>~kJS9cmw4I}Sa$ zefs#U<M+&;8-N3JKp#AUP(do8deB2yFT4g(LC}JnC89@J5*L$flVQkjQA|+LQR~x0 z&=$}&)Aut>FitT|F;B1zU+7|OVyi&kyO_Z4%VBXzp7R3d3D-DxB~Li71|J#U2mVX} zeL<w)OCeujwD6EfxG1OSpjePNvv|j4tOQD;R?<XrUn);pQF>k`L6%2$K+ad5O1@FS zQsG!JUrAYMQTc`nugZ|BKZXv|rskwhto~fXUK6GH;tE!aMypFZP=`}zLN{4YUT;gk z)ZnTinPIn4q_LRsib=7ll^K=Upn0N&lEsl_!&Pr99;*fGd>cz!YTIGE6nl+p&};1u zk&ZHsxC5s~=U}V^_Q0jZHQG(pozQ*6BiGZ>OVI1kyT>Qn*TGN359dD;P!#ANq#8^c z{5_;K^mdqIxKsp5#C&9PRC+Y_x_k^x%vx+uT>f97@rDU}iSWeP8!bt9Z~7<erSPQ^ zrY_&=PAj<`pYEKYk;#)qoVAtx@lM;_lAK%jLUOO&*UgiC!1ItkpD_QVV5{(Z(R}gD zqv?{l(xtMs$A=ZjN`@+dCzxvMnvmM;y85T1^}7vp&t)6!o04ACHBYv}Uy8QbzshLu zdVSm}@g}&dt%u^RPw&(_yZ*hw^5LlW{-d|X2R|uKex5Fy%Ux*rcCg~QwzCzo$8oTC zvUSdkKIatphZ+bZ0m#_`!14zGCJX?i*a5(O4*<Ff01Qb1FqHvN)pP*aDghABMDQOP zVFn^V8(_h8a1T5M@4x~$fzUt%AsP?|NF*c&QV$u1tU`(K-<T^<cjztXQ|JWr48{dB zf?bDI!)D+VaCLYTya~RI5JGq(Y7yH65(H5M-AFQ|HL?<UOsGd#LU>AKNz{a5KwU>I z6Pplskw}u%kaCljl5vt%kPDGFQK(RiP})&$Q6*3_QrFYy(0r#&pyQzHrgvdLG1M`d zF`hD&F&i?UuvA{KU`4Vvvw5Of(c>3W*m0`tCmfBJ{5b_VSGlUVJ$M9oHhG`(MewT# zpajMRi-dfH6-3BH=0zLDQpKGvD@ZU(97=wcYLzaONs{%Gvys<PkXIB@;!<W)VNzwl zFsL!BqcylSMXtzcUD3ACan%jeOVuwjXfzx!S~NZ}r7;sS*S2u6Ot|{Us>^!G7HKD7 zZ+tDnp~P{-=@d_I)~;!8o$d#o!d~v)Wj>339RApVs=)1FxsasLiE!?SsK~Ks!Rsk8 zt8oT@y+~kB%t|7-8IydL8k>f?otGh+Ig%Z87o9VfdppnIAw&L;!q>(5C2?im<qnnB zPi$-4>cZ<Y8=f|PYzD2uZI11^9izA|vL3zO^mpTfEW>W^UyKocwER>yxi-x^d-ZF? zLh{m$<$xdhKbco2*Hbsew?=o|caMH09H0)fkLgbCoRR;&@i&bCabO5MK@uniZD0ay zLr5T85EY0mBpl!W2FM4<Hk1-71~r3*LkppAp_?!!m?kU~R)Oz6HCz{-1n)+`5gLdT z#Crlp0%wA!NPsj#mLX3G%?TTbXo$jy=23d6c4BejY7#z@YEp61S7bV5GvomjD2g&l z4CNwK614#JN17N~e%eX8WO`Zpb%r8FGbUoDPUdhHF_yIp6|7jcOKjiJ6&JnPFSGyV z=)aW9>Bc3;jU(q?=IP*lz!%1EAs{8lD0m_?C)_PkC7K}?DsF%IiiDUXixiR6zVtVl z3E4imSMtvlY7{G!%9J0gRH)Wq8r9m>2Q;QMSFilmrq<!tRnxQ6k1)tJY%-cKJ}_l8 zlQXxsNU*HB`oZeRhQn6hF4Dg8+N2}ONzpkF`^06*4ef5{k?%R@&EezjTkm%qpdOeJ zG!w!X8XDFUK^18qRULg8qZXSPHxtj75SG}RM1RvGxjmKkmQUJ1I)6rb=0Ud8ov|Fv zdmZ-`^4cG&<qsFy6m2|8EJc@flsi|FR<%}p)w0*k)aN%iH1am>HFve%X>)Ct>!9dd z>}u>u=rzQ>qwoJRm^W<tp7=xin9oP%iMOBqrWn3-&bZG}er;KBTq60__}zYm@Mry+ z)dpm<V%uP6Z!dRW?qKdH{)Fqa_qWUW4d4K(z!fBeCtwI{LMS2P5OYWbq!7{rS%cC+ zRiHl50_b}f0Zb7V33~~{!8PDn@Oi{#e8-mvR0xWZ2&5PC6QL&IOQOp}4Jc_;H?alr z4#^!-CDI+TYI0u+8A@V&m)}r7rpcg<p$nw<V(?(}VhUuAWy!oy&f3ZL^&*6wlSAiH z0Otd)Zte|UCcZ2Dp#l|x)54S@TB7k{uf@+K6eVM&dSpmsE#yk%cNNu@9w_gs;`A}q z>LeOInqyir+Qqsky+HjLLrtT46K2x{vkePN%Qsen*7t1*?1Jo<9LyYhon^6guAFZ9 z9<-k6-YB0NesKSUKzLA62ytjeIDJH66mRtN80FZZzii@H6C;yIZx*JArS_y*-d@Xy z$)e7Fd{-uCFxUS6&Vz(}x`K)#nc}_@^U{UKUgf)$p;d>~AvN1|?oVf*88^IX6m2SO zCT<C7{o1De>e*}Nj`+@>UB=xlZ`pcp^sV(94Kxig566rwe87x88vFgxV&ciC<4KjN zxGyc!E3+hX++Stq6&Dm2g_l^C&c019KlvW<LvaPV((==96}>vJ7P`)`-m+nd+t}Vr z*+OsCZ)3K{c5HWk>;~>0?nVEC{7Tq|?<XE04sITz4%3cEkCKlGj^mF{Pl8X@PhC!@ z&h*dT{FeM(fn&m@{kZ{ui>Gsefx`HD`39hMF>2@T|KG#gD;O`(&JBTol3;zzOz<-m ze(1UcXc+&4?VPb{>Ud0nAAZ<C_5b9=x(8{Q;$t-Ukp(co7kGhUUl0J$Ko{?-;i=0B z?>PXU|Bh(jy#V|#vfw`%f9Ij`d4CrFS^K{u?g0F)81dTx0{kH!I{ZN$wtrOU|Fj@% z*tsgh`1*whxVyRqp;i3+ys!djEgvT#0koKis0aXm^eFfvWdW2sA-!^7o!klad`gG3 hmfy`UZiYT0W#w*3ML{WN>sJ?jCOw_w;Z+2X`!Ck3Dq#Qs diff --git a/scripts/guiplugins/buttonbar/images/hslider.gif b/scripts/guiplugins/buttonbar/images/hslider.gif deleted file mode 100644 index 9fd9a817ca805f211fd9253161dd43b88671106d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3853 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 diff --git a/scripts/guiplugins/buttonbar/images/images.txt b/scripts/guiplugins/buttonbar/images/images.txt deleted file mode 100644 index f35265225..000000000 --- a/scripts/guiplugins/buttonbar/images/images.txt +++ /dev/null @@ -1,1116 +0,0 @@ -set arraydata { -R0lGODlhHAATAMQAAAAAAAsLCxISEh0dHSQkJDMzMzs7O0ZGRlJSUnFxcXl5eZGRkaCgoK2trbu7 -u8bGxtjY2OLi4unp6f7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQA -AAAAIf/8SUNDUkdCRzEwMTIAAA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3Nw -QVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAA -ABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAAB -uAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNj -bQAADpAAAACmbW1vZAAADzgAAAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVog -AAAAAAAAcEsAALBzAAAij1hZWiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9z -ZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHN -AABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0A -Zf8A0gF8AkoDHgQIBSMGXAeyCSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8n -MSh9KcgrDixTLZMu0DAJMT8ybTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYM -RwRH/kj3Se9K6EvhTNxN1k7RT81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYglj -E2QeZSpmNmdCaE9pW2poa3ZshG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBP -gVKCVYNWhFeFV4ZWh1SIUolQik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxF -nUmeTJ9QoFShWKJco1+kYqVmpmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25 -VrpNu0O8Ob0tvh+/EMAAwO3B2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC -0ofTStQN1M7VjNZK1wjXxNh+2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm -3OeV6E/pCunH6ojrTOwU7OLtt+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc -/wBiAMoBZgIoAucDzgTNBfYHNQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOF -JMEl+ycuKF4pjSq4K+AtAy4iLzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9B -IUIBQuJDw0SkRYZGaUdNSDBJFkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZ -W8tcvV2uXqBfkGCBYXJiY2NUZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ2 -03fPeMx5yHrCe7x8tn2ufqd/n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGS -DpMLlAiVBZYClv+X/Zj6mfea9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62y -rrevvLDDscuy1LPdtOa18Lb4uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrK -hctwzFjNQM4mzwvP79DS0bPSk9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe -5JrlmOaZ55von+mk6qrrsey57cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ -ABYATgCiARIBqQJNAvgDxwStBagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob -1hzOHcMeth+oIJchhCJvI1ckPCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0 -MxszwDRlNQo1rjZTNvY3mjg+OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNF -C0W0Rl9HCke3SGVJFEnDSnNLJUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+Viz -WW1aKFriW51cWF0TXc5eil9GYAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3F -bpNvYXAwcP9xz3Kgc3F0QnUVded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF -3oa5h5WIcYlNiiqLCIvmjMSNo46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57w -n+eg4aHdotyj36Tkpeym+KgHqRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+ -w7/6wTXCdcO8xRDGbsfayV7K9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8A -AG5kaW4AAAAAAAAGNgAAlvAAAFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuF -AAMBAAACAAAAGwAwAEoAZQB+AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowC -sALWAv0DJgNRA34DrAPdBBAERQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2 -ChgKfgrmC1MLwww2DK0NJw2kDiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8Z -VRn8GqUbUBv7HKkdVx4HHrgfayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQt -oC5uLz0wDjDhMbUyizNjND01GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cw -SDtJSEpXS2dMeE2LTqBPtVDLUeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltn -jWjBafdrL2xpbaVu43AjcWVyqnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0K -jpqQMZHPk3SVIJbTmI6aT5wYneifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MO -xU3Hj8nUzBzOaNC30wjVWNel2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7 -lP0P/ob//wAAABwAMwBQAGsAhwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLG -Au8DGgNHA3cDqAPdBBMETASHBMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4L -MwusDCoMrA0zDb0OSw7dD3IQChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzs -HageZR8kH+UgqCFtIjQi/iPKJJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRI -NTI2HDcJN/Y45TnWOsg7vTy0Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR -1lL3VBlVO1ZfV4RYqlnRWvlcI11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQ -dN12Knd3eMV6EntffKx9+H9EgJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2a -vpxEnc6fXKDuooWkIKXAp2SpDaq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK -28yazlTQC9G+027VG9bG2HDaGNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD -+yb8x/5m//8AAAAjAEIAZwCJAKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD -/wRGBJIE4QU0BYoF5AZBBqEHBQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLC -E6YUkBV/FnMXbBhqGWwacxuAHJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMy -vzP9NT42gDfFOQw6VzujPPM+RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hY -wlotW5ldBl50X+RhVWLHZDplr2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJc -g+uFe4cNiJ+KMovFjViO7JB/khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGv -abDeslKzwrUxtp+4C7l2uuC8Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar -1/rZQdqB27nc6d4M3yfgOuE+4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K -8CDwsfFD8dPyXfLo83Pz+PR99QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+ -Nv6o/xr/jf//AABkZXNjAAAAAAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1 -YwAAAAAAAAAFAAAADGVuVVMAAAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAAS -AAAAgGl0SVQAAAAUAAAAkgBDAG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBh -AHIAYgAtAEwAQwBEAEwAQwBEACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QA -AAAAAAAGEAAAnGEAAAAAwF3/AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBs -ZSwgSW5jLiwgMjAxMAAALAAAAAAcABMAAAWO4CSOZGmeE6CubOu2IoDOp5zS+GgDxmn0ox9K9lBF -ShKVRBQx1iYJVUMkLAIGPYdUOCpODirFxMpgsB4LFULFEJl3gIMhoCIoWPRXgaCKtQQAgC8qgioF -O3wAAQZvKwIDdSoQExIFBUkxbw8ihytHP5VAJDsTXJQFP6I0pDk4rK0zr7BPN7NDfoO5L7atIQA7 -} -image create photo buttonimagearray -data $arraydata -set bngdata { -R0lGODlhEgASAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABIAEgAAAjOMj4nA7Q8MfEsetqINWqtueQpH -ctgonSeatqy7sqqIznTShG8Elt/mia06k9wlVYS8WAUAOw== -} -image create photo buttonimagebng -data $bngdata -set floatatomdata { -R0lGODlhEQARANUAAAAAAAAAkQBPkQoKChMTEy5BgkEAT09PLk+CyE+JzU+f0lxcQXAuLnm97oJB -cILI7okuXJjc/6WlsatcALdmALd5XL3Ckb3CpcDAwMju/9KRLtLq+9L35eDg4OX7/+7cwvLSn/vS -kf7//v/lq//uzf//7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQKAAAAIf/8SUNDUkdCRzEwMTIA -AA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0 -AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52 -Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgA -AAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZ -WiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///z -JgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAA -Y3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAey -CSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8y -bTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7R -T81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3Zs -hG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQ -ik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVm -pmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B -2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+ -2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLt -t+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYH -NQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4i -LzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJ -Fkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NU -ZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/ -n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea -9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4 -uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPS -k9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey5 -7cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwSt -BagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ck -PCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+ -OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNL -JUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9G -YAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUV -ded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSN -o46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgH -qRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K -9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAA -AFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+ -AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAE -RQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2k -DiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgf -ayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01 -GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDL -UeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVy -qnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wY -neifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel -2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsA -hwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASH -BMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQ -ChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPK -JJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0 -Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlc -I11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9E -gJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2Sp -Daq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDa -GNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJ -AKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEH -BQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuA -HJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+ -RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDpl -r2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/ -khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8 -Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+ -4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR9 -9QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAA -AAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMA -AAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBD -AG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBE -ACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/ -AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAA -AAARABEAAAZcQJFwSCwaj0iAcqkcdI4AIwBDwEiZSxHVSoyKPpINcdsVgQoXQ4bYGZQnkRFAUfQK -ASUIx2FB1MsVBw0hCX9DURoBIhQPhnciJAwLAh6OIlhZh12YmEien6ChQ0EAOw== -} -image create photo buttonimagefloatatom -data $floatatomdata -set hradiodata { -R0lGODlhEwASAPABAP///wAAACH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABMAEgAAAieEj6nL7Q9jCrTaSw2uK2hwgd0X -eorplaOonqQluuBmThpNS/rO6wUAOw== -} -image create photo buttonimagehradio -data $hradiodata -set hsliderdata { -R0lGODlhFwATAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABcAEwAAAjOMj6nL7Q+jAbTaiycGqCYegI3X -TQ95gCKDmuFJfe4Yl6/T3uuSq1tXS2k2RIvkiEwqIwUAOw== -} -image create photo buttonimagehslider -data $hsliderdata -set msgdata { -R0lGODlhGgARAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABoAEQAAAjCMj6kK7Q+jM4CtVam8KVMOeh+I -WaSJiOeYrh3qBqocH/N83rX97qy8WXkkxKKPUwAAOw== -} -image create photo buttonimagemsg -data $msgdata -set mycnvdata { -R0lGODlhEgATAIAAAODg4P///yH5BAQAAAAAIf/8SUNDUkdCRzEwMTIAAA+EYXBwbAIAAABtbnRy -UkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYA -AQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAAB -fAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAABhJu/2Rp -bgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgAAAAoY3BydAAAD2AAAAAk -WFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZWiAAAAAAAAAlgQAAF1cA -AKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov// -/aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0A -AHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAeyCSQKswxdDg4P0xGeE2UV -LBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8ybTOXNLw13Tb2OA05HTop -OzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7RT81QylHIUsdTx1THVchW -ylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3ZshG2Sbp9vrXC6cchy1XPi -dO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQik2LSoxHjUOOQI//PZA7 -kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVmpmmnbKhvqXGqdKt1rHet -eK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B2cLDw6rEj8VxxlHHL8gK -yOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+2TjZ8tqq22LcGtzS3Yre -Qt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLtt+6S73XwX/FR8kzzT/Rb -9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYHNQiUCgULmQ0xDtcQhxIv -E9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4iLzswTjFdMmQzaDRmNWA2 -VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJFkn8SuRLzUy3TaNOkk+A -UHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NUZEZlOGYrZyBoFGkKagJq -+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/n4CWgY2Cg4N6hP9vhWWG -XIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea9JvwnOyd6J7jn9+g2qHU -os6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4uAG5CboPuxS8GL0avhq/ -GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPSk9Ny1FHVL9YN1uvXydin -2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey57cHuyu/U8N7x6vL39AT1 -FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwStBagGuQfeCRcKWAuhDPEO -Qw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ckPCUdJfsm1CepKHkpRioO -KtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+OOE5hDooOss7bzwSPLU9 -WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNLJUvWTIlNPE3wTqRPWVAO -UMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9GYAJgvmF7Yjli//djtWR1 -ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUVded2uneOeGJ5N3oMeuF7 -uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSNo46Dj2SQRpEokguS8JPV -lLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgHqRiqLKtDrFutdq6Tr7Gw -0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K9MynznzQcdKM1MzXQNnY -3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAAAFjoAABTGAAAil4AACeX -AAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+AJcAsADJAOIA+wEUAS0B -RgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAERQR8BLYE8QUuBW0FrgXx -BjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2kDiUOqA8uD7YQQRDPEV4R -8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgfayAeINQhiiL/QiL7I7Uk -cSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01GTX4Ntg3ujifOYc6cDtc -PEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDLUeNS+1QUVS5WSldmWIRZ -olrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVyqnPxdTt2h3fWeSd6fHvT -fS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wYneifv6Gdo4GlbadhqVur -Xa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel2ezcKd5Z4HriieSG5nLo -Tuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsAhwChALwA1gDxAQwBJgFB -AV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASHBMQFBAVGBYoF0AYZBmQG -sAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQChClEUMR4xKHEywT1RR/ -FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPKJJglaCY7J/8PJ+YowCmb -KngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0Pa0+qD+lQKZBqEKtQ7VE -vkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlcI11OXntfqWDZYgpjPmRz -Zatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9EgJGB3YMqhHiFx4cXiGqJ -vosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2SpDaq6rGyuIq/dsZ2zYbUp -tvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDaGNvB3WnfEeC54mLkDOW1 -51/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJAKsAzQDvAREBMwFWAXoB -nwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEHBQdsB9cIRwi7CTQJswo4 -CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuAHJEdpx7BH+AhASIlI0sk -ciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+RT+bQPNC/05DrEUMRm5H -00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDplr2claJ1qFWuPbQpuhnAE -cYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/khOTppU5lsyYX5nym4Sd -Fp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8Sr2yvxvAg8Hqw1LEucYf -x4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+4j7jL+Qc5P3l2ear53ro -PukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR99QH1hPYE9oX3BfeI+Ar4 -jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAAAAAAAApDb2xvciBMQ0QA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMAAAASAAAATGZyRlIAAAAS -AAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBDAG8AbAChbwByACAATABD -AEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBEACAAYwBvAGwAbwByAEwA -QwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/AAAAAAAAAAAAAAAAAAAA -AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAAAAASABMAAAIljI+JwO0P -DJxN0mnvy7qGvn2gN5JlJJYcuHat9l4xNWPKjedKAQA7 -} -image create photo buttonimagemycnv -data $mycnvdata -set numboxdata { -R0lGODlhFgATANUAAAAAAAAAZQAAeABbqQBvrwkJCRISEiUlJS14ry2Iyjo6OkCAtUCWylRUVFsA -AGWv4nNzc4gAAIi7xYvF64/P75OTk6Pe/KlbLa9lAK+dZa+vr7WAQLuALb29vcDAwM+PLc+WTtT0 -/Nzc3N7i7eDg4OKvZerq6uvKi+3k3vT8/PX19fjZnfznr/z41Pz89P39/QAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQAAAAAIf/8SUNDUkdCRzEwMTIA -AA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0 -AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52 -Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgA -AAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZ -WiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///z -JgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAA -Y3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAey -CSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8y -bTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7R -T81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3Zs -hG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQ -ik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVm -pmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B -2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+ -2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLt -t+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYH -NQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4i -LzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJ -Fkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NU -ZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/ -n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea -9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4 -uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPS -k9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey5 -7cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwSt -BagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ck -PCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+ -OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNL -JUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9G -YAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUV -ded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSN -o46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgH -qRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K -9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAA -AFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+ -AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAE -RQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2k -DiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgf -ayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01 -GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDL -UeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVy -qnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wY -neifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel -2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsA -hwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASH -BMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQ -ChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPK -JJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0 -Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlc -I11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9E -gJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2Sp -Daq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDa -GNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJ -AKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEH -BQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuA -HJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+ -RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDpl -r2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/ -khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8 -Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+ -4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR9 -9QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAA -AAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMA -AAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBD -AG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBE -ACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/ -AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAA -AAAWABMAAAaXwJdwSCwahYCkcskskIpM5bFj8BAB1M6xSLUiX1kjakTsfsEGrdC1SS5SQ1HhjFaf -AiEWYHKl118fCS8cAAx9LwBFHgYvGA8rAhkDcGeJcQYaLhcSERQlk0OWli8mBxVCIAAEgIKhZyoK -EEMnABYtDnyuiEINDURsSQiUlS8QCipiZFBIFQcmW0eiUaNb0tPXUtDa29xCQQA7 -} -image create photo buttonimagenumbox -data $numboxdata -set objdata { -R0lGODlhFgARAPABAP///wAAACH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABYAEQAAAiWEj6kW7emaCqtOaynQ+O6+aBx4 -jCRinurKtpDLtKLMmJEtwUYBADs= -} -image create photo buttonimageobj -data $objdata -set symbolatomdata { -R0lGODlhEQARANUAAAAAAAAALgAAkQoKChMTEy4ueS5BcC5cn0FBLk8AAFxmXFyJt2aYwokuAJFc -QZG915jI6pjX959cT6uCXLGCT7HS5beYn8DAwMiRQdLu+9f38uDg4OXIpez9//LSmPL/8vfSkff/ -//v38v7////y4P/94v//8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQAAAAAIf/8SUNDUkdCRzEwMTIA -AA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0 -AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52 -Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAADzgA -AAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZ -WiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///z -JgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAA -Y3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMGXAey -CSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJMT8y -bTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN1k7R -T81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2poa3Zs -hG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SIUolQ -ik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+kYqVm -pmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAAwO3B -2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjXxNh+ -2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU7OLt -t+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTNBfYH -NQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4i -LzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJ -Fkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NU -ZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/ -n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6mfea -9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa18Lb4 -uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS0bPS -k9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrrsey5 -7cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgDxwSt -BagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJvI1ck -PCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3mjg+ -OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnDSnNL -JUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5eil9G -YAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0QnUV -ded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvmjMSN -o46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym+KgH -qRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfayV7K -9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAAlvAA -AFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoAZQB+ -AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPdBBAE -RQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0NJw2k -DiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4HHrgf -ayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNjND01 -GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBPtVDL -UeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43AjcWVy -qnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6aT5wY -neifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjVWNel -2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsA -hwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBMETASH -BMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7dD3IQ -ChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi/iPK -JJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7vTy0 -Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnRWvlc -I11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9+H9E -gJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXAp2Sp -Daq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG2HDa -GNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIAZwCJ -AKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZBBqEH -BQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwacxuA -HJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6VzujPPM+ -RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDpl -r2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/ -khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8 -Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+ -4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz+PR9 -9QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNjAAAA -AAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVuVVMA -AAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAAkgBD -AG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwAQwBE -ACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAAwF3/ -AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAALAAA -AAARABEAAAZfwJFwSCwaj0iAcqkcbI4AI+BCuEiZyxHVSowit12kcDMIlxyIw8eSGXqFUZCgI+Qk -FvT3KGqiABghQhgAEHpRIiMlDREkEwYVe2EeAQoFGhIPbl1YSmFunJxioqOko0EAOw== -} -image create photo buttonimagesymbolatom -data $symbolatomdata -set textdata { -R0lGODlhGwARAPAAAP///wAAACH5BAAAAAAAIf8LSUNDUkdCRzEwMTL/AAAPhGFwcGwCAAAAbW50 -clJHQiBYWVogB9oACQABAA8AEwAfYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbW -AAEAAAAA0y1hcHBs2S6BsfMyXumJcebqTFAPNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA -AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAYSbmRp -bgAAB+wAAAY+ZGVz/2MAAA4sAAAAZGRzY20AAA6QAAAApm1tb2QAAA84AAAAKGNwcnQAAA9gAAAA -JFhZWiAAAAAAAABhCgAAOFEAAAdYWFlaIAAAAAAAAHBLAACwcwAAIo9YWVogAAAAAAAAJYEAABdX -AACpPlhZWiAAAAAAAADzUgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L/ -//2jAAAD3AAAwGxjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHN -AAB2Y2d0AAAAAAAAAAAAAwEAAAIAAAAdAGUA0gF8AkoDHgQIBSMGXP8HsgkkCrMMXQ4OD9MRnhNl -FSwW7RieGkQb3x1rHu4gYyHOIzEkiSXfJzEofSnIKw4sUy2TLtAwCTE/Mm0zlzS8Nd029jgNOR06 -KTszPDc9Oj46PzdAM0EuQilDIkQaRRRGDEcER/5I90nvSuhL4UzcTdZO0U/NUMpRyFLHU8dUx1XI -VspXzFjPWdNa11vdXOJd6V7wX/hhAGIJYxNkHmUqZjZnQmhPaVtqaGt2bIRtkm6fb61wunHIctVz -4nTvdfx3B3gSeRx6J3swfDd9P35Ff0qAT4FSglWDVoRXhVeGVodUiFKJUIpNi0qMR41DjkCPPZA7 -kTiSN5M2lDWVNZb/Npc3mDmZO5o+m0KcRZ1JnkyfUKBUoViiXKNfpGKlZqZpp2yob6lxqnSrdax3 -rXiuea95sHmxeLJ2s3S0cbVutmm3Y7hduVa6TbtDvDm9Lb4fvxDAAMDtwdnCw8OqxI/FccZRxy/I -CsjkybzKkMtkzDXNBc3Tzp/PatAz0PzRwtKH00rUDdTO1YzWStcI18TYftk42fLaqtti3Brc0t2K -3kLe+d+x4GjhIOHY4o/jR+P/5LblbeYl5tznlehP6Qrpx+qI60zsFOzi7bfuku918F/xUfJM80/0 -W/Vt9of3p/jN+fj7I/xU/Yr+xP//AAAAHABiAMoBZgIoAucDzgTN/wX2BzUIlAoFC5kNMQ7XEIcS -LxPcFX0XFRikGicbmR0EHl0fsiD/IkcjhSTBJfsnLiheKY0quCvgLQMuIi87ME4xXTJkM2g0ZjVg -NlY3Rzg2OR86CDrvO9M8tz2aPnw/XkA/QSFCAULiQ8NEpEWGRmlHTUgwSRZJ/ErkS81Mt02jTpJP -gFBwUWFSU1NFVDhVK1YeVxBYA1j2Weda2VvLXL1drl6gX5BggWFyYmNjVGRGZThmK2cgaBRpCmoC -avpr9Gzubepu5m/jcOFx33Ldc9t02XXWdtN3z3jMech6wnu8fLZ9rn6nf5+AloGNgoODeoRvhWWG -XIdTiEmJQYo5i/8xjCqNJY4fjxqQFZERkg6TC5QIlQWWApb/l/2Y+pn3mvSb8Jzsneie45/foNqh -1KLOo8ikw6W+prmntaixqa+qrauurK+tsq63r7yww7HLstSz3bTmtfC2+LgBuQm6D7sUvBi9Gr4a -vxjAFcEQwgnDAcP2xOvF3cbPx7/IrcmayoXLcMxYzUDOJs8Lz+/Q0tGz0pPTctRR1S/WDdbr18nY -p9mF2mXbRtwp3Q7d9d7f38zgvOGv4qXjnuSa5Zjmmeeb6J/ppOqq67Hsue3B7srv1PDe8ery9/QE -9RT2Jfc3+Er5YPp3+478pv3A/t3//wAAABYATgCiARIBqQJNAvj/A8cErQWoBrkH3gkXClgLoQzx -DkMPjBDWEhYTThR6FZ4WuBfKGNYZ2hraG9Yczh3DHrYfqCCXIYQibyNXJDwlHSX7JtQnqSh5KUYq -DirRK5EsTi0HLbsuby8gL80weTElMcwydDMbM8A0ZTUKNa42Uzb2N5o4PjjhOYQ6KDrLO288Ejy1 -PVg9+j6dP0A/40CGQSlBzUJxQxZDvERjRQtFtEZfRwpHt0hlSRRJw0pzSyVL1kyJTTxN8E6kT1lQ -DlDEUXtSMlLpU6FUWlUSVcxWhVc/V/lYs1ltWiha4ludXFhdE13OXopfRmACYL5he2I5YvdjtWR1 -ZTVl92a5Z31o/0JpCGnPaphrYmwtbPhtxW6Tb2FwMHD/cc9yoHNxdEJ1FXXndrp3jnhieTd6DHrh -e7h8j31lfjx/FH/sgMWBnYJ3g1CEKoUEhd6GuYeViHGJTYoqiwiL5ozEjaOOg49kkEaRKJILkvCT -1ZS8laOWjJd2mGCZTJo6myicF50Infue8J/noOGh3aLco9+k5KXspvioB6kYqiyrQ6xbrXauk6+x -sNKx87MWtDq1X7aHt6+42boEuzG8X72QvsO/+sE1wnXDvMUQxm7H2sleyvTMp8580HHSjNTM10DZ -2Nyl35jis+X36Wfs8vB29CP39Pvw//8AAG5kaW4AAAAAAAAGNv8AAJbwAABY6AAAUxgAAIpeAAAn -lwAAFqgAAFANAABUOQACQo8AAfCjAAFrhQADAQAAAgAAABsAMABKAGUAfgCXALAAyQDiAPsBFAEt -AUYBYQF7AZYBsQHOAesCCQIoAkgCaQKMArAC1gL9AyYDUQN+A6wD3QQQBEUEfAS2BPEFLgVtBa4F -8QY1BnwGxAcOB1sHqQf6CE0Iowj8CVgJtgoYCn4K5gtTC8MMNgytDScNpA4lDqgPLg+2EEEQzxFe -EfAShBMZE7EUSxTnFYQWIxbEF2YYChivGVUZ/BqlG1Ab+xypHVceBx64H2sgHiDUIYoiQiL7I7Uk -cSUtJesmqif/aigsKO8ptCp6K0EsCizULaAubi89MA4w4TG1MoszYzQ9NRk1+DbYN7o4nzmHOnA7 -XDxLPTw+MD8mQB9BGkIYQxhEG0UgRidHMEg7SUhKV0tnTHhNi06gT7VQy1HjUvtUFFUuVkpXZliE -WaJaw1vkXQdeLF9SYHpho2LPY/xlKmZbZ41owWn3ay9saW2lbuNwI3Flcqpz8XU7dod31nknenx7 -030tfop/64FPgreEIoWShwaIf4n9i4CNCo6akDGRz5N0lSCW05iOmk+cGJ3on7+hnaOBpW2nYalb -q12taK95sZGzsLXVuAC6L7xivpjA0sMOxU3Hj8nUzBzOaNC3/9MI1VjXpdns3CneWeB64onkhuZy -6E7qG+vZ7YvvM/DS8mnz+fWE9wr4k/oW+5T9D/6G//8AAAAcADMAUABrAIcAoQC8ANYA8QEMASYB -QQFdAXkBlgGzAdEB8QIRAjICVQJ5Ap8CxgLvAxoDRwN3A6gD3QQTBEwEhwTEBQQFRgWKBdAGGQZk -BrAHAAdRB6UH/AhWCLMJFAl4CeEKTQq+CzMLrAwqDKwNMw29DksO3Q9yEAoQpRFDEeMShxMsE9UU -fxUrFdkWiRc6F+0YoBlVGgsawRt5HDIc7B2oHmUfJB/lIKghbSI0Iv4jyiSYJWgmOycPJ+YowCmb -KngrVyw3Lf8ZLfsu3y/EMKoxkDJ3M180SDUyNhw3CTf2OOU51jrIO708tD2tPqg/pUCmQahCrUO1 -RL5Fy0baR+tI/koTSytMRE1eTnpPmFC2UdZS91QZVTtWX1eEWKpZ0Vr5XCNdTl57X6lg2WIKYz5k -c2WrZuRoIGleap1r320jbmlvsXD6ckVzkHTddip3d3jFehJ7X3ysffh/RICRgd2DKoR4hceHF4hq -ib6LFYxujcuPK5CPkfeTY5TTlkeXwJk9mr6cRJ3On1yg7qKFpCClwKdkqQ2quqxsriKv3bGds2G1 -Kbb0uMO6lLxnvjvAEMHjw7XFhMdQyRfK28yazlTQC9G+027/1RvWxthw2hjbwd1p3xHgueJi5Azl -tedf6Qjqsexa7gHvqPFP8vT0mPY799/5g/sm/Mf+Zv//AAAAIwBCAGcAiQCrAM0A7wERATMBVgF6 -AZ8BxQHsAhYCQQJuAp4C0AMGAz4DewO7A/8ERgSSBOEFNAWKBeQGQQahBwUHbAfXCEcIuwk0CbMK -OArEC1cL8gyUDT8N8g6sD28QORELEeMSwhOmFJAVfxZzF2wYahlsGnMbgByRHacewR/gIQEiJSNL -JHIlmybEJ+4pGipIK3csqC3cLxEwSTGDMr8z/TU+NoA3xTkMOlc7ozzzPkU/m0DzQk5DrEUMRm5H -00k5SqFM/wpNc07dUEdRsVMbVIRV7ldYWMJaLVuZXQZedF/kYVVix2Q6Za9nJWidahVrj20KboZw -BHGEcwR0h3YLd5B5F3qffCl9tH9AgM2CXIPrhXuHDYifijKLxY1YjuyQf5ITk6aVOZbMmF+Z8puE -nRaeqKA5ocijVqTipmyn86l3qvisdq3xr2mw3rJSs8K1MbafuAu5drrgvEq9sr8bwIPB6sNSxLnG -H8eGyOzKUcu2zRvOf8/i0UPSotP+1VfWq9f62UHagdu53OneDN8n4DrhPuI+4y/kHOT95dnmq+d6 -6D7pAum56nDrIOvL7HftGO257lju8e+K8CDwsfFD8dPyXf/y6PNz8/j0ffUB9YT2BPaF9wX3iPgK -+I35DfmJ+gb6g/r8+3X77fxm/Nr9Tv3C/jb+qP8a/43//wAAZGVzYwAAAAAAAAAKQ29sb3IgTENE -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAABQAAAAxlblVTAAAAEgAAAExmckZSAAAA -EgAAAF5kZURFAAAAEAAAAHBlc0VTAAAAEgAAAIBpdElUAAAAFAAAAJIAQwBvAGwAbwByACAATABD -AEQAyQCTYwByAGEAbgAgAEwAQwBEAEYAYQByAGIALQBMAEMARABMAEMARAAgAGMAbwBsAG8AcgBM -AEMARAAgAGMAbwBsAG8AcgBpAABtbW9kAAAAAAAABhAAAJxhAAAAAMBd/wAAAAAAAAAAAAAAAAAA -AAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTAAACwAAAAAGwARAAACMYSPqcvt -D6Oc1IR6V54bhb+B1nGB3UimQKkqnRl6zKvJ9YqjrO6GH5pbnSrEovH4KAAAOw== -} -image create photo buttonimagetext -data $textdata -set toggledata { -R0lGODlhFAATAPMAAP///wAAAAEBAfz8/N3d3YeHh729vRISEg0NDQ4ODgAAAAAAAAAAAAAAAAAA -AAAAACH5BAAAAAAAIf8LSUNDUkdCRzEwMTL/AAAPhGFwcGwCAAAAbW50clJHQiBYWVogB9oACQAB -AA8AEwAfYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBs2S6B -sfMyXumJcebqTFAPNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOclhZWgAAASwAAAAU -Z1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAAAXwAAAAsclRSQwAAAagA -AAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAYSbmRpbgAAB+wAAAY+ZGVz/2MA -AA4sAAAAZGRzY20AAA6QAAAApm1tb2QAAA84AAAAKGNwcnQAAA9gAAAAJFhZWiAAAAAAAABhCgAA -OFEAAAdYWFlaIAAAAAAAAHBLAACwcwAAIo9YWVogAAAAAAAAJYEAABdXAACpPlhZWiAAAAAAAADz -UgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L///2jAAAD3AAAwGxjdXJ2 -AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAAB2Y2d0AAAAAAAAAAAA -AwEAAAIAAAAdAGUA0gF8AkoDHgQIBSMGXP8HsgkkCrMMXQ4OD9MRnhNlFSwW7RieGkQb3x1rHu4g -YyHOIzEkiSXfJzEofSnIKw4sUy2TLtAwCTE/Mm0zlzS8Nd029jgNOR06KTszPDc9Oj46PzdAM0Eu -QilDIkQaRRRGDEcER/5I90nvSuhL4UzcTdZO0U/NUMpRyFLHU8dUx1XIVspXzFjPWdNa11vdXOJd -6V7wX/hhAGIJYxNkHmUqZjZnQmhPaVtqaGt2bIRtkm6fb61wunHIctVz4nTvdfx3B3gSeRx6J3sw -fDd9P35Ff0qAT4FSglWDVoRXhVeGVodUiFKJUIpNi0qMR41DjkCPPZA7kTiSN5M2lDWVNZb/Npc3 -mDmZO5o+m0KcRZ1JnkyfUKBUoViiXKNfpGKlZqZpp2yob6lxqnSrdax3rXiuea95sHmxeLJ2s3S0 -cbVutmm3Y7hduVa6TbtDvDm9Lb4fvxDAAMDtwdnCw8OqxI/FccZRxy/ICsjkybzKkMtkzDXNBc3T -zp/PatAz0PzRwtKH00rUDdTO1YzWStcI18TYftk42fLaqtti3Brc0t2K3kLe+d+x4GjhIOHY4o/j -R+P/5LblbeYl5tznlehP6Qrpx+qI60zsFOzi7bfuku918F/xUfJM80/0W/Vt9of3p/jN+fj7I/xU -/Yr+xP//AAAAHABiAMoBZgIoAucDzgTN/wX2BzUIlAoFC5kNMQ7XEIcSLxPcFX0XFRikGicbmR0E -Hl0fsiD/IkcjhSTBJfsnLiheKY0quCvgLQMuIi87ME4xXTJkM2g0ZjVgNlY3Rzg2OR86CDrvO9M8 -tz2aPnw/XkA/QSFCAULiQ8NEpEWGRmlHTUgwSRZJ/ErkS81Mt02jTpJPgFBwUWFSU1NFVDhVK1Ye -VxBYA1j2Weda2VvLXL1drl6gX5BggWFyYmNjVGRGZThmK2cgaBRpCmoCavpr9Gzubepu5m/jcOFx -33Ldc9t02XXWdtN3z3jMech6wnu8fLZ9rn6nf5+AloGNgoODeoRvhWWGXIdTiEmJQYo5i/8xjCqN -JY4fjxqQFZERkg6TC5QIlQWWApb/l/2Y+pn3mvSb8Jzsneie45/foNqh1KLOo8ikw6W+prmntaix -qa+qrauurK+tsq63r7yww7HLstSz3bTmtfC2+LgBuQm6D7sUvBi9Gr4avxjAFcEQwgnDAcP2xOvF -3cbPx7/IrcmayoXLcMxYzUDOJs8Lz+/Q0tGz0pPTctRR1S/WDdbr18nYp9mF2mXbRtwp3Q7d9d7f -38zgvOGv4qXjnuSa5Zjmmeeb6J/ppOqq67Hsue3B7srv1PDe8ery9/QE9RT2Jfc3+Er5YPp3+478 -pv3A/t3//wAAABYATgCiARIBqQJNAvj/A8cErQWoBrkH3gkXClgLoQzxDkMPjBDWEhYTThR6FZ4W -uBfKGNYZ2hraG9Yczh3DHrYfqCCXIYQibyNXJDwlHSX7JtQnqSh5KUYqDirRK5EsTi0HLbsuby8g -L80weTElMcwydDMbM8A0ZTUKNa42Uzb2N5o4PjjhOYQ6KDrLO288Ejy1PVg9+j6dP0A/40CGQSlB -zUJxQxZDvERjRQtFtEZfRwpHt0hlSRRJw0pzSyVL1kyJTTxN8E6kT1lQDlDEUXtSMlLpU6FUWlUS -VcxWhVc/V/lYs1ltWiha4ludXFhdE13OXopfRmACYL5he2I5YvdjtWR1ZTVl92a5Z31o/0JpCGnP -aphrYmwtbPhtxW6Tb2FwMHD/cc9yoHNxdEJ1FXXndrp3jnhieTd6DHrhe7h8j31lfjx/FH/sgMWB -nYJ3g1CEKoUEhd6GuYeViHGJTYoqiwiL5ozEjaOOg49kkEaRKJILkvCT1ZS8laOWjJd2mGCZTJo6 -myicF50Infue8J/noOGh3aLco9+k5KXspvioB6kYqiyrQ6xbrXauk6+xsNKx87MWtDq1X7aHt6+4 -2boEuzG8X72QvsO/+sE1wnXDvMUQxm7H2sleyvTMp8580HHSjNTM10DZ2Nyl35jis+X36Wfs8vB2 -9CP39Pvw//8AAG5kaW4AAAAAAAAGNv8AAJbwAABY6AAAUxgAAIpeAAAnlwAAFqgAAFANAABUOQAC -Qo8AAfCjAAFrhQADAQAAAgAAABsAMABKAGUAfgCXALAAyQDiAPsBFAEtAUYBYQF7AZYBsQHOAesC -CQIoAkgCaQKMArAC1gL9AyYDUQN+A6wD3QQQBEUEfAS2BPEFLgVtBa4F8QY1BnwGxAcOB1sHqQf6 -CE0Iowj8CVgJtgoYCn4K5gtTC8MMNgytDScNpA4lDqgPLg+2EEEQzxFeEfAShBMZE7EUSxTnFYQW -IxbEF2YYChivGVUZ/BqlG1Ab+xypHVceBx64H2sgHiDUIYoiQiL7I7UkcSUtJesmqif/aigsKO8p -tCp6K0EsCizULaAubi89MA4w4TG1MoszYzQ9NRk1+DbYN7o4nzmHOnA7XDxLPTw+MD8mQB9BGkIY -QxhEG0UgRidHMEg7SUhKV0tnTHhNi06gT7VQy1HjUvtUFFUuVkpXZliEWaJaw1vkXQdeLF9SYHph -o2LPY/xlKmZbZ41owWn3ay9saW2lbuNwI3Flcqpz8XU7dod31nknenx7030tfop/64FPgreEIoWS -hwaIf4n9i4CNCo6akDGRz5N0lSCW05iOmk+cGJ3on7+hnaOBpW2nYalbq12taK95sZGzsLXVuAC6 -L7xivpjA0sMOxU3Hj8nUzBzOaNC3/9MI1VjXpdns3CneWeB64onkhuZy6E7qG+vZ7YvvM/DS8mnz -+fWE9wr4k/oW+5T9D/6G//8AAAAcADMAUABrAIcAoQC8ANYA8QEMASYBQQFdAXkBlgGzAdEB8QIR -AjICVQJ5Ap8CxgLvAxoDRwN3A6gD3QQTBEwEhwTEBQQFRgWKBdAGGQZkBrAHAAdRB6UH/AhWCLMJ -FAl4CeEKTQq+CzMLrAwqDKwNMw29DksO3Q9yEAoQpRFDEeMShxMsE9UUfxUrFdkWiRc6F+0YoBlV -GgsawRt5HDIc7B2oHmUfJB/lIKghbSI0Iv4jyiSYJWgmOycPJ+YowCmbKngrVyw3Lf8ZLfsu3y/E -MKoxkDJ3M180SDUyNhw3CTf2OOU51jrIO708tD2tPqg/pUCmQahCrUO1RL5Fy0baR+tI/koTSytM -RE1eTnpPmFC2UdZS91QZVTtWX1eEWKpZ0Vr5XCNdTl57X6lg2WIKYz5kc2WrZuRoIGleap1r320j -bmlvsXD6ckVzkHTddip3d3jFehJ7X3ysffh/RICRgd2DKoR4hceHF4hqib6LFYxujcuPK5CPkfeT -Y5TTlkeXwJk9mr6cRJ3On1yg7qKFpCClwKdkqQ2quqxsriKv3bGds2G1Kbb0uMO6lLxnvjvAEMHj -w7XFhMdQyRfK28yazlTQC9G+027/1RvWxthw2hjbwd1p3xHgueJi5Azltedf6Qjqsexa7gHvqPFP -8vT0mPY799/5g/sm/Mf+Zv//AAAAIwBCAGcAiQCrAM0A7wERATMBVgF6AZ8BxQHsAhYCQQJuAp4C -0AMGAz4DewO7A/8ERgSSBOEFNAWKBeQGQQahBwUHbAfXCEcIuwk0CbMKOArEC1cL8gyUDT8N8g6s -D28QORELEeMSwhOmFJAVfxZzF2wYahlsGnMbgByRHacewR/gIQEiJSNLJHIlmybEJ+4pGipIK3cs -qC3cLxEwSTGDMr8z/TU+NoA3xTkMOlc7ozzzPkU/m0DzQk5DrEUMRm5H00k5SqFM/wpNc07dUEdR -sVMbVIRV7ldYWMJaLVuZXQZedF/kYVVix2Q6Za9nJWidahVrj20KboZwBHGEcwR0h3YLd5B5F3qf -fCl9tH9AgM2CXIPrhXuHDYifijKLxY1YjuyQf5ITk6aVOZbMmF+Z8puEnRaeqKA5ocijVqTipmyn -86l3qvisdq3xr2mw3rJSs8K1MbafuAu5drrgvEq9sr8bwIPB6sNSxLnGH8eGyOzKUcu2zRvOf8/i -0UPSotP+1VfWq9f62UHagdu53OneDN8n4DrhPuI+4y/kHOT95dnmq+d66D7pAum56nDrIOvL7Hft -GO257lju8e+K8CDwsfFD8dPyXf/y6PNz8/j0ffUB9YT2BPaF9wX3iPgK+I35DfmJ+gb6g/r8+3X7 -7fxm/Nr9Tv3C/jb+qP8a/43//wAAZGVzYwAAAAAAAAAKQ29sb3IgTENEAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAG1sdWMAAAAAAAAABQAAAAxlblVTAAAAEgAAAExmckZSAAAAEgAAAF5kZURFAAAAEAAA -AHBlc0VTAAAAEgAAAIBpdElUAAAAFAAAAJIAQwBvAGwAbwByACAATABDAEQAyQCTYwByAGEAbgAg -AEwAQwBEAEYAYQByAGIALQBMAEMARABMAEMARAAgAGMAbwBsAG8AcgBMAEMARAAgAGMAbwBsAG8A -cgBpAABtbW9kAAAAAAAABhAAAJxhAAAAAMBd/wAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5 -cmlnaHQgQXBwbGUsIEluYy4sIDIwMTAAACwAAAAAFAATAAAEWhDISau92IbNuxeUxw0kSRRBOBRE -6Q7GYaRTAMvvbQy0ZOuu2I6nIgmNOFIP8EMajqVl04hIDKPFkiGBuCqzOui3pk2Kpc5gEi0u79Cs -nFMqmg5O9LoIlOlLIgA7 -} -image create photo buttonimagetoggle -data $toggledata -set vradiodata { -R0lGODlhEgATAPABAP///wAAACH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABIAEwAAAiyEj6kW7b7YexEES2+801aefRik -LSApKqU6QZuZJqsMv2qMzHltts3n01UWBQA7 -} -image create photo buttonimagevradio -data $vradiodata -set vsliderdata { -R0lGODlhFQAXAPAAAAAAAP///yH5BAQAAAAAIf8LSUNDUkdCRzEwMTL/ZGluAAAH7AAABj5kZXNj -AAAOLAAAAGRkc2NtAAAOkAAAAKZtbW9kAAAPOAAAAChjcHJ0AAAPYAAAACRYWVogAAAAAAAAYQoA -ADhRAAAHWFhZWiAAAAAAAABwSwAAsHMAACKPWFlaIAAAAAAAACWBAAAXVwAAqT5YWVogAAAAAAAA -81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3Vy -dgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAA -AAMBAAACAAAAHQBl/wDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7u -IGMhziMxJIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNB -LkIpQyJEGkUURgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3Vzi -Xele8F/4YQBiCWMTZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7 -MHw3fT9+RX9KgE+BUoJVg1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Aj/89kDuROJI3kzaUNZU1ljaX -N5g5mTuaPptCnEWdSZ5Mn1CgVKFYolyjX6RipWamaadsqG+pcap0q3Wsd614rnmvebB5sXiydrN0 -tHG1brZpt2O4XblWuk27Q7w5vS2+H78QwADA7cHZwsPDqsSPxXHGUccvyArI5Mm8ypDLZMw1zQXN -086fz2rQM9D80cLSh9NK1A3UztWM1krXCNfE2H7ZONny2qrbYtwa3NLdit5C3vnfseBo4SDh2OKP -40fj/+S25W3mJebc55XoT+kK6cfqiOtM7BTs4u237pLvdfBf8VHyTPNP9Fv1bfaH96f4zfn4+yP8 -VP2K/sT//wAAABz/AGIAygFmAigC5wPOBM0F9gc1CJQKBQuZDTEO1xCHEi8T3BV9FxUYpBonG5kd -BB5dH7Ig/yJHI4UkwSX7Jy4oXimNKrgr4C0DLiIvOzBOMV0yZDNoNGY1YDZWN0c4NjkfOgg67zvT -PLc9mj58P15AP0EhQgFC4kPDRKRFhkZpR01IMEkWSfxK5EvNTLdNo06ST4BQcFFhUlNTRVQ4VStW -HlcQWANY9lnnWtlby1y9Xa5eoF+QYIFhcmJjY1RkRmU4ZitnIGgUaQpqAmr6a/Rs7m3qbuZv43Dh -cd9y3XPbdNl11nbTd894zHnIesJ7vHy2fa5+p3+fgJaBjYKDg3qE/2+FZYZch1OISYlBijmLMYwq -jSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPIpMOlvqa5p7Wo -samvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJwwHD9sTr -xd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O3fXe -39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAP8AFgBOAKIBEgGpAk0C+APHBK0FqAa5B94JFwpYC6EM8Q5DD4wQ1hIWE04UehWe -FrgXyhjWGdoa2hvWHM4dwx62H6gglyGEIm8jVyQ8JR0l+ybUJ6koeSlGKg4q0SuRLE4tBy27Lm8v -IC/NMHkxJTHMMnQzGzPANGU1CjWuNlM29jeaOD444TmEOig6yztvPBI8tT1YPfo+nT9AP+NAhkEp -Qc1CcUMWQ7xEY0ULRbRGX0cKR7dIZUkUScNKc0slS9ZMiU08TfBOpE9ZUA5QxFF7UjJS6VOhVFpV -ElXMVoVXP1f5WLNZbVooWuJbnVxYXRNdzl6KX0ZgAmC+YXtiOWL/92O1ZHVlNWX3ZrlnfWhCaQhp -z2qYa2JsLWz4bcVuk29hcDBw/3HPcqBzcXRCdRV153a6d454Ynk3egx64Xu4fI99ZX48fxR/7IDF -gZ2Cd4NQhCqFBIXehrmHlYhxiU2KKosIi+aMxI2jjoOPZJBGkSiSC5Lwk9WUvJWjloyXdphgmUya -OpsonBedCJ37nvCf56Dhod2i3KPfpOSl7Kb4qAepGKosq0OsW612rpOvsbDSsfOzFrQ6tV+2h7ev -uNm6BLsxvF+9kL7Dv/rBNcJ1w7zFEMZux9rJXsr0zKfOfNBx0ozUzNdA2djcpd+Y4rPl9+ln7PLw -dvQj9/T78P///wAAbmRpbgAAAAAAAAY2AACW8AAAWOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkA -AkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCwAMkA4gD7ARQBLQFGAWEBewGWAbEBzgHr -AgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTxBS4FbQWuBfEGNQZ8BsQHDgdbB6kH -+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBBEM8RXhHwEoQTGROxFEsU5xWE -FiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIv9CIvsjtSRxJS0l6yaqJ2ooLCjv -KbQqeitBLAos1C2gLm4vPTAOMOExtTKLM2M0PTUZNfg22De6OJ85hzpwO1w8Sz08PjA/JkAfQRpC -GEMYRBtFIEYnRzBIO0lISldLZ0x4TYtOoE+1UMtR41L7VBRVLlZKV2ZYhFmiWsNb5F0HXixfUmB6 -YaNiz2P8ZSpmW2eNaMFp92svbGltpW7jcCNxZXKqc/F1O3aHd9Z5J3p8e9N9LX6Kf+uBT4K3hCKF -kocGiH+J/YuAjQqOmpAxkc+TdJUgltOYjppPnBid6J+/oZ2jgaVtp2GpW6tdrWivebGRs7C11bgA -ui+8Yr6YwNL/ww7FTcePydTMHM5o0LfTCNVY16XZ7Nwp3lngeuKJ5IbmcuhO6hvr2e2L7zPw0vJp -8/n1hPcK+JP6FvuU/Q/+hv//AAAAHAAzAFAAawCHAKEAvADWAPEBDAEmAUEBXQF5AZYBswHRAfEC -EQIyAlUCeQKfAsYC7wMaA0cDdwOoA90EEwRMBIcExAUEBUYFigXQBhkGZAawBwAHUQelB/wIVgiz -CRQJeAnhCk0KvgszC6wMKgysDTMNvQ5LDt0PchAKEKURQxHjEocTLBPVFH8VKxXZFokXOhftGKAZ -VRoLGsEbeRwyHOwdqB5lHyQf5SCoIW0iNCL+I8okmCVoJjsn/w8n5ijAKZsqeCtXLDctGS37Lt8v -xDCqMZAydzNfNEg1MjYcNwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0sr -TERNXk56T5hQtlHWUvdUGVU7Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99t -I25pb7Fw+nJFc5B03XYqd3d4xXoSe198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3 -k2OU05ZHl8CZPZq+nESdzp9coO6ihaQgpcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB -48O1xYTHUP/JF8rbzJrOVNAL0b7TbtUb1sbYcNoY28Hdad8R4LniYuQM5bXnX+kI6rHsWu4B76jx -T/L09Jj2O/ff+YP7JvzH/mb//wAAACMAQgBnAIkAqwDNAO8BEQEzAVYBegGfAcUB7AIWAkECbgKe -AtADBgM+A3sDuwP/BEYEkgThBTQFigXkBkEGoQcFB2wH1whHCLsJNAmzCjgKxAtXC/IMlA0/DfIO -rA9vEDkRCxHjEsITphSQFX8WcxdsGGoZbBpzG4AckR2nHsEf4CEBIiUjSyRyJZsmxCfuKRoqSCt3 -LKgt3C8RMEkxgzK/M/01PjaAN8U5DDpXO6M88z5FP5tA80L/TkOsRQxGbkfTSTlKoUwKTXNO3VBH -UbFTG1SEVe5XWFjCWi1bmV0GXnRf5GFVYsdkOmWvZyVonWoVa49tCm6GcARxhHMEdId2C3eQeRd6 -n3wpfbR/QIDNglyD64V7hw2In4oyi8WNWI7skH+SE5OmlTmWzJhfmfKbhJ0WnqigOaHIo1ak4qZs -p/Opd6r4rHat8a9psN6yUrPCtTG2n7gLuXa64LxKvbK/G8CDwerDUsS5xh/HhsjsylHLts0bzn/P -4tFD0qLT/tVX1qvX+tlB2oHbudzp3gzfJ+A64T7iPuMv5Bzk/eXZ5qvneug+6QLpuepw6yDry+x3 -7Rjtue5Y/+7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABtbHVjAAAAAAAAAAUAAAAMZW5VUwAAABIAAABMZnJGUgAAABIAAABeZGVERQAAABAA -AABwZXNFUwAAABIAAACAaXRJVAAAABQAAACSAEMAbwBsAKFvAHIAIABMAEMARADJAGMAcgBhAG4A -IABMAEMARABGAGEAcgBiAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIATABDAEQAIABjAG8AbABv -AHIAaQAAbW1vZAAAAAAAAAYQAACcYQAAAADAXf8AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29w -eXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDEwAAAsAAAAABUAFwAAAjOMj6kJ7Q/Wgc5EGe7SG3P1IaHo -YVnpUY+prmk7TqgUnzPI3jid8zr5kwUtLBXx1TIpEwUAOw== -} -image create photo buttonimagevslider -data $vsliderdata -set vumeterdata { -R0lGODlhHQAQAKIAAAAAAEBAQOjoKPwoKPysRP///wAAAAAAACH5BAQAAAAAIf/8SUNDUkdCRzEw -MTIAAA+EYXBwbAIAAABtbnRyUkdCIFhZWiAH2gAJAAEADwATAB9hY3NwQVBQTAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3 -dHB0AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAA -AA52Y2d0AAAB2AAABhJu/2RpbgAAB+wAAAY+ZGVzYwAADiwAAABkZHNjbQAADpAAAACmbW1vZAAA -DzgAAAAoY3BydAAAD2AAAAAkWFlaIAAAAAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAi -j1hZWiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe -///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEB -zQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAB0AZf8A0gF8AkoDHgQIBSMG -XAeyCSQKswxdDg4P0xGeE2UVLBbtGJ4aRBvfHWse7iBjIc4jMSSJJd8nMSh9KcgrDixTLZMu0DAJ -MT8ybTOXNLw13Tb2OA05HTopOzM8Nz06Pjo/N0AzQS5CKUMiRBpFFEYMRwRH/kj3Se9K6EvhTNxN -1k7RT81QylHIUsdTx1THVchWylfMWM9Z01rXW91c4l3pXvBf+GEAYgljE2QeZSpmNmdCaE9pW2po -a3ZshG2Sbp9vrXC6cchy1XPidO91/HcHeBJ5HHonezB8N30/fkV/SoBPgVKCVYNWhFeFV4ZWh1SI -UolQik2LSoxHjUOOQI//PZA7kTiSN5M2lDWVNZY2lzeYOZk7mj6bQpxFnUmeTJ9QoFShWKJco1+k -YqVmpmmnbKhvqXGqdKt1rHeteK55r3mwebF4snazdLRxtW62abdjuF25VrpNu0O8Ob0tvh+/EMAA -wO3B2cLDw6rEj8VxxlHHL8gKyOTJvMqQy2TMNc0FzdPOn89q0DPQ/NHC0ofTStQN1M7VjNZK1wjX -xNh+2TjZ8tqq22LcGtzS3YreQt7537HgaOEg4djij+NH4//ktuVt5iXm3OeV6E/pCunH6ojrTOwU -7OLtt+6S73XwX/FR8kzzT/Rb9W32h/en+M35+Psj/FT9iv7E//8AAAAc/wBiAMoBZgIoAucDzgTN -BfYHNQiUCgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+At -Ay4iLzswTjFdMmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdN -SDBJFkn8SuRLzUy3TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJi -Y2NUZEZlOGYrZyBoFGkKagJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2u -fqd/n4CWgY2Cg4N6hP9vhWWGXIdTiEmJQYo5izGMKo0ljh+PGpAVkRGSDpMLlAiVBZYClv+X/Zj6 -mfea9JvwnOyd6J7jn9+g2qHUos6jyKTDpb6muae1qLGpr6qtq66sr62yrrevvLDDscuy1LPdtOa1 -8Lb4uAG5CboPuxS8GL0avhq/GMAVwRDCCcMBw/bE68Xdxs/Hv8ityZrKhctwzFjNQM4mzwvP79DS -0bPSk9Ny1FHVL9YN1uvXydin2YXaZdtG3CndDt313t/fzOC84a/ipeOe5JrlmOaZ55von+mk6qrr -sey57cHuyu/U8N7x6vL39AT1FPYl9zf4Svlg+nf7jvym/cD+3f//AAD/ABYATgCiARIBqQJNAvgD -xwStBagGuQfeCRcKWAuhDPEOQw+MENYSFhNOFHoVnha4F8oY1hnaGtob1hzOHcMeth+oIJchhCJv -I1ckPCUdJfsm1CepKHkpRioOKtErkSxOLQctuy5vLyAvzTB5MSUxzDJ0MxszwDRlNQo1rjZTNvY3 -mjg+OOE5hDooOss7bzwSPLU9WD36Pp0/QD/jQIZBKUHNQnFDFkO8RGNFC0W0Rl9HCke3SGVJFEnD -SnNLJUvWTIlNPE3wTqRPWVAOUMRRe1IyUulToVRaVRJVzFaFVz9X+VizWW1aKFriW51cWF0TXc5e -il9GYAJgvmF7Yjli//djtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAwcP9xz3Kgc3F0 -QnUVded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlNiiqLCIvm -jMSNo46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tkpeym -+KgHqRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfa -yV7K9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D///8AAG5kaW4AAAAAAAAGNgAA -lvAAAFjoAABTGAAAil4AACeXAAAWqAAAUA0AAFQ5AAJCjwAB8KMAAWuFAAMBAAACAAAAGwAwAEoA -ZQB+AJcAsADJAOIA+wEUAS0BRgFhAXsBlgGxAc4B6wIJAigCSAJpAowCsALWAv0DJgNRA34DrAPd -BBAERQR8BLYE8QUuBW0FrgXxBjUGfAbEBw4HWwepB/oITQijCPwJWAm2ChgKfgrmC1MLwww2DK0N -Jw2kDiUOqA8uD7YQQRDPEV4R8BKEExkTsRRLFOcVhBYjFsQXZhgKGK8ZVRn8GqUbUBv7HKkdVx4H -HrgfayAeINQhiiL/QiL7I7UkcSUtJesmqidqKCwo7ym0KnorQSwKLNQtoC5uLz0wDjDhMbUyizNj -ND01GTX4Ntg3ujifOYc6cDtcPEs9PD4wPyZAH0EaQhhDGEQbRSBGJ0cwSDtJSEpXS2dMeE2LTqBP -tVDLUeNS+1QUVS5WSldmWIRZolrDW+RdB14sX1JgemGjYs9j/GUqZltnjWjBafdrL2xpbaVu43Aj -cWVyqnPxdTt2h3fWeSd6fHvTfS1+in/rgU+Ct4QihZKHBoh/if2LgI0KjpqQMZHPk3SVIJbTmI6a -T5wYneifv6Gdo4GlbadhqVurXa1or3mxkbOwtdW4ALovvGK+mMDS/8MOxU3Hj8nUzBzOaNC30wjV -WNel2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP59YT3CviT+hb7lP0P/ob//wAAABwAMwBQ -AGsAhwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJVAnkCnwLGAu8DGgNHA3cDqAPdBBME -TASHBMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpNCr4LMwusDCoMrA0zDb0OSw7d -D3IQChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzsHageZR8kH+UgqCFtIjQi -/iPKJJglaCY7J/8PJ+YowCmbKngrVyw3LRkt+y7fL8QwqjGQMnczXzRINTI2HDcJN/Y45TnWOsg7 -vTy0Pa0+qD+lQKZBqEKtQ7VEvkXLRtpH60j+ShNLK0xETV5Oek+YULZR1lL3VBlVO1ZfV4RYqlnR -WvlcI11OXntfqWDZYgpjPmRzZatm5GggaV5qnWvfbSNuaW+xcPpyRXOQdN12Knd3eMV6EntffKx9 -+H9EgJGB3YMqhHiFx4cXiGqJvosVjG6Ny48rkI+R95NjlNOWR5fAmT2avpxEnc6fXKDuooWkIKXA -p2SpDaq6rGyuIq/dsZ2zYbUptvS4w7qUvGe+O8AQwePDtcWEx1D/yRfK28yazlTQC9G+027VG9bG -2HDaGNvB3WnfEeC54mLkDOW151/pCOqx7FruAe+o8U/y9PSY9jv33/mD+yb8x/5m//8AAAAjAEIA -ZwCJAKsAzQDvAREBMwFWAXoBnwHFAewCFgJBAm4CngLQAwYDPgN7A7sD/wRGBJIE4QU0BYoF5AZB -BqEHBQdsB9cIRwi7CTQJswo4CsQLVwvyDJQNPw3yDqwPbxA5EQsR4xLCE6YUkBV/FnMXbBhqGWwa -cxuAHJEdpx7BH+AhASIlI0skciWbJsQn7ikaKkgrdyyoLdwvETBJMYMyvzP9NT42gDfFOQw6Vzuj -PPM+RT+bQPNC/05DrEUMRm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLH -ZDplr2claJ1qFWuPbQpuhnAEcYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO -7JB/khOTppU5lsyYX5nym4SdFp6ooDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2 -uuC8Sr2yvxvAg8Hqw1LEucYfx4bI7MpRy7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfg -OuE+4j7jL+Qc5P3l2ear53roPukC6bnqcOsg68vsd+0Y7bnuWP/u8e+K8CDwsfFD8dPyXfLo83Pz -+PR99QH1hPYE9oX3BfeI+Ar4jfkN+Yn6BvqD+vz7dfvt/Gb82v1O/cL+Nv6o/xr/jf//AABkZXNj -AAAAAAAAAApDb2xvciBMQ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAFAAAADGVu -VVMAAAASAAAATGZyRlIAAAASAAAAXmRlREUAAAAQAAAAcGVzRVMAAAASAAAAgGl0SVQAAAAUAAAA -kgBDAG8AbAChbwByACAATABDAEQAyQBjAHIAYQBuACAATABDAEQARgBhAHIAYgAtAEwAQwBEAEwA -QwBEACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnGEAAAAA -wF3/AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAxMAAA -LAAAAAAdABAAAANeWAXR/gEoJeeyy43NWwUgSGEZBFVjijEN10UWGoqUeZJTGGvu4OEXFcv2w31k -PFeRJGnmiA7U6vNsEK7Y4swphC5XuWoAm4UBdWKidCodCt7wbyxc866NYnjcDAwmAAA7 -} -image create photo buttonimagevumeter -data $vumeterdata diff --git a/scripts/guiplugins/buttonbar/images/make-base64.sh b/scripts/guiplugins/buttonbar/images/make-base64.sh deleted file mode 100644 index 1bcd742a8..000000000 --- a/scripts/guiplugins/buttonbar/images/make-base64.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -rm images.txt -touch images.txt -for file in *.gif; do - name=`echo $file | sed 's|\.gif||'` - echo $name - echo "set ${name}data {" >> images.txt - uuencode -m $name.gif temp | tail -n +2 | head -n -1 >> images.txt - echo "}" >> images.txt - echo "image create photo buttonimage$name -data \$${name}data" >> images.txt -done diff --git a/scripts/guiplugins/buttonbar/images/menuarray.gif b/scripts/guiplugins/buttonbar/images/menuarray.gif deleted file mode 100644 index c446718ef9abea9c3bb83e1d3564f0d920593ed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4275 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 K+f;K9X#5KhhlW7_ diff --git a/scripts/guiplugins/buttonbar/images/msg.gif b/scripts/guiplugins/buttonbar/images/msg.gif deleted file mode 100644 index a337f30de30e769b65950faa64aa84da9fa99fbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3850 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 diff --git a/scripts/guiplugins/buttonbar/images/mycnv.gif b/scripts/guiplugins/buttonbar/images/mycnv.gif deleted file mode 100644 index 61c55aea04b0045adfce48fef11e6990ebb7e3f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4080 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 DZH-QF diff --git a/scripts/guiplugins/buttonbar/images/numbox.gif b/scripts/guiplugins/buttonbar/images/numbox.gif deleted file mode 100644 index 415fb06bec7ad43bc03e9e24e6f631cf5bde6ec5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4380 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 diff --git a/scripts/guiplugins/buttonbar/images/obj.gif b/scripts/guiplugins/buttonbar/images/obj.gif deleted file mode 100644 index c5be735c3217c4eb4e47c304852b1de83d1319a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3839 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 diff --git a/scripts/guiplugins/buttonbar/images/symbolatom.gif b/scripts/guiplugins/buttonbar/images/symbolatom.gif deleted file mode 100644 index 4cf64bd679588f8e3963c6b4f1d5417ff50fc2db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4324 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 N@w!)1TA~Bg{|h4wox}hD diff --git a/scripts/guiplugins/buttonbar/images/text.gif b/scripts/guiplugins/buttonbar/images/text.gif deleted file mode 100644 index f5eb519037c255259fe397d3faa60a5df7701f89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4093 zcmb`Kc{G(@_rT8`xLor*#*NG~nPs}>c_w3A*OYml3SU>EM3kgZnMINaNrcE)ND;}9 zl6eRjy6>a<zTdTezjv+opZBbFp7S~T?0wGjoPE~W&(_t~QBZW{0CZpt03wkH066{w z2|b~fNTH9#TIg!(N=ZsdLnAZ<*T6tuI5gzv9~uk|VC+uYV^HIO9KZk#U;x~%xR5{% zGc%)K_W$v*JqqbUWmxQJt}*e1noVivg_NNAZ$@S`C;y|#KSJtYXh8sAqL7Hu^Eay> zvD<I9I^u}Xz)(oX>xgk)uI>=WLM$3=Wr2mb3}R}}-`sG-Zoj$vh{JK7N4D<)Af@+r z_x1+>wFI%MJ3fSngT{{*c6SfK`9YikafzQ_0JH#&0>py2z+lLj<_yFqjy48rq2h`L zK*1cE$nGCmpdkPcLjd4O|3}7`004_E0OhLx$Tls0Z5E7qFvLSf`qy+YN=*PrJ`#zW z{Lq}4032Q=68G;BiHC&%ASM84^~Hq+hyT)rz690}z<=xi{^&mz2*^7}9zF)}U<eiq zH$ZS9$w+uf9f_z%<R{Rzlup#tG{bcH40t9{=4IA=b}f#nV`sTmFu3CbyizAp_@)G; z1kVX|i%^SNie-tvmL!)_llGIjak5!<Qf^y;O7WPIkg|-5{3#_>B{g|<84YnwAuNv; zyEdZ^r7lwUr{0eKs=-&oX`>0_QIj{O{boJp-4<PzT~=Mz-8Mb8eRhMVhwa}vOghdu zEjX{a?79LsavXy@7hc#y&QsIN)Z4+w>uk6$!7tOlAfPI+DX2U6ZOBaMYS=*pDv~~m zGg=@<GFJYa+Ij6bgLu;fi@&TBZ3wnWwij%Ytu9)mn57zDGPtaphP|Smekw!xszRoG zmfSVj>$2HIxf}91iZ_*WRc~qD*3Q$<H!3i@V|CZ=o@1d)kz27xiFc`QSwMMEMd<yo z%807S2T|2g52I=#ABES3J`Sq$ulIg}YjA3`X)=C_ZB~3H*24XqwiUE4w~f7MZ?EV` z?+kir-X+nE?w)(q+>_Dk-Y45n(my;<FzEAI=Jmmw7emRz1|w7>18*;n8oVQW*YW=R zn8Mh`c*O^|3HFJh$<&XUAAd~MeDa#cOuwH=pVgfu&eebRo9COK_;UTL=>mG8>)XXe zqb0_rndK)dnX6%IF6-tSMw_Nv4&VK@lXpsY`+w~2^B!0orvB{sbq#O=H_!v~fD6LE zAO?{AM3QZkEZH?Q3B^q+De8B$$@CHo6HMn=m{^P01vqXVLvlHBKf(}sba|6bwDIi= zhzmLkr3p8Pd=f*5^GGO5nn*cGyUTc;^pHIxXCtqxAg9Q!M5eT=JgoBMRIX~QnzOo^ z#&J!U<_xx7t4RBTj<>F{o}@mr{(-@qVZYH6<3f{6(|EH$b5{#XOKmF!YY`hRTUtAW z-S+7(_G1pcj?bJPINx!}IFsNS?1sZxx$EE+JVZP(UX0#oAGpun*)87{zi<BY0keVA zK~uq#As<4=!bZb~BL*Y;qPnAB#5Bj&pL=k=G_D{%J0b0_#KdSqKob6fW3uH%{S=K< z#Y;q~%fe}VSGd#JGnlT@Wm0ERTqC<qk`2!$-Z;$JySbCQb!+YRQr_46*@CG%<9A2y z4HR}4wHLRPG?vzt)s$CPRNa42SzYz$!ISFdhwU}Jk49=IAJ5mV)$caI8p)ezo-#JG zK4WiTf6m&<)JFS)ydBoQ-Lcp?`Es!9d3V*T+@7S~z&^Wv^#T4tiow;_LvLz_vWA04 z%->3kQjIRYd-c9_ENLA7L1#i}l6vy{$Em5lPtDWSGsUy{bGe^$=5Kzv^|fH3=v&2N z%~IoX+e**s$lAyCZyP&X$nT8Xd^_^H20za1MeJWWC^>BXIr-}ZFar~C4@M6wha1Cp ziHI&_6-gOsBkChL3)+t2F6BBkmgX|;C_OWS31c)<K63+059=t~IQuxqDCfYjcCLEv zGR%$R1fBq1+Y>5$$N2X7M+C|Rql9#XsfFK&TopADLy0{V50Jn}^h-ub@k#Ybhstos zw4TJvqGcb*S;}q8=PIZwOe+$U1eJP~161f$>Q336+EdL_Q&*c+zn~$c(XSbVWyUsZ z;j}5VAM3d2qII9>;q@8y+YLet`3y&mQjArM*G!5`Pn%Jjb(qIkNLwse-nFu~rnm01 zNwQV5{b5&o+Rt9le#Rls(awp%X}~$vMdu9sOp9xbo1)teuFgFSFN@#tX!JbiMbz{r z^B(lcIqT*t=DX|H>7Nzg8Yme^3>pl+6A~1v8O9X$CA=x(N~Bwqd^BbBbWB5R`Z@f0 zl{m(@rTET-yuTt6%?QFt$fS=K8k4VI3`#Lh6~07vY5sCYTH%$%boUIMtAd#nnQK{Z zuQgvU%)WdhJm<_!qg<t1g11@n$ny5{*9yMenZ7%DZ=!IjXs&pvWVZ}e&RQXQA6w~A z75*Try5`|f&1Nn0W2HKm`s63o4P#Bnr&7%>&oWxtpYOHFz6fh??xcO`-!=Zqxo4}d zbRhP1(9q?PzIW<l?<b0<a%O5j?<{yOZLEcF@$PKxuN|F$-y!fQGLXta-E8O=!R{*n zmaG7zIs+hZ0{~_yo|;hsV5JD)n&|+xRtR8clfd6$gab$d11OZ72RFb&@CwX;eHbH5 z45kBfg~h<KVKuM;*dm-9x@7d=-tf!thwxGOA%Y)ajyR8~L`))Sk=n>uWIb}7M4ZHr z<N?V#sVr$MX$OiL<$x+j?U5Oi6_Op0+mY9!S<&aw^Awg8?UZtqRa630Mbv!MWi;Y6 z^|TtagLKYxYxD#LHijBTL&h&m1ZH054i*nqG;1}RHQNDuF^3t)K4<wcTP_q=1NT`B z7iQ#mDvu`5K5yNLAU-j^Mg9r_qK}}c;HuDL;b;*JQMBlY*d1|yiBpo)lG9Rk(wAg# zCr`<;$?nR%mv2%iP)t?|RCZJ`Jf)&4sm8C)t--Fzie=T}(8lNp=t}A->+2cV8hRQ< z8ecNGV_Ij{Yd&kSZ^dXWZew8UVMjQ9&%WJZ&I#o#>SA#w+O^Pa5O)BDHwVu&uQu<U zvl71Ee#QQ?fxJQZ;EIs-Fy-*%h|ws4=-8Oyb7JRH;}#Q4|9V2;Ny<zny%?8rcqu*& zeI++T>gr%t=ygo?aL$!n)7z|hUkje!%_~eO_A7NQcew9V<y9S3bG7zi-P;DxB+=~F zlG8fWPTgtTmHuj^k8{B5^%LSS*;~7J#bZkoLLX0mik?ZCyD%U8)#Mw;;@I+~RhhM+ z4e!k#-w8YD-K;(4{cDFbKQH_VBQn4YoCV3?E@%d$U>!yY<A-U$oM2Iq|7&4yVC!%? zxHQ}v9tAIezl5(M*b%yj2t*m=eFmfvG8x%Hf+W!)NhNtr%0}u=`Va+B=BQ%S0htY1 zEjc53B>6Pj7~Mi4Ls3a7Oj$`KL-mZ>kb06Pm=;Z2OoyeLrB7xMWq8XN$0Wiu#+<^U z#InqKhs~Oug1wC+ic^|%=~x*Tp8Ev%XH3~~Kc163KY4pj<nVd%D+|yF%nP;(-4c!z zu@#jUBeIF@i%&^(NLEN?NJq%HoYa$*mgAHsm)}<StT?LFt^7>o@u@1+GPPp$5{)v= zDr}uri*~QhxbC9fPXh)+5hE>QXOn2t9J6}!QHvcbHfv=Y7h8f|#pyTpKOA|TOq^p} z%Fm3sp>eA2A^7_qb6yy4XP>;YQ+~Yu-T^g%d%@Zv8KINm!VwXXoze6$F0qy8cH^|- zuO>_;3KJrex{_Hg`lPg6V!G^~)|)Ppk$!b23wLceTlYrm%~QE8x3%&H3LNjO+)FCL z6t|YTms3?VRr)^Qsh+IKt97jts^4m8Z@Sj(*`nM^+cw)?*GcFyd&Sc8p)Ys9>NUli zmSKP5TaM9}?*qqKKeSDHPtkp9oN=3@{9O0NWr6Hl&652JY_)9NbYp8PXIpt^>PO-} z|3TMJk6$N%7ia=ckOJ<5ey|FogUP^bV9~GwSSM@=&J5Rp`@{3$uMwmORYVNpDT0X9 zL1rSSNlro@pCi>Ey^A72`J&#D>5@GqKS^GTRzP=9*ivjzUZYZ@+Muqa37}P^qkz2p zf}w;lgDH+VgvFQDhs~Eggd?8w>akL;HttWyVLW`ih9`pgZt-^rtO&6S>xo2&mWfSB z&`Ih`B}zY+Ih0kEi<j?Iq*St1E>zi6)mFQuzNu+~t<<K}@z)*JS2Vb5L_`~hm`s}K zn%7uzSP`sOZ0+n`*o!&bbRu;Qb(wRucI$Fi!dH9pdFA;qolW;c`(Fq|1`$G#p~>MC z5gAb|(FL(W=N`wY$M^r`n7Eh}lT3B7AXWNOXPVuWrHr^thOCn7irIZRE;l!B5%QSx z%kC)N?Jl$_nkn%u-7Jr&*sTn&TCetg`0<fN?Tb38`ho_E#_*<3%?8gNJ?CgmZ2Q)3 z(b4#lyX!*tQjd9WeLu%Q+~CX`?9jd8pKonP@4wp{(-=?q&^WR1k#b7llhU;6jOwh! z9OvBO=dt<wU!uRNF2ENWzXdL07JHW>mRXk@SL{~SS5wz8Yc=cG_2CUC;>Op_kj>q# zbKha#3ERl+q#cr-i@WIEv>#MIQuavq688@F!}gaCJPyVWO%7lDl>1pmWGAK_od76% zf|93S1&s~x4G6{<VYU7U{#T8kZ`j{!kU(=%;{B~Hp_U%1MjpXB7Jt~;9j~PgF)dUB z@gdrO>%@D9>i^0fA$caif&kzP)nI@DMo>=+id<PZsOt*+|1Hvidcn{?ve+M$--;N3 z`?vA`mv}>|^RJ8%S_Y6pFLB%Th+3VXUHU&I6dws?lK@}?0;7VxJ-tFP8c@QF7scrN z<HSWV(vnh=P*QuOag@9RxD+A1ymy(V@b(BH+BTmf>3PCvP{O2MiF&zk9$R$Z{a4>p V3oBPHaOXPY33uFE-xUNv`CqkST+ILg diff --git a/scripts/guiplugins/buttonbar/images/toggle.gif b/scripts/guiplugins/buttonbar/images/toggle.gif deleted file mode 100644 index a5471bf589ee061770ffe4a538b99ab58efee251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4176 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 diff --git a/scripts/guiplugins/buttonbar/images/vradio.gif b/scripts/guiplugins/buttonbar/images/vradio.gif deleted file mode 100644 index afcb929f7e80cc9a5a1d57dfc4abbdce4c0d334e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3846 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 diff --git a/scripts/guiplugins/buttonbar/images/vslider.gif b/scripts/guiplugins/buttonbar/images/vslider.gif deleted file mode 100644 index f088b8d4a475637455b006e436f7a39f57a6626c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3853 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 diff --git a/scripts/guiplugins/buttonbar/images/vumeter.gif b/scripts/guiplugins/buttonbar/images/vumeter.gif deleted file mode 100644 index bc16a52b175c1ca22df695c8ddd3f4a5620bad0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4155 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 T5O-LuNOO%Gp`n4brt1Fyo}Xy+ diff --git a/scripts/guiplugins/file_associations/file_associations-plugin.tcl b/scripts/guiplugins/file_associations/file_associations-plugin.tcl deleted file mode 100644 index b44e162fe..000000000 --- a/scripts/guiplugins/file_associations/file_associations-plugin.tcl +++ /dev/null @@ -1,55 +0,0 @@ -# this is a plugin for Pd 0.43 that adds the ability to associate Pd patches -# with filetypes like .wav, .ogg, etc. - -package provide file_associations 0.1 - -namespace eval ::file_associations:: { - namespace export pdtk_post -} - -proc ::file_associations::load_file_associations {} { - set ::associationsdir "[pwd]/../associations" - # TODO this should search the whole path for 'associations' in order to - # support user-installed associations, not only included ones - puts stderr "find_file_associations $::associationsdir" - if { ! [file isdirectory $::associationsdir]} { return } - foreach filename [glob -directory $::associationsdir -nocomplain -types {f} -- *.pd] { - set extension [file rootname [file tail $filename]] - puts "\tAssociating $filename to $extension" - lset ::filetypes 0 1 [concat [lindex $::filetypes 0 1] ".$extension"] - set ::filetypes [lappend ::filetypes \ - [list "[string toupper $extension] files" ".$extension"]] - } -} - -proc ::file_associations::menu_open {} { - pdtk_post "using menu_open from file_associations.tcl" - if { ! [file isdirectory $::pd_menucommands::menu_open_dir]} { - set ::pd_menucommands::menu_open_dir $::env(HOME) - } - set files [tk_getOpenFile -defaultextension .pd \ - -multiple true \ - -filetypes $::filetypes \ - -initialdir $::pd_menucommands::menu_open_dir] - if {$files ne ""} { - foreach filename $files { - set extension [lindex [split $filename .] end] - if {$extension == "pd"} { - puts "open_file $filename" - open_file $filename - } else { - set assocpatchfile [open [file join $::associationsdir "$extension.pd"]] - set patchcontents [regsub -all -- "\\\$FILENAME" [read $assocpatchfile] $filename] - close $assocpatchfile - pdsend "pd filename [file tail $filename].pd \ - [enquote_path $::pd_menucommands::menu_open_dir]" - pdsend $patchcontents - pdsend "#X pop 1" - } - } - set ::pd_menucommands::menu_open_dir [file dirname $filename] - } -} - -#::file_associations::load_file_associations -# TODO insert code to override built-in menu_open proc diff --git a/scripts/guiplugins/object_db/object_db-plugin.tcl b/scripts/guiplugins/object_db/object_db-plugin.tcl deleted file mode 100644 index 898a0f422..000000000 --- a/scripts/guiplugins/object_db/object_db-plugin.tcl +++ /dev/null @@ -1,182 +0,0 @@ - -set enabled_libraries { - {pd-lib} {boids} {bsaylor} {creb} {cxc} {cyclone} {cyclone (hammer)} {cyclone (sickle)} - {ekext} {fftease} {flatspace} {flib} {freeverb~} {gem} {ggee} {hardware} {hcs} {hid} - {iem_ambi} {iem_bin_ambi} {iemgui} {iemlib} {jasch_lib} {jmmmp} {keyboardkeys} - {la-kitchen} {list-abs} {mapping} {markex} {maxlib} {memento} {mjlib} {motex} {mrpeach} - {nqpoly~} {nqpoly4} {nusmuk} {oscx} {pan} {pddp} {pdjimmies} {pdmtl abstractions} - {pdogg} {pdp} {Percolate} {pidip} {pixeltango} {pmpd} {rradical} {rtc} {sigpack} - {smlib} {toxy} {unauthorized} {vasp} {xsample} {zexy} {zexy Abstraction} -} -# comment the following line to enable all libraries -set enabled_libraries {pd-lib} - -# top level categories (tags) -set tlc {conversion pdmtl cyclone maxlib zexy vasp storage audio control connectivity imaging math misc} - -# second level (in menu) categories -set c2 { - connectivity {osc midi network} - conversion {midi audio} - cyclone {hammer sickle audio math control} - zexy {audio analysis matrix control} - maxlib {control time math glue} - audio {abstraction conversion fftease cyclone math logical analysis filters delay effects tables} - vasp {declaration arithmetic basics functions generators transcendent minmax utilities filters fft displace} - storage {abstraction lists matrix tables} - pdmtl {control convert list edit flow imaging} - imaging {{gem particles} {gem manipulators} {gem pixes} {gem geos} {gem opengl} {pdp image} {pdp processing} {pdp abstraction} {pdp 3d} pidip manipulators wrapper particles automata processing} -} - - - - - -#--------------------------------------------------------------------------------------------- -# object -> tags mapping -array set object_tags {} -# tag reverse mapping -array set objects_with_tag {} - -# load object -> tags mapping from file -set f [open [file join $::current_pathdir object_tags.tcllist]] -set tmp_db [read $f] -close $f -unset f - -foreach {library object tags} $tmp_db { - # skip unwanted libraries - if {[lsearch -exact $enabled_libraries $library] == -1} {continue} - foreach tag $tags {lappend object_tags($object) $tag} -} -unset tmp_db - -foreach k [array names object_tags] { - set object_tags($k) [lsort $object_tags($k)] - foreach tag $object_tags($k) {lappend objects_with_tag($tag) $k} -} - -proc object_db_query {q workingset} { - global object_tags - set q _[join [lsort $q] _.*_]_ - set result [list] - foreach k $workingset { - set v _[join $object_tags($k) __]_ - if {[regexp $q $v]} {lappend result $k} - } - set result -} - -# TODO: benchmark which is faster between the two -proc object_db_query_re {q workingset} { - global object_tags - set q (?b)\\<[join [lsort $q] \\>.*\\<]\\> - set result [list] - foreach k $workingset { - if {[regexp $q $object_tags($k)]} {lappend result $k} - } - set result -} - -proc complement {e s} { - set result [list] - foreach i $e {if {[lsearch -exact $s $i] == -1} {lappend result $i}} - set result -} - -proc merge {args} { - array set tmp {} - foreach arg $args { - foreach k $arg { - set tmp($k) . - } - } - set x [array names tmp] - array unset tmp - set x -} - -proc pdtk_canvas_popup_addObjectBranch {t m lst} { - set n 0 - foreach {k v} $lst { - if {$k == {.}} { - incr n - set cbrk 0 - if {$n > 18} { - set cbrk 1 - set n 1 - } - $m add command -label $v -columnbreak $cbrk \ - -command "pdsend \"\$::focused_window obj \$::popup_xcanvas \$::popup_ycanvas $v\"" - } else { - if {[llength $v] == 0} continue - set sub ${m}.sub[incr ::s] - menu $sub - # fix menu font size on Windows with tk scaling = 1 - if {$::windowingsystem eq "win32"} {$sub configure -font menufont} - $m add cascade -label $k -menu $sub - pdtk_canvas_popup_addObjectBranch $t $sub $v - } - } -} - -proc print_r {l {indent 0}} { - foreach {k v} $l { - if {$k == "."} { - for {set j 0} {$j < $indent} {incr j} {puts -nonewline " "} - puts $v - } else { - for {set j 0} {$j < $indent} {incr j} {puts -nonewline " "} - puts "$k {" - print_r $v [expr {$indent+1}] - for {set j 0} {$j < $indent} {incr j} {puts -nonewline " "} - puts "}" - } - } -} - -proc @ {l} { - set result [list] - set ls [lsort $l] - foreach i $ls {lappend result . $i} - set result -} - -set l [list] -set all [array names object_tags] -# *partition* by tag into top-level-categories -foreach c $tlc { - set c_$c [object_db_query $c $all] - set all [complement $all [set c_$c]] -} -set c_others $all -# *search* by tag in 2nd-level-categories -# add 2-level categories -foreach {tlcn c2l} $c2 { - set ll [list] - set accum [list] - foreach c2i $c2l { - set lll [object_db_query $c2i [set c_$tlcn]] - set accum [merge $accum $lll] - if {[llength $lll] > 0} {lappend ll $c2i [@ $lll]} - } - set others [complement [set c_$tlcn] $accum] - if {[llength $others] > 0} {lappend ll "others" [@ $others]} - lappend l $tlcn $ll -} -# add 1-level-categories -foreach tlci $tlc { - set c2_keys [list] - # can't use dict on 8.4 - foreach {k v} $c2 {lappend c2_keys $k} - if {[lsearch -exact $c2_keys $tlci] != -1} {continue} - set c_1_set [object_db_query $tlci [set c_$tlci]] - lappend l $tlci [@ $c_1_set] -} -# end menu structure builder - -#print_r $l - -.popup add separator -set s 0 -pdtk_canvas_popup_addObjectBranch - .popup $l diff --git a/scripts/guiplugins/object_db/object_tags.tcllist b/scripts/guiplugins/object_db/object_tags.tcllist deleted file mode 100644 index e0398d9f1..000000000 --- a/scripts/guiplugins/object_db/object_tags.tcllist +++ /dev/null @@ -1,2685 +0,0 @@ -boids boids2d {boids flock generator modelling simulator} -boids boids3d {boids flock generator modelling simulator} -bsaylor aenv~ {audio bsaylor} -bsaylor partconv~ {audio bsaylor} -bsaylor pvoc~ {audio bsaylor} -bsaylor susloop~ {audio bsaylor} -bsaylor svf~ {audio bsaylor} -bsaylor zhzxh~ {audio bsaylor} -creb 64k {abstraction audio creb} -creb abs~ {audio creb} -creb bdft {abstraction audio creb} -creb bdfts {abstraction audio creb} -creb bdiag~ {audio creb} -creb bfft~ {audio creb} -creb bhip~ {abstraction audio creb} -creb biquadseries~ {audio creb} -creb bitsplit~ {audio creb} -creb blocknorm~ {audio creb} -creb blop~ {abstraction audio creb} -creb blosc~ {audio creb} -creb bpm {abstraction audio creb} -creb bwin~ {audio creb} -creb cadd~ {abstraction audio creb} -creb ccmap~ {abstraction audio creb} -creb cconj~ {abstraction audio creb} -creb cep~ {abstraction audio creb} -creb cheby~ {audio creb} -creb cinv~ {abstraction audio creb} -creb clog~ {audio creb} -creb cmul~ {abstraction audio creb} -creb cosc~ {abstraction audio creb} -creb count {abstraction audio creb} -creb csub~ {abstraction audio creb} -creb diag~ {audio creb} -creb dist~ {audio creb} -creb dsfosc~ {abstraction audio creb} -creb dwt~ {audio creb} -creb dynwav~ {audio creb} -creb ead~ {audio creb} -creb eadh~ {abstraction audio creb} -creb eadsr~ {audio creb} -creb eadsrh~ {abstraction audio creb} -creb ear~ {audio creb} -creb expmap~ {abstraction audio creb} -creb fblock {abstraction audio creb} -creb fdn~ {audio creb} -creb ffpoly {creb math} -creb filterortho~ {audio creb} -creb fmod {abstraction audio creb} -creb fmop~ {abstraction audio creb} -creb frequor~ {abstraction audio creb} -creb fwarp {creb math} -creb icep~ {abstraction audio creb} -creb idsfosc~ {abstraction audio creb} -creb idwt~ {audio creb} -creb inv {abstraction audio creb} -creb junction~ {audio creb} -creb lattice~ {audio creb} -creb lattice3 {abstraction audio creb} -creb lpfft~ {abstraction audio creb} -creb matrix~ {audio creb} -creb pdynwav~ {abstraction audio creb} -creb permut~ {audio creb} -creb qmult~ {audio creb} -creb qnorm~ {audio creb} -creb ramp~ {audio creb} -creb ratio {creb math} -creb resofilt~ {audio creb} -creb sbosc~ {audio creb} -creb scale7 {abstraction audio creb} -creb scrollgrid1D~ {audio creb} -creb statwav~ {audio creb} -creb tabreadmix~ {audio creb} -creb tblock {abstraction audio creb} -creb ti_hihat {abstraction audio creb} -creb ti_snare {abstraction audio creb} -creb ucmod~ {abstraction audio creb} -creb ucnorm~ {abstraction audio creb} -creb vol~ {abstraction audio creb} -creb vols~ {abstraction audio creb} -creb xfm~ {audio creb} -cxc ascseq {cxc unsorted} -cxc ascwave {cxc unsorted} -cxc bfilt {cxc unsorted} -cxc bfilt2 {cxc unsorted} -cxc cxc. {cxc unsorted} -cxc cxc.pr {cxc unsorted} -cxc delta~ {cxc unsorted} -cxc ENV {cxc unsorted} -cxc proc {cxc unsorted} -cxc randomix {cxc unsorted} -cxc reson~ {cxc unsorted} -cxc serialize {cxc unsorted} -cxc stati {cxc unsorted} -cxc utime {cxc unsorted} -cyclone !- {cyclone math} -cyclone !-~ {audio cyclone math} -cyclone !/ {cyclone math} -cyclone !/~ {audio cyclone math} -cyclone !=~ {audio cyclone math} -cyclone %~ {audio cyclone math} -cyclone +=~ {cyclone math} -cyclone <=~ {audio cyclone math} -cyclone <~ {audio cyclone math} -cyclone ==~ {audio cyclone math} -cyclone >=~ {audio cyclone math} -cyclone >~ {audio cyclone math} -{cyclone (hammer)} accum {cyclone hammer misc} -{cyclone (hammer)} acos {cyclone hammer math} -{cyclone (hammer)} active {cyclone gui hammer} -{cyclone (hammer)} anal {cyclone hammer misc} -{cyclone (hammer)} Append {control cyclone glue hammer} -{cyclone (hammer)} asin {cyclone hammer math} -{cyclone (hammer)} bangbang {control cyclone glue hammer} -{cyclone (hammer)} bondo {control cyclone glue hammer} -{cyclone (hammer)} Borax {connectivity cyclone hammer midi} -{cyclone (hammer)} Bucket {cyclone hammer misc} -{cyclone (hammer)} buddy {control cyclone glue hammer} -{cyclone (hammer)} capture {cyclone hammer misc} -{cyclone (hammer)} cartopol {cyclone hammer math} -{cyclone (hammer)} Clip {cyclone hammer math} -{cyclone (hammer)} coll {cyclone hammer misc} -{cyclone (hammer)} comment {cyclone gui hammer} -{cyclone (hammer)} cosh {cyclone hammer math} -{cyclone (hammer)} counter {control cyclone glue hammer} -{cyclone (hammer)} cycle {control cyclone glue hammer} -{cyclone (hammer)} decide {cyclone hammer misc} -{cyclone (hammer)} Decode {control cyclone glue hammer} -{cyclone (hammer)} drunk {cyclone hammer misc} -{cyclone (hammer)} flush {connectivity cyclone hammer midi} -{cyclone (hammer)} forward {control cyclone glue hammer} -{cyclone (hammer)} fromsymbol {control cyclone glue hammer} -{cyclone (hammer)} funbuff {control cyclone glue hammer} -{cyclone (hammer)} funnel {control cyclone glue hammer} -{cyclone (hammer)} gate {control cyclone glue hammer} -{cyclone (hammer)} grab {control cyclone glue hammer} -{cyclone (hammer)} Histo {cyclone hammer misc} -{cyclone (hammer)} iter {control cyclone glue hammer} -{cyclone (hammer)} match {control cyclone glue hammer} -{cyclone (hammer)} maximum {cyclone hammer math} -{cyclone (hammer)} mean {cyclone hammer math} -{cyclone (hammer)} midiflush {connectivity cyclone hammer midi} -{cyclone (hammer)} midiformat {connectivity cyclone hammer midi} -{cyclone (hammer)} midiparse {connectivity cyclone hammer midi} -{cyclone (hammer)} minimum {cyclone hammer math} -{cyclone (hammer)} mousefilter {cyclone gui hammer} -{cyclone (hammer)} MouseState {cyclone gui hammer} -{cyclone (hammer)} mtr {cyclone hammer misc} -{cyclone (hammer)} next {control cyclone glue hammer} -{cyclone (hammer)} offer {control cyclone glue hammer} -{cyclone (hammer)} onebang {control cyclone glue hammer} -{cyclone (hammer)} past {cyclone hammer math} -{cyclone (hammer)} Peak {cyclone hammer math} -{cyclone (hammer)} poltocar {cyclone hammer math} -{cyclone (hammer)} prepend {cyclone hammer math} -{cyclone (hammer)} prob {cyclone hammer misc} -{cyclone (hammer)} pv {control cyclone glue hammer} -{cyclone (hammer)} sinh {cyclone hammer math} -{cyclone (hammer)} speedlim {control cyclone glue hammer} -{cyclone (hammer)} spell {cyclone hammer misc} -{cyclone (hammer)} split {control cyclone glue hammer} -{cyclone (hammer)} spray {control cyclone glue hammer} -{cyclone (hammer)} sprintf {control cyclone glue hammer} -{cyclone (hammer)} substitute {control cyclone glue hammer} -{cyclone (hammer)} sustain {connectivity cyclone hammer midi} -{cyclone (hammer)} switch {control cyclone glue hammer} -{cyclone (hammer)} tanh {cyclone hammer math} -{cyclone (hammer)} thresh {cyclone hammer math} -{cyclone (hammer)} TogEdge {cyclone hammer math} -{cyclone (hammer)} tosymbol {control cyclone glue hammer} -{cyclone (hammer)} Trough {cyclone hammer math} -{cyclone (hammer)} universal {control cyclone glue hammer} -{cyclone (hammer)} urn {cyclone hammer math} -{cyclone (hammer)} Uzi {control cyclone glue hammer} -{cyclone (hammer)} xbendin {connectivity cyclone hammer midi} -{cyclone (hammer)} xbendout {connectivity cyclone hammer midi} -{cyclone (hammer)} xnotein {connectivity cyclone hammer midi} -{cyclone (hammer)} xnoteout {connectivity cyclone hammer midi} -{cyclone (hammer)} zl {cyclone hammer misc} -{cyclone (sickle)} abs~ {audio cyclone math sickle} -{cyclone (sickle)} acos~ {audio cyclone math sickle} -{cyclone (sickle)} allpass~ {audio cyclone filter sickle} -{cyclone (sickle)} asin~ {audio cyclone math sickle} -{cyclone (sickle)} asinh~ {audio cyclone math sickle} -{cyclone (sickle)} atan~ {audio cyclone math sickle} -{cyclone (sickle)} atan2~ {audio cyclone math sickle} -{cyclone (sickle)} atanh~ {audio cyclone math sickle} -{cyclone (sickle)} average~ {audio cyclone math sickle} -{cyclone (sickle)} avg~ {cyclone math sickle} -{cyclone (sickle)} bitand~ {audio cyclone math sickle} -{cyclone (sickle)} bitnot~ {audio cyclone math sickle} -{cyclone (sickle)} bitor~ {audio cyclone math sickle} -{cyclone (sickle)} bitshift~ {audio cyclone math sickle} -{cyclone (sickle)} bitxor~ {audio cyclone math sickle} -{cyclone (sickle)} buffir~ {audio cyclone filter sickle} -{cyclone (sickle)} capture~ {control cyclone glue sickle} -{cyclone (sickle)} cartopol~ {audio cyclone math sickle} -{cyclone (sickle)} change~ {audio cyclone math sickle} -{cyclone (sickle)} click~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} Clip~ {audio cyclone math sickle} -{cyclone (sickle)} comb~ {audio cyclone filter sickle} -{cyclone (sickle)} cosh~ {audio cyclone math sickle} -{cyclone (sickle)} cosx~ {audio cyclone math sickle} -{cyclone (sickle)} count~ {control cyclone glue sickle} -{cyclone (sickle)} curve~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} cycle~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} delay~ {audio cyclone delay sickle} -{cyclone (sickle)} delta~ {control cyclone glue sickle} -{cyclone (sickle)} deltaclip~ {audio cyclone math sickle} -{cyclone (sickle)} edge~ {audio cyclone math sickle} -{cyclone (sickle)} frameaccum~ {audio cyclone math sickle} -{cyclone (sickle)} framedelta~ {audio cyclone math sickle} -{cyclone (sickle)} index~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} kink~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} Line~ {control cyclone sickle time} -{cyclone (sickle)} linedrive {cyclone sickle unsorted} -{cyclone (sickle)} log~ {audio cyclone math sickle} -{cyclone (sickle)} lookup~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} lores~ {audio cyclone filter sickle} -{cyclone (sickle)} maximum~ {audio cyclone math sickle} -{cyclone (sickle)} minimum~ {audio cyclone math sickle} -{cyclone (sickle)} minmax~ {audio cyclone math sickle} -{cyclone (sickle)} mstosamps~ {audio cyclone math sickle} -{cyclone (sickle)} onepole~ {audio cyclone filter sickle} -{cyclone (sickle)} peakamp~ {audio cyclone math sickle} -{cyclone (sickle)} peek~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} phasewrap~ {audio cyclone math sickle} -{cyclone (sickle)} pink~ {audio cyclone sickle} -{cyclone (sickle)} play~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} poke~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} poltocar~ {audio cyclone math sickle} -{cyclone (sickle)} pong~ {audio cyclone math sickle} -{cyclone (sickle)} pow~ {audio cyclone math sickle} -{cyclone (sickle)} rampsmooth~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} rand~ {cyclone math sickle} -{cyclone (sickle)} record~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} reson~ {audio cyclone filter sickle} -{cyclone (sickle)} sah~ {control cyclone glue sickle} -{cyclone (sickle)} sampstoms~ {audio cyclone math sickle} -{cyclone (sickle)} Scope~ {cyclone gui sickle} -{cyclone (sickle)} sinh~ {audio cyclone math sickle} -{cyclone (sickle)} sinx~ {audio cyclone math sickle} -{cyclone (sickle)} slide~ {audio cyclone math sickle} -{cyclone (sickle)} Snapshot~ {control cyclone glue sickle} -{cyclone (sickle)} spike~ {audio cyclone math sickle} -{cyclone (sickle)} svf~ {audio cyclone filter sickle} -{cyclone (sickle)} tanh~ {audio cyclone math sickle} -{cyclone (sickle)} tanx~ {audio cyclone math sickle} -{cyclone (sickle)} train~ {audio cyclone sickle} -{cyclone (sickle)} trapezoid~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} triangle~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} vectral~ {audio cyclone math sickle} -{cyclone (sickle)} wave~ {and audio cyclone oscillators sickle tables} -{cyclone (sickle)} zerox~ {audio cyclone math sickle} -ekext cup {ekext unsorted} -ekext framescore~ {ekext unsorted} -ekext framespect~ {ekext unsorted} -ekext hssc~ {ekext unsorted} -ekext listmoses {ekext unsorted} -ekext maskxor {ekext unsorted} -ekext polymap {ekext unsorted} -ekext polystat {ekext unsorted} -ekext sieve {ekext unsorted} -ekext simile {ekext unsorted} -ekext simile~ {ekext unsorted} -ekext steady {ekext unsorted} -ekext voicing_detector~ {ekext unsorted} -ekext voicing_detector~test3 {ekext unsorted} -ekext zeroxpos~ {ekext unsorted} -fftease bthresher~ {audio fftease glue} -fftease burrow~ {audio fftease filters} -fftease cavoc~ {and audio fftease oscillators tables} -fftease cavoc27~ {and audio fftease oscillators tables} -fftease centerring~ {audio fftease filters} -fftease codepend~ {audio fftease filters} -fftease crossx~ {audio fftease filters} -fftease dentist~ {audio fftease filters} -fftease disarrain~ {audio fftease filters} -fftease disarray~ {audio fftease filters} -fftease drown~ {audio fftease filters} -fftease ether~ {audio fftease filters} -fftease mindwarp~ {audio fftease filters} -fftease morphine~ {audio fftease filters} -fftease multyq~ {audio fftease filters} -fftease presidency~ {audio fftease filters} -fftease pvcompand~ {audio fftease filters} -fftease pvgrain~ {audio fftease filters} -fftease pvharm~ {audio fftease filters} -fftease pvoc~ {audio fftease filters} -fftease pvtuner~ {audio fftease filters} -fftease pvwarp~ {audio fftease filters} -fftease reanimator~ {audio fftease filters} -fftease resent~ {audio fftease filters} -fftease residency~ {audio fftease filters} -fftease scrape~ {audio fftease filters} -fftease shapee~ {audio fftease filters} -fftease swinger~ {audio fftease filters} -fftease taint~ {audio fftease filters} -fftease thresher~ {audio fftease glue} -fftease vacancy~ {audio fftease filters} -fftease xsyn~ {audio fftease filters} -flatspace aenv~ {flatspace unsorted} -flatspace amp~ {flatspace unsorted} -flatspace arraysize {flatspace unsorted} -flatspace ascii0x2d0x3eint {flatspace unsorted} -flatspace atan2~ {flatspace unsorted} -flatspace attract1 {flatspace unsorted} -flatspace autoscale {flatspace unsorted} -flatspace bandpass {flatspace unsorted} -flatspace base {flatspace unsorted} -flatspace bdiag~ {flatspace unsorted} -flatspace beatpipe {flatspace unsorted} -flatspace bfft~ {flatspace unsorted} -flatspace biquadseries~ {flatspace unsorted} -flatspace bird {flatspace unsorted} -flatspace bitsplit~ {flatspace unsorted} -flatspace blocknorm~ {flatspace unsorted} -flatspace blocksize_in_ms {flatspace unsorted} -flatspace blosc~ {flatspace unsorted} -flatspace bmatrix~ {flatspace unsorted} -flatspace bufferoverride~ {flatspace unsorted} -flatspace button {flatspace unsorted} -flatspace buttongate {flatspace unsorted} -flatspace bwin~ {flatspace unsorted} -flatspace cheby~ {flatspace unsorted} -flatspace choice {flatspace unsorted} -flatspace classpath {flatspace unsorted} -flatspace clog~ {flatspace unsorted} -flatspace comport {flatspace unsorted} -flatspace cursor {flatspace unsorted} -flatspace debounce {flatspace unsorted} -flatspace deg2hid {flatspace unsorted} -flatspace deque {flatspace unsorted} -flatspace dist~ {flatspace unsorted} -flatspace dwt~ {flatspace unsorted} -flatspace dynwav~ {flatspace unsorted} -flatspace ead~ {flatspace unsorted} -flatspace eadsr~ {flatspace unsorted} -flatspace ear~ {flatspace unsorted} -flatspace eblosc~ {flatspace unsorted} -flatspace entry {flatspace unsorted} -flatspace envgen {flatspace unsorted} -flatspace equalizer {flatspace unsorted} -flatspace ev {flatspace unsorted} -flatspace ev_abs {flatspace unsorted} -flatspace ev_ff {flatspace unsorted} -flatspace ev_ff_status {flatspace unsorted} -flatspace ev_key {flatspace unsorted} -flatspace ev_led {flatspace unsorted} -flatspace ev_msc {flatspace unsorted} -flatspace ev_rel {flatspace unsorted} -flatspace ev_rep {flatspace unsorted} -flatspace ev_snd {flatspace unsorted} -flatspace ev_syn {flatspace unsorted} -flatspace failsafe {flatspace unsorted} -flatspace fdn~ {flatspace unsorted} -flatspace ff-autocenter {flatspace unsorted} -flatspace ff-constant {flatspace unsorted} -flatspace ff-friction {flatspace unsorted} -flatspace ff-gain {flatspace unsorted} -flatspace ff-periodic {flatspace unsorted} -flatspace ff-spring {flatspace unsorted} -flatspace ffpoly {flatspace unsorted} -flatspace fiddle~ {flatspace unsorted} -flatspace file_type {flatspace unsorted} -flatspace filterortho~ {flatspace unsorted} -flatspace float0x2d0x3eascii {flatspace unsorted} -flatspace folder_list {flatspace unsorted} -flatspace fwarp {flatspace unsorted} -flatspace gcanvas {flatspace unsorted} -flatspace getdir {flatspace unsorted} -flatspace gfsm {flatspace unsorted} -flatspace gfsm_alphabet {flatspace unsorted} -flatspace gfsm_automaton {flatspace unsorted} -flatspace gfsm_markov {flatspace unsorted} -flatspace gfsm_state {flatspace unsorted} -flatspace gid0x2d0x3egroup_name {flatspace unsorted} -flatspace gingerbreadman {flatspace unsorted} -flatspace group {flatspace unsorted} -flatspace group_name0x2d0x3egid {flatspace unsorted} -flatspace henon {flatspace unsorted} -flatspace hid {flatspace unsorted} -flatspace hid_average {flatspace unsorted} -flatspace hid_centered {flatspace unsorted} -flatspace hid_cube {flatspace unsorted} -flatspace hid_cuberoot {flatspace unsorted} -flatspace hid_exp {flatspace unsorted} -flatspace hid_graph {flatspace unsorted} -flatspace hid_invert {flatspace unsorted} -flatspace hid_log {flatspace unsorted} -flatspace hid_lowpass {flatspace unsorted} -flatspace hid_menu {flatspace unsorted} -flatspace hid_one2four {flatspace unsorted} -flatspace hid_one2three {flatspace unsorted} -flatspace hid_one2two {flatspace unsorted} -flatspace hid_polar {flatspace unsorted} -flatspace hid_rel2abs {flatspace unsorted} -flatspace hid_smooth {flatspace unsorted} -flatspace hid_spiral {flatspace unsorted} -flatspace hid_square {flatspace unsorted} -flatspace hid_squareroot {flatspace unsorted} -flatspace hid2deg {flatspace unsorted} -flatspace hid2rad {flatspace unsorted} -flatspace highpass {flatspace unsorted} -flatspace hlshelf {flatspace unsorted} -flatspace hopalong {flatspace unsorted} -flatspace hostname {flatspace unsorted} -flatspace ifeel {flatspace unsorted} -flatspace ikeda {flatspace unsorted} -flatspace image {flatspace unsorted} -flatspace import {flatspace unsorted} -flatspace ISOdate {flatspace unsorted} -flatspace ISOtime {flatspace unsorted} -flatspace joystick {flatspace unsorted} -flatspace junction~ {flatspace unsorted} -flatspace keyboard {flatspace unsorted} -flatspace keygate {flatspace unsorted} -flatspace latoocarfian {flatspace unsorted} -flatspace latoomutalpha {flatspace unsorted} -flatspace latoomutbeta {flatspace unsorted} -flatspace latoomutgamma {flatspace unsorted} -flatspace lattice~ {flatspace unsorted} -flatspace line3 {flatspace unsorted} -flatspace loop~ {flatspace unsorted} -flatspace lorenz {flatspace unsorted} -flatspace lowpass {flatspace unsorted} -flatspace lowshelf {flatspace unsorted} -flatspace lrshift~ {flatspace unsorted} -flatspace martin {flatspace unsorted} -flatspace martin-test {flatspace unsorted} -flatspace matrix~ {flatspace unsorted} -flatspace mixer~ {flatspace unsorted} -flatspace moog~ {flatspace unsorted} -flatspace mouse {flatspace unsorted} -flatspace notch {flatspace unsorted} -flatspace notescale {flatspace unsorted} -flatspace oggamp~ {flatspace unsorted} -flatspace oggcast~ {flatspace unsorted} -flatspace oggread~ {flatspace unsorted} -flatspace oggwrite~ {flatspace unsorted} -flatspace partconv~ {flatspace unsorted} -flatspace passwd {flatspace unsorted} -flatspace pdstring {flatspace unsorted} -flatspace permut~ {flatspace unsorted} -flatspace pi {flatspace unsorted} -flatspace pique {flatspace unsorted} -flatspace plugin~ {flatspace unsorted} -flatspace popcorn {flatspace unsorted} -flatspace popcorn-test {flatspace unsorted} -flatspace popen {flatspace unsorted} -flatspace popup {flatspace unsorted} -flatspace popup-gop {flatspace unsorted} -flatspace pso {flatspace unsorted} -flatspace pvoc~ {flatspace unsorted} -flatspace pwm {flatspace unsorted} -flatspace pwm~ {flatspace unsorted} -flatspace qmult~ {flatspace unsorted} -flatspace qnorm~ {flatspace unsorted} -flatspace quaruptwo {flatspace unsorted} -flatspace quaruptwo-test {flatspace unsorted} -flatspace rad2hid {flatspace unsorted} -flatspace ratio {flatspace unsorted} -flatspace readdir {flatspace unsorted} -flatspace resofilt~ {flatspace unsorted} -flatspace rlshift~ {flatspace unsorted} -flatspace rossler {flatspace unsorted} -flatspace sbosc~ {flatspace unsorted} -flatspace scrollgrid1D~ {flatspace unsorted} -flatspace serialctl {flatspace unsorted} -flatspace serialize {flatspace unsorted} -flatspace sfwrite~ {flatspace unsorted} -flatspace shell {flatspace unsorted} -flatspace silderh {flatspace unsorted} -flatspace ski {flatspace unsorted} -flatspace slider {flatspace unsorted} -flatspace split_my_msgs {flatspace unsorted} -flatspace split_path {flatspace unsorted} -flatspace sprinkler {flatspace unsorted} -flatspace standardmap {flatspace unsorted} -flatspace stat {flatspace unsorted} -flatspace stk {flatspace unsorted} -flatspace streamin~ {flatspace unsorted} -flatspace streamout~ {flatspace unsorted} -flatspace stripdir {flatspace unsorted} -flatspace susloop~ {flatspace unsorted} -flatspace svf~ {flatspace unsorted} -flatspace tabreadmix~ {flatspace unsorted} -flatspace ticker {flatspace unsorted} -flatspace toddle {flatspace unsorted} -flatspace uid0x2d0x3eusername {flatspace unsorted} -flatspace uname {flatspace unsorted} -flatspace username0x2d0x3euid {flatspace unsorted} -flatspace vbap {flatspace unsorted} -flatspace version {flatspace unsorted} -flatspace weightmap {flatspace unsorted} -flatspace xfm~ {flatspace unsorted} -flatspace zhzxh~ {flatspace unsorted} -flib flib {flib unsorted} -flib mfcc {flib unsorted} -flib wdv {flib unsorted} -freeverb~ freeverb~ {audio effects freeverb~} -gem 6GEMglTexCoord1fv {gem imaging opengl wrapper} -gem accumrotate {gem imaging manipulators} -gem alpha {gem imaging manipulators} -gem ambient {gem imaging manipulators} -gem ambientRGB {gem imaging manipulators} -gem camera {gem imaging manipulators} -gem circle {gem geos imaging} -gem color {gem imaging manipulators} -gem colorRGB {gem imaging manipulators} -gem colorSquare {gem geos imaging} -gem cone {gem geos imaging} -gem cube {gem geos imaging} -gem cuboid {gem geos imaging} -gem curve {gem geos imaging} -gem curve3d {gem geos imaging} -gem cylinder {gem geos imaging} -gem depth {gem imaging manipulators} -gem diffuse {gem imaging manipulators} -gem diffuseRGB {gem imaging manipulators} -gem disk {gem geos imaging} -gem emission {gem imaging manipulators} -gem emissionRGB {gem imaging manipulators} -gem GEMglAccum {gem imaging opengl wrapper} -gem GEMglAlphaFunc {gem imaging opengl wrapper} -gem GEMglBegin {gem imaging opengl wrapper} -gem GEMglBitmap {gem imaging opengl wrapper} -gem GEMglBlendFunc {gem imaging opengl wrapper} -gem GEMglCallList {gem imaging opengl wrapper} -gem GEMglClear {gem imaging opengl wrapper} -gem GEMglClearAccum {gem imaging opengl wrapper} -gem GEMglClearColor {gem imaging opengl wrapper} -gem GEMglClearDepth {gem imaging opengl wrapper} -gem GEMglClearIndex {gem imaging opengl wrapper} -gem GEMglClearStencil {gem imaging opengl wrapper} -gem GEMglClipPlane {gem imaging opengl wrapper} -gem GEMglColor3b {gem imaging opengl wrapper} -gem GEMglColor3bv {gem imaging opengl wrapper} -gem GEMglColor3d {gem imaging opengl wrapper} -gem GEMglColor3dv {gem imaging opengl wrapper} -gem GEMglColor3f {gem imaging opengl wrapper} -gem GEMglColor3fv {gem imaging opengl wrapper} -gem GEMglColor3i {gem imaging opengl wrapper} -gem GEMglColor3iv {gem imaging opengl wrapper} -gem GEMglColor3s {gem imaging opengl wrapper} -gem GEMglColor3sv {gem imaging opengl wrapper} -gem GEMglColor3ub {gem imaging opengl wrapper} -gem GEMglColor3ubv {gem imaging opengl wrapper} -gem GEMglColor3ui {gem imaging opengl wrapper} -gem GEMglColor3uiv {gem imaging opengl wrapper} -gem GEMglColor3us {gem imaging opengl wrapper} -gem GEMglColor3usv {gem imaging opengl wrapper} -gem GEMglColor4b {gem imaging opengl wrapper} -gem GEMglColor4bv {gem imaging opengl wrapper} -gem GEMglColor4d {gem imaging opengl wrapper} -gem GEMglColor4dv {gem imaging opengl wrapper} -gem GEMglColor4f {gem imaging opengl wrapper} -gem GEMglColor4fv {gem imaging opengl wrapper} -gem GEMglColor4i {gem imaging opengl wrapper} -gem GEMglColor4iv {gem imaging opengl wrapper} -gem GEMglColor4s {gem imaging opengl wrapper} -gem GEMglColor4sv {gem imaging opengl wrapper} -gem GEMglColor4ub {gem imaging opengl wrapper} -gem GEMglColor4ubv {gem imaging opengl wrapper} -gem GEMglColor4ui {gem imaging opengl wrapper} -gem GEMglColor4uiv {gem imaging opengl wrapper} -gem GEMglColor4us {gem imaging opengl wrapper} -gem GEMglColor4usv {gem imaging opengl wrapper} -gem GEMglColorMask {gem imaging opengl wrapper} -gem GEMglColorMaterial {gem imaging opengl wrapper} -gem GEMglCopyPixels {gem imaging opengl wrapper} -gem GEMglCullFace {gem imaging opengl wrapper} -gem GEMglDepthFunc {gem imaging opengl wrapper} -gem GEMglDepthMask {gem imaging opengl wrapper} -gem GEMglDepthRange {gem imaging opengl wrapper} -gem GEMglDisable {gem imaging opengl wrapper} -gem GEMglDrawBuffer {gem imaging opengl wrapper} -gem GEMglEdgeFlag {gem imaging opengl wrapper} -gem GEMglEnable {gem imaging opengl wrapper} -gem GEMglEnd {gem imaging opengl wrapper} -gem GEMglEndList {gem imaging opengl wrapper} -gem GEMglEvalCoord1d {gem imaging opengl wrapper} -gem GEMglEvalCoord1dv {gem imaging opengl wrapper} -gem GEMglEvalCoord1f {gem imaging opengl wrapper} -gem GEMglEvalCoord1fv {gem imaging opengl wrapper} -gem GEMglEvalCoord2d {gem imaging opengl wrapper} -gem GEMglEvalCoord2dv {gem imaging opengl wrapper} -gem GEMglEvalCoord2f {gem imaging opengl wrapper} -gem GEMglEvalCoord2fv {gem imaging opengl wrapper} -gem GEMglEvalMesh1 {gem imaging opengl wrapper} -gem GEMglEvalMesh2 {gem imaging opengl wrapper} -gem GEMglEvalPoint1 {gem imaging opengl wrapper} -gem GEMglEvalPoint2 {gem imaging opengl wrapper} -gem GEMglFeedbackBuffer {gem imaging opengl wrapper} -gem GEMglFinish {gem imaging opengl wrapper} -gem GEMglFlush {gem imaging opengl wrapper} -gem GEMglFogf {gem imaging opengl wrapper} -gem GEMglFogfv {gem imaging opengl wrapper} -gem GEMglFogi {gem imaging opengl wrapper} -gem GEMglFogiv {gem imaging opengl wrapper} -gem GEMglFrontFace {gem imaging opengl wrapper} -gem GEMglFrustum {gem imaging opengl wrapper} -gem GEMglGenLists {gem imaging opengl wrapper} -gem GEMglGetError {gem imaging opengl wrapper} -gem GEMglGetFloatv {gem imaging opengl wrapper} -gem GEMglGetMapdv {gem imaging opengl wrapper} -gem GEMglGetMapfv {gem imaging opengl wrapper} -gem GEMglGetMapiv {gem imaging opengl wrapper} -gem GEMglGetString {gem imaging opengl wrapper} -gem GEMglHint {gem imaging opengl wrapper} -gem GEMglIndexd {gem imaging opengl wrapper} -gem GEMglIndexdv {gem imaging opengl wrapper} -gem GEMglIndexf {gem imaging opengl wrapper} -gem GEMglIndexfv {gem imaging opengl wrapper} -gem GEMglIndexi {gem imaging opengl wrapper} -gem GEMglIndexiv {gem imaging opengl wrapper} -gem GEMglIndexMask {gem imaging opengl wrapper} -gem GEMglIndexs {gem imaging opengl wrapper} -gem GEMglIndexsv {gem imaging opengl wrapper} -gem GEMglInitNames {gem imaging opengl wrapper} -gem GEMglIsEnabled {gem imaging opengl wrapper} -gem GEMglIsList {gem imaging opengl wrapper} -gem GEMglLightf {gem imaging opengl wrapper} -gem GEMglLighti {gem imaging opengl wrapper} -gem GEMglLightModelf {gem imaging opengl wrapper} -gem GEMglLightModeli {gem imaging opengl wrapper} -gem GEMglLineStipple {gem imaging opengl wrapper} -gem GEMglLineWidth {gem imaging opengl wrapper} -gem GEMglLoadIdentity {gem imaging opengl wrapper} -gem GEMglLoadMatrixd {gem imaging opengl wrapper} -gem GEMglLoadMatrixf {gem imaging opengl wrapper} -gem GEMglLoadName {gem imaging opengl wrapper} -gem GEMglLogicOp {gem imaging opengl wrapper} -gem GEMglMap1d {gem imaging opengl wrapper} -gem GEMglMap1f {gem imaging opengl wrapper} -gem GEMglMap2d {gem imaging opengl wrapper} -gem GEMglMap2f {gem imaging opengl wrapper} -gem GEMglMapGrid1d {gem imaging opengl wrapper} -gem GEMglMapGrid1f {gem imaging opengl wrapper} -gem GEMglMapGrid2d {gem imaging opengl wrapper} -gem GEMglMapGrid2f {gem imaging opengl wrapper} -gem GEMglMaterialf {gem imaging opengl wrapper} -gem GEMglMateriali {gem imaging opengl wrapper} -gem GEMglMatrixMode {gem imaging opengl wrapper} -gem GEMglMultMatrixd {gem imaging opengl wrapper} -gem GEMglMultMatrixf {gem imaging opengl wrapper} -gem GEMglNewList {gem imaging opengl wrapper} -gem GEMglNormal3b {gem imaging opengl wrapper} -gem GEMglNormal3bv {gem imaging opengl wrapper} -gem GEMglNormal3d {gem imaging opengl wrapper} -gem GEMglNormal3dv {gem imaging opengl wrapper} -gem GEMglNormal3f {gem imaging opengl wrapper} -gem GEMglNormal3fv {gem imaging opengl wrapper} -gem GEMglNormal3i {gem imaging opengl wrapper} -gem GEMglNormal3iv {gem imaging opengl wrapper} -gem GEMglNormal3s {gem imaging opengl wrapper} -gem GEMglNormal3sv {gem imaging opengl wrapper} -gem GEMglOrtho {gem imaging opengl wrapper} -gem GEMglPassThrough {gem imaging opengl wrapper} -gem GEMglPixelStoref {gem imaging opengl wrapper} -gem GEMglPixelStorei {gem imaging opengl wrapper} -gem GEMglPixelTransferf {gem imaging opengl wrapper} -gem GEMglPixelTransferi {gem imaging opengl wrapper} -gem GEMglPixelZoom {gem imaging opengl wrapper} -gem GEMglPointSize {gem imaging opengl wrapper} -gem GEMglPolygonMode {gem imaging opengl wrapper} -gem GEMglPopAttrib {gem imaging opengl wrapper} -gem GEMglPopMatrix {gem imaging opengl wrapper} -gem GEMglPopName {gem imaging opengl wrapper} -gem GEMglPushAttrib {gem imaging opengl wrapper} -gem GEMglPushMatrix {gem imaging opengl wrapper} -gem GEMglPushName {gem imaging opengl wrapper} -gem GEMglRasterPos2d {gem imaging opengl wrapper} -gem GEMglRasterPos2dv {gem imaging opengl wrapper} -gem GEMglRasterPos2f {gem imaging opengl wrapper} -gem GEMglRasterPos2fv {gem imaging opengl wrapper} -gem GEMglRasterPos2i {gem imaging opengl wrapper} -gem GEMglRasterPos2iv {gem imaging opengl wrapper} -gem GEMglRasterPos2s {gem imaging opengl wrapper} -gem GEMglRasterPos2sv {gem imaging opengl wrapper} -gem GEMglRasterPos3d {gem imaging opengl wrapper} -gem GEMglRasterPos3dv {gem imaging opengl wrapper} -gem GEMglRasterPos3f {gem imaging opengl wrapper} -gem GEMglRasterPos3fv {gem imaging opengl wrapper} -gem GEMglRasterPos3i {gem imaging opengl wrapper} -gem GEMglRasterPos3iv {gem imaging opengl wrapper} -gem GEMglRasterPos3s {gem imaging opengl wrapper} -gem GEMglRasterPos3sv {gem imaging opengl wrapper} -gem GEMglRasterPos4d {gem imaging opengl wrapper} -gem GEMglRasterPos4dv {gem imaging opengl wrapper} -gem GEMglRasterPos4f {gem imaging opengl wrapper} -gem GEMglRasterPos4fv {gem imaging opengl wrapper} -gem GEMglRasterPos4i {gem imaging opengl wrapper} -gem GEMglRasterPos4iv {gem imaging opengl wrapper} -gem GEMglRasterPos4s {gem imaging opengl wrapper} -gem GEMglRasterPos4sv {gem imaging opengl wrapper} -gem GEMglRectd {gem imaging opengl wrapper} -gem GEMglRectf {gem imaging opengl wrapper} -gem GEMglRecti {gem imaging opengl wrapper} -gem GEMglRects {gem imaging opengl wrapper} -gem GEMglRenderMode {gem imaging opengl wrapper} -gem GEMglRotated {gem imaging opengl wrapper} -gem GEMglScaled {gem imaging opengl wrapper} -gem GEMglScalef {gem imaging opengl wrapper} -gem GEMglScissor {gem imaging opengl wrapper} -gem GEMglSelectBuffer {gem imaging opengl wrapper} -gem GEMglShadeModel {gem imaging opengl wrapper} -gem GEMglStencilFunc {gem imaging opengl wrapper} -gem GEMglStencilMask {gem imaging opengl wrapper} -gem GEMglStencilOp {gem imaging opengl wrapper} -gem GEMglTexCoord1d {gem imaging opengl wrapper} -gem GEMglTexCoord1dv {gem imaging opengl wrapper} -gem GEMglTexCoord1f {gem imaging opengl wrapper} -gem GEMglTexCoord1i {gem imaging opengl wrapper} -gem GEMglTexCoord1iv {gem imaging opengl wrapper} -gem GEMglTexCoord1s {gem imaging opengl wrapper} -gem GEMglTexCoord1sv {gem imaging opengl wrapper} -gem GEMglTexCoord2d {gem imaging opengl wrapper} -gem GEMglTexCoord2dv {gem imaging opengl wrapper} -gem GEMglTexCoord2f {gem imaging opengl wrapper} -gem GEMglTexCoord2fv {gem imaging opengl wrapper} -gem GEMglTexCoord2i {gem imaging opengl wrapper} -gem GEMglTexCoord2iv {gem imaging opengl wrapper} -gem GEMglTexCoord2s {gem imaging opengl wrapper} -gem GEMglTexCoord2sv {gem imaging opengl wrapper} -gem GEMglTexCoord3d {gem imaging opengl wrapper} -gem GEMglTexCoord3dv {gem imaging opengl wrapper} -gem GEMglTexCoord3f {gem imaging opengl wrapper} -gem GEMglTexCoord3fv {gem imaging opengl wrapper} -gem GEMglTexCoord3i {gem imaging opengl wrapper} -gem GEMglTexCoord3iv {gem imaging opengl wrapper} -gem GEMglTexCoord3s {gem imaging opengl wrapper} -gem GEMglTexCoord3sv {gem imaging opengl wrapper} -gem GEMglTexCoord4d {gem imaging opengl wrapper} -gem GEMglTexCoord4dv {gem imaging opengl wrapper} -gem GEMglTexCoord4f {gem imaging opengl wrapper} -gem GEMglTexCoord4fv {gem imaging opengl wrapper} -gem GEMglTexCoord4i {gem imaging opengl wrapper} -gem GEMglTexCoord4iv {gem imaging opengl wrapper} -gem GEMglTexCoord4s {gem imaging opengl wrapper} -gem GEMglTexCoord4sv {gem imaging opengl wrapper} -gem GEMglTexEnvf {gem imaging opengl wrapper} -gem GEMglTexEnvi {gem imaging opengl wrapper} -gem GEMglTexGend {gem imaging opengl wrapper} -gem GEMglTexGenf {gem imaging opengl wrapper} -gem GEMglTexGenfv {gem imaging opengl wrapper} -gem GEMglTexGeni {gem imaging opengl wrapper} -gem GEMglTexParameterf {gem imaging opengl wrapper} -gem GEMglTexParameteri {gem imaging opengl wrapper} -gem GEMglTranslated {gem imaging opengl wrapper} -gem GEMglTranslatef {gem imaging opengl wrapper} -gem GEMglVertex2d {gem imaging opengl wrapper} -gem GEMglVertex2dv {gem imaging opengl wrapper} -gem GEMglVertex2f {gem imaging opengl wrapper} -gem GEMglVertex2fv {gem imaging opengl wrapper} -gem GEMglVertex2i {gem imaging opengl wrapper} -gem GEMglVertex2iv {gem imaging opengl wrapper} -gem GEMglVertex2s {gem imaging opengl wrapper} -gem GEMglVertex2sv {gem imaging opengl wrapper} -gem GEMglVertex3d {gem imaging opengl wrapper} -gem GEMglVertex3dv {gem imaging opengl wrapper} -gem GEMglVertex3f {gem imaging opengl wrapper} -gem GEMglVertex3fv {gem imaging opengl wrapper} -gem GEMglVertex3i {gem imaging opengl wrapper} -gem GEMglVertex3iv {gem imaging opengl wrapper} -gem GEMglVertex3s {gem imaging opengl wrapper} -gem GEMglVertex3sv {gem imaging opengl wrapper} -gem GEMglVertex4d {gem imaging opengl wrapper} -gem GEMglVertex4dv {gem imaging opengl wrapper} -gem GEMglVertex4f {gem imaging opengl wrapper} -gem GEMglVertex4fv {gem imaging opengl wrapper} -gem GEMglVertex4i {gem imaging opengl wrapper} -gem GEMglVertex4iv {gem imaging opengl wrapper} -gem GEMglVertex4s {gem imaging opengl wrapper} -gem GEMglVertex4sv {gem imaging opengl wrapper} -gem GEMglViewport {gem imaging opengl wrapper} -gem gemhead {controls gem imaging} -gem gemkeyboard {controls gem imaging} -gem gemkeyname {controls gem imaging} -gem gemmouse {controls gem imaging} -gem gemorb {controls gem imaging} -gem gemtablet {controls gem imaging} -gem gemwin {controls gem imaging} -gem imageVert {gem geos imaging} -gem light {gem imaging nongeos} -gem linear_path {gem imaging manipulators} -gem model {gem geos imaging} -gem multimodel {gem geos imaging} -gem newWave {gem geos imaging} -gem ortho {gem imaging manipulators} -gem part_color {gem imaging particles} -gem part_damp {gem imaging particles} -gem part_draw {gem imaging particles} -gem part_follow {gem imaging particles} -gem part_gravity {gem imaging particles} -gem part_head {gem imaging particles} -gem part_info {gem imaging particles} -gem part_killold {gem imaging particles} -gem part_killslow {gem imaging particles} -gem part_orbitpoint {gem imaging particles} -gem part_render {gem imaging particles} -gem part_size {gem imaging particles} -gem part_source {gem imaging particles} -gem part_targetcolor {gem imaging particles} -gem part_targetsize {gem imaging particles} -gem part_velocity {gem imaging particles} -gem part_vertex {gem imaging particles} -gem pix_2grey {gem imaging pixes} -gem pix_a_2grey {gem imaging pixes} -gem pix_add {gem imaging pixes} -gem pix_aging {gem imaging pixes} -gem pix_alpha {gem imaging pixes} -gem pix_background {gem imaging pixes} -gem pix_backlight {gem imaging pixes} -gem pix_biquad {gem imaging pixes} -gem pix_bitmask {gem imaging pixes} -gem pix_blob {gem imaging pixes} -gem pix_buf {gem imaging pixes} -gem pix_buffer {gem imaging pixes} -gem pix_buffer_read {gem imaging pixes} -gem pix_buffer_write {gem imaging pixes} -gem pix_chroma_key {gem imaging pixes} -gem pix_color {gem imaging pixes} -gem pix_coloralpha {gem imaging pixes} -gem pix_colormatrix {gem imaging pixes} -gem pix_colorreduce {gem imaging pixes} -gem pix_composite {gem imaging pixes} -gem pix_convolve {gem imaging pixes} -gem pix_coordinate {gem imaging pixes} -gem pix_crop {gem imaging pixes} -gem pix_curve {gem imaging pixes} -gem pix_data {gem imaging pixes} -gem pix_delay {gem imaging pixes} -gem pix_diff {gem imaging pixes} -gem pix_dot {gem imaging pixes} -gem pix_draw {gem imaging pixes} -gem pix_dump {gem imaging pixes} -gem pix_duotone {gem imaging pixes} -gem pix_film {gem imaging pixes} -gem pix_flip {gem imaging pixes} -gem pix_gain {gem imaging pixes} -gem pix_grey {gem imaging pixes} -gem pix_halftone {gem imaging pixes} -gem pix_histo {gem imaging pixes} -gem pix_hsv2rgb {gem imaging pixes} -gem pix_image {gem imaging pixes} -gem pix_imageInPlace {gem imaging pixes} -gem pix_info {gem imaging pixes} -gem pix_invert {gem imaging pixes} -gem pix_kaleidoscope {gem imaging pixes} -gem pix_levels {gem imaging pixes} -gem pix_lumaoffset {gem imaging pixes} -gem pix_mask {gem imaging pixes} -gem pix_metaimage {gem imaging pixes} -gem pix_mix {gem imaging pixes} -gem pix_motionblur {gem imaging pixes} -gem pix_movement {gem imaging pixes} -gem pix_movie {gem imaging pixes} -gem pix_multiimage {gem imaging pixes} -gem pix_multiply {gem imaging pixes} -gem pix_normalize {gem imaging pixes} -gem pix_offset {gem imaging pixes} -gem pix_pix2sig~ {gem imaging pixes} -gem pix_posterize {gem imaging pixes} -gem pix_puzzle {gem imaging pixes} -gem pix_rds {gem imaging pixes} -gem pix_rectangle {gem imaging pixes} -gem pix_refraction {gem imaging pixes} -gem pix_resize {gem imaging pixes} -gem pix_rgb2hsv {gem imaging pixes} -gem pix_rgba {gem imaging pixes} -gem pix_roll {gem imaging pixes} -gem pix_rtx {gem imaging pixes} -gem pix_scanline {gem imaging pixes} -gem pix_set {gem imaging pixes} -gem pix_sig2pix~ {gem imaging pixes} -gem pix_snap {gem imaging pixes} -gem pix_snap2tex {gem imaging pixes} -gem pix_subtract {gem imaging pixes} -gem pix_takealpha {gem imaging pixes} -gem pix_texture {gem imaging pixes} -gem pix_threshold {gem imaging pixes} -gem pix_tIIR {gem imaging pixes} -gem pix_video {gem imaging pixes} -gem pix_write {gem imaging pixes} -gem pix_zoom {gem imaging pixes} -gem polygon {gem geos imaging} -gem polygon_smooth {gem imaging manipulators} -gem primTri {gem geos imaging} -gem rectangle {gem geos imaging} -gem ripple {gem geos imaging} -gem rotate {gem imaging manipulators} -gem rotateXYZ {gem imaging manipulators} -gem rubber {gem geos imaging} -gem scale {gem imaging manipulators} -gem scaleXYZ {gem imaging manipulators} -gem separator {gem imaging manipulators} -gem shininess {gem imaging manipulators} -gem slideSquare {gem geos imaging} -gem specular {gem imaging manipulators} -gem specularRGB {gem imaging manipulators} -gem sphere {gem geos imaging} -gem spline_path {gem imaging manipulators} -gem square {gem geos imaging} -gem teapot {gem geos imaging} -gem text2d {gem geos imaging} -gem text3d {gem geos imaging} -gem textextruded {gem geos imaging} -gem textoutline {gem geos imaging} -gem translate {gem imaging manipulators} -gem translateXYZ {gem imaging manipulators} -gem triangle {gem geos imaging} -gem world_light {gem imaging nongeos} -ggee atan2~ {audio ggee math} -ggee atan2~ {audio ggee math} -ggee bandpass {ggee unsorted} -ggee button {ggee unsorted} -ggee envgen {ggee unsorted} -ggee envgen {ggee storage tables} -ggee equalizer {ggee unsorted} -ggee {exp~ log~} {audio ggee math} -ggee gcanvas {ggee unsorted} -ggee getdir {ggee unsorted} -ggee highpass {ggee unsorted} -ggee hlshelf {ggee unsorted} -ggee image {ggee unsorted} -ggee lowpass {ggee unsorted} -ggee lowshelf {ggee unsorted} -ggee mixer~ {ggee unsorted} -ggee moog~ {ggee unsorted} -ggee notch {ggee unsorted} -ggee prepent {control ggee glue shortcut} -ggee rtout {ggee misc} -ggee scrolllist {control ggee glue} -ggee serialctl {ggee unsorted} -ggee serialize {ggee unsorted} -ggee serialize {control ggee glue} -ggee sfwrite~ {ggee unsorted} -ggee shell {ggee unsorted} -ggee silderh {ggee unsorted} -ggee sinh {ggee misc} -ggee slider {control ggee glue} -ggee slider {ggee unsorted} -ggee state {control ggee glue} -ggee stk {ggee unsorted} -ggee streamin~ {ggee unsorted} -ggee streamout~ {ggee unsorted} -ggee stripdir {ggee misc} -ggee stripdir {ggee unsorted} -ggee ticker {control ggee glue} -ggee ticker {ggee unsorted} -ggee toddle {control ggee glue} -ggee toddle {ggee unsorted} -ggee unwonk {control ggee glue} -ggee vbap {ggee misc} -ggee vbap {ggee unsorted} -ggee wintablet {ggee misc} -hardware lanbox {hardware unsorted} -hardware memPIO {hardware unsorted} -hardware multio {hardware unsorted} -hcs ascii0x2d0x3eint {hcs unsorted} -hcs autoscale {hcs unsorted} -hcs blocksize_in_ms {hcs unsorted} -hcs classpath {hcs unsorted} -hcs cursor {hcs unsorted} -hcs debounce {hcs unsorted} -hcs file_type {hcs unsorted} -hcs float0x2d0x3eascii {hcs unsorted} -hcs folder_list {hcs unsorted} -hcs gid0x2d0x3egroup_name {hcs unsorted} -hcs group {hcs unsorted} -hcs group_name0x2d0x3egid {hcs unsorted} -hcs hostname {hcs unsorted} -hcs ifeel {hcs unsorted} -hcs import {hcs unsorted} -hcs ISOdate {hcs unsorted} -hcs ISOtime {hcs unsorted} -hcs passwd {hcs unsorted} -hcs pi {hcs unsorted} -hcs pwm {hcs unsorted} -hcs pwm~ {hcs unsorted} -hcs split_my_msgs {hcs unsorted} -hcs split_path {hcs unsorted} -hcs stat {hcs unsorted} -hcs uid0x2d0x3eusername {hcs unsorted} -hcs uname {hcs unsorted} -hcs username0x2d0x3euid {hcs unsorted} -hcs version {hcs unsorted} -hid buttongate {hid unsorted} -hid deg2hid {hid unsorted} -hid ev_ff_status {hid unsorted} -hid hid {hid unsorted} -hid hid_average {hid unsorted} -hid hid_centered {hid unsorted} -hid hid_cube {hid unsorted} -hid hid_cuberoot {hid unsorted} -hid hid_exp {hid unsorted} -hid hid_graph {hid unsorted} -hid hid_invert {hid unsorted} -hid hid_log {hid unsorted} -hid hid_lowpass {hid unsorted} -hid hid_menu {hid unsorted} -hid hid_one2four {hid unsorted} -hid hid_one2three {hid unsorted} -hid hid_one2two {hid unsorted} -hid hid_polar {hid unsorted} -hid hid_rel2abs {hid unsorted} -hid hid_smooth {hid unsorted} -hid hid_spiral {hid unsorted} -hid hid_square {hid unsorted} -hid hid_squareroot {hid unsorted} -hid hid2deg {hid unsorted} -hid hid2rad {hid unsorted} -hid joystick {hid unsorted} -hid keyboard {hid unsorted} -hid keygate {hid unsorted} -hid mouse {hid unsorted} -hid notescale {hid unsorted} -hid rad2hid {hid unsorted} -iem_ambi ambi_decode3 {iem_ambi unsorted} -iem_ambi ambi_encode {iem_ambi unsorted} -iem_ambi ambi_rot {iem_ambi unsorted} -iem_bin_ambi ambi_reduced_decode_fft2 {iem_bin_ambi unsorted} -iem_bin_ambi ambi_reduced_decode_fir2 {iem_bin_ambi unsorted} -iemgui knob {control glue iemgui} -iemlib 1p1z {control float glue iemlib operating} -iemlib add2_comma {iemlib misc} -iemlib addl~ {arithmetic audio iemlib math signals} -iemlib any {control glue iemlib} -iemlib ap1~ {audio filters iemlib} -iemlib ap2~ {audio filters iemlib} -iemlib bng {gui iemlib} -iemlib bpe {iemlib misc} -iemlib bpq2~ {audio filters iemlib} -iemlib bpw2~ {audio filters iemlib} -iemlib bsq2~ {audio filters iemlib} -iemlib bsw2~ {audio filters iemlib} -iemlib cnv {gui iemlib} -iemlib db2v {control float glue iemlib operating} -iemlib dbtofad {control conversion float glue iemlib operating} -iemlib default {control iemlib init} -iemlib divl~ {arithmetic audio iemlib math signals} -iemlib dollarg {control iemlib init} -iemlib dsp {control iemlib init} -iemlib exp_inc {control iemlib time} -iemlib f2note {iemlib misc} -iemlib fade~ {audio iemlib misc} -iemlib fadtodb {control conversion float glue iemlib operating} -iemlib fadtorms {control conversion float glue iemlib operating} -iemlib {filter~ } {audio filters iemlib} -iemlib FIR~ {audio filters iemlib} -iemlib float24 {control iemlib init} -iemlib for++ {control iemlib time} -iemlib gate {iemlib misc} -iemlib hdl {gui iemlib} -iemlib hml_shelf~ {audio filters iemlib} -iemlib hp1~ {audio filters iemlib} -iemlib hp10_bess~ {audio filters iemlib} -iemlib hp10_butt~ {audio filters iemlib} -iemlib hp10_cheb~ {audio filters iemlib} -iemlib hp10_crit~ {audio filters iemlib} -iemlib hp2_bess~ {audio filters iemlib} -iemlib hp2_butt~ {audio filters iemlib} -iemlib hp2_cheb~ {audio filters iemlib} -iemlib hp2_crit~ {audio filters iemlib} -iemlib hp2~ {audio filters iemlib} -iemlib hp3_bess~ {audio filters iemlib} -iemlib hp3_butt~ {audio filters iemlib} -iemlib hp3_cheb~ {audio filters iemlib} -iemlib hp3_crit~ {audio filters iemlib} -iemlib hp4_bess~ {audio filters iemlib} -iemlib hp4_butt~ {audio filters iemlib} -iemlib hp4_cheb~ {audio filters iemlib} -iemlib hp4_crit~ {audio filters iemlib} -iemlib hp5_bess~ {audio filters iemlib} -iemlib hp5_butt~ {audio filters iemlib} -iemlib hp5_cheb~ {audio filters iemlib} -iemlib hp5_crit~ {audio filters iemlib} -iemlib hp6_bess~ {audio filters iemlib} -iemlib hp6_butt~ {audio filters iemlib} -iemlib hp6_cheb~ {audio filters iemlib} -iemlib hp6_crit~ {audio filters iemlib} -iemlib hp7_bess~ {audio filters iemlib} -iemlib hp7_butt~ {audio filters iemlib} -iemlib hp7_cheb~ {audio filters iemlib} -iemlib hp7_crit~ {audio filters iemlib} -iemlib hp8_bess~ {audio filters iemlib} -iemlib hp8_butt~ {audio filters iemlib} -iemlib hp8_cheb~ {audio filters iemlib} -iemlib hp8_crit~ {audio filters iemlib} -iemlib hp9_bess~ {audio filters iemlib} -iemlib hp9_butt~ {audio filters iemlib} -iemlib hp9_cheb~ {audio filters iemlib} -iemlib hp9_crit~ {audio filters iemlib} -iemlib hradio {gui iemlib} -iemlib hsl {gui iemlib} -iemlib iem_append {control glue iemlib} -iemlib iem_blocksize~ {audio iemlib misc} -iemlib iem_i_route {iemlib misc} -iemlib iem_pbank_csv {control glue handling iemlib parameter} -iemlib iem_prepend {control glue iemlib} -iemlib iem_receive {iemlib misc} -iemlib iem_route {iemlib misc} -iemlib iem_samplerate~ {audio iemlib misc} -iemlib iem_sel_any {iemlib misc} -iemlib iem_send {iemlib misc} -iemlib init {control iemlib init} -iemlib int_fract~ {audio iemlib misc} -iemlib LFO_noise~ {audio iemlib misc} -iemlib list2send {control glue handling iemlib parameter} -iemlib lp1_t~ {audio filters iemlib} -iemlib lp1~ {audio filters iemlib} -iemlib lp10_bess~ {audio filters iemlib} -iemlib lp10_butt~ {audio filters iemlib} -iemlib lp10_cheb~ {audio filters iemlib} -iemlib lp10_crit~ {audio filters iemlib} -iemlib lp2_bess~ {audio filters iemlib} -iemlib lp2_butt~ {audio filters iemlib} -iemlib lp2_cheb~ {audio filters iemlib} -iemlib lp2_crit~ {audio filters iemlib} -iemlib lp2~ {audio filters iemlib} -iemlib lp3_bess~ {audio filters iemlib} -iemlib lp3_butt~ {audio filters iemlib} -iemlib lp3_cheb~ {audio filters iemlib} -iemlib lp3_crit~ {audio filters iemlib} -iemlib lp4_bess~ {audio filters iemlib} -iemlib lp4_butt~ {audio filters iemlib} -iemlib lp4_cheb~ {audio filters iemlib} -iemlib lp4_crit~ {audio filters iemlib} -iemlib lp5_bess~ {audio filters iemlib} -iemlib lp5_butt~ {audio filters iemlib} -iemlib lp5_cheb~ {audio filters iemlib} -iemlib lp5_crit~ {audio filters iemlib} -iemlib lp6_bess~ {audio filters iemlib} -iemlib lp6_butt~ {audio filters iemlib} -iemlib lp6_cheb~ {audio filters iemlib} -iemlib lp6_crit~ {audio filters iemlib} -iemlib lp7_bess~ {audio filters iemlib} -iemlib lp7_butt~ {audio filters iemlib} -iemlib lp7_cheb~ {audio filters iemlib} -iemlib lp7_crit~ {audio filters iemlib} -iemlib lp8_bess~ {audio filters iemlib} -iemlib lp8_butt~ {audio filters iemlib} -iemlib lp8_cheb~ {audio filters iemlib} -iemlib lp8_crit~ {audio filters iemlib} -iemlib lp9_bess~ {audio filters iemlib} -iemlib lp9_butt~ {audio filters iemlib} -iemlib lp9_cheb~ {audio filters iemlib} -iemlib lp9_crit~ {audio filters iemlib} -iemlib maverage~ {audio filters iemlib} -iemlib mergefilename {control glue iemlib operating symbol} -iemlib modulo_counter {control iemlib time} -iemlib mp3play~ {audio iemlib misc} -iemlib mull~ {arithmetic audio iemlib math signals} -iemlib nbx {gui iemlib} -iemlib once {control iemlib init} -iemlib para_bp2~ {audio filters iemlib} -iemlib peakenv~ {audio iemlib misc} -iemlib pink~ {audio iemlib misc} -iemlib post_netreceive {iemlib obsolete} -iemlib pre_inlet {iemlib misc} -iemlib pre_netsend {iemlib obsolete} -iemlib prepend_ascii {iemlib misc} -iemlib prvu~ {audio converters iemlib} -iemlib pvu~ {audio converters iemlib} -iemlib rbpq2~ {audio filters iemlib} -iemlib rbpw2~ {audio filters iemlib} -iemlib receive2list {control glue handling iemlib parameter} -iemlib rmstofad {control conversion float glue iemlib operating} -iemlib round_zero {control float glue iemlib operating} -iemlib round~ {audio iemlib misc} -iemlib rvu~ {audio converters iemlib} -iemlib sin_phase~ {audio iemlib misc} -iemlib soundfile_info {iemlib misc} -iemlib speedlim {control float glue iemlib operating} -iemlib split {control float glue iemlib operating} -iemlib split3 {control float glue iemlib operating} -iemlib splitfilename {control glue iemlib operating symbol} -iemlib stripfilename {control glue iemlib operating symbol} -iemlib subl~ {arithmetic audio iemlib math signals} -iemlib t3_bpe {control iemlib time} -iemlib t3_delay {control iemlib time} -iemlib t3_line~ {audio iemlib time trigger} -iemlib t3_metro {control iemlib time} -iemlib t3_sig~ {audio iemlib time trigger} -iemlib t3_timer {control iemlib time} -iemlib tgl {gui iemlib} -iemlib toggle_mess {iemlib misc} -iemlib transf_fader {control float glue iemlib operating} -iemlib unsig~ {audio converters iemlib} -iemlib unsymbol {control glue iemlib operating symbol} -iemlib v2db {control float glue iemlib operating} -iemlib vcf_bp2~ {audio filters iemlib} -iemlib vcf_bp4~ {audio filters iemlib} -iemlib vcf_bp6~ {audio filters iemlib} -iemlib vcf_bp8~ {audio filters iemlib} -iemlib vcf_hp2~ {audio filters iemlib} -iemlib vcf_hp4~ {audio filters iemlib} -iemlib vcf_hp6~ {audio filters iemlib} -iemlib vcf_hp8~ {audio filters iemlib} -iemlib vcf_lp2~ {audio filters iemlib} -iemlib vcf_lp4~ {audio filters iemlib} -iemlib vcf_lp6~ {audio filters iemlib} -iemlib vcf_lp8~ {audio filters iemlib} -iemlib vcf_rbp2~ {audio filters iemlib} -iemlib vcf_rbp4~ {audio filters iemlib} -iemlib vcf_rbp6~ {audio filters iemlib} -iemlib vcf_rbp8~ {audio filters iemlib} -iemlib vdl {gui iemlib} -iemlib vradio {gui iemlib} -iemlib vsl {gui iemlib} -iemlib vu {gui iemlib} -iemlib wrap {control float glue iemlib operating} -jasch_lib _ {jasch_lib unsorted} -jasch_lib detox {connectivity html jasch_lib xml} -jmmmp -dsp {jmmmp unsorted} -jmmmp bcf2000 {jmmmp unsorted} -jmmmp clock {jmmmp unsorted} -jmmmp datei-l {jmmmp unsorted} -jmmmp datei-o {jmmmp unsorted} -jmmmp datei-r {jmmmp unsorted} -jmmmp datei-w {jmmmp unsorted} -jmmmp dsp01 {jmmmp unsorted} -jmmmp f+ {jmmmp unsorted} -jmmmp file {jmmmp unsorted} -jmmmp lbang {jmmmp unsorted} -jmmmp m-i {jmmmp unsorted} -jmmmp maat~ {jmmmp unsorted} -jmmmp mat~ {jmmmp unsorted} -jmmmp met~ {jmmmp unsorted} -jmmmp metrum {jmmmp unsorted} -jmmmp mk {jmmmp unsorted} -jmmmp oscD {jmmmp unsorted} -jmmmp oscS {jmmmp unsorted} -jmmmp snaps~ {jmmmp unsorted} -jmmmp stoppuhr {jmmmp unsorted} -jmmmp tastin {jmmmp unsorted} -keyboardkeys keybang {keyboardkeys unsorted} -keyboardkeys keytoggle {keyboardkeys unsorted} -keyboardkeys keyupdown {keyboardkeys unsorted} -la-kitchen amplitude_n {la-kitchen unsorted} -la-kitchen autocal {la-kitchen unsorted} -la-kitchen catch_extremum {la-kitchen unsorted} -la-kitchen catch_extremum2 {la-kitchen unsorted} -la-kitchen change_n {la-kitchen unsorted} -la-kitchen count_n {la-kitchen unsorted} -la-kitchen debounce {la-kitchen unsorted} -la-kitchen debounce_b {la-kitchen unsorted} -la-kitchen fir_filter {la-kitchen unsorted} -la-kitchen fir_hip_n {la-kitchen unsorted} -la-kitchen fir_mean_n {la-kitchen unsorted} -la-kitchen iir_hip {la-kitchen unsorted} -la-kitchen iir_lop {la-kitchen unsorted} -la-kitchen last_n {la-kitchen unsorted} -la-kitchen last_n_matrix {la-kitchen unsorted} -la-kitchen list2matcol {la-kitchen unsorted} -la-kitchen max_n {la-kitchen unsorted} -la-kitchen min_n {la-kitchen unsorted} -la-kitchen one_n {la-kitchen unsorted} -la-kitchen seuil_n {la-kitchen unsorted} -la-kitchen zero_n {la-kitchen unsorted} -list-abs compare-any {list-abs unsorted} -list-abs last-x {list-abs testtag unsorted} -list-abs list-abs {list-abs unsorted} -list-abs list-accum {list-abs unsorted} -list-abs list-add {list-abs unsorted} -list-abs list-apply {list-abs unsorted} -list-abs list-centroid {list-abs unsorted} -list-abs list-clip {list-abs unsorted} -list-abs list-compare {list-abs unsorted} -list-abs list-delete {list-abs unsorted} -list-abs list-dotprod {list-abs unsorted} -list-abs list-drip {list-abs unsorted} -list-abs list-dripslow {list-abs unsorted} -list-abs list-emath {list-abs unsorted} -list-abs list-enumerate {list-abs unsorted} -list-abs list-equalize {list-abs unsorted} -list-abs list-extend {list-abs unsorted} -list-abs list-fifo {list-abs unsorted} -list-abs list-filter {list-abs unsorted} -list-abs list-find {list-abs unsorted} -list-abs list-geometric-mean {list-abs unsorted} -list-abs list-harmonic-mean {list-abs unsorted} -list-abs list-idx {list-abs unsorted} -list-abs list-insert {list-abs unsorted} -list-abs list-inter {list-abs unsorted} -list-abs list-inter-many {list-abs unsorted} -list-abs list-l2s {list-abs unsorted} -list-abs list-lastx {list-abs unsorted} -list-abs list-len {list-abs unsorted} -list-abs list-lifo {list-abs unsorted} -list-abs list-makefilename {list-abs unsorted} -list-abs list-map {list-abs unsorted} -list-abs list-map2 {list-abs unsorted} -list-abs list-math {list-abs unsorted} -list-abs list-mean {list-abs unsorted} -list-abs list-minmax {list-abs unsorted} -list-abs list-moses {list-abs unsorted} -list-abs list-mult {list-abs unsorted} -list-abs list-normalize {list-abs unsorted} -list-abs list-onearg {list-abs unsorted} -list-abs list-reduce {list-abs unsorted} -list-abs list-replace {list-abs unsorted} -list-abs list-rev {list-abs unsorted} -list-abs list-rot {list-abs unsorted} -list-abs list-round {list-abs unsorted} -list-abs list-seek {list-abs unsorted} -list-abs list-sieve {list-abs unsorted} -list-abs list-splat {list-abs unsorted} -list-abs list-sub {list-abs unsorted} -list-abs list-tabdump {list-abs unsorted} -list-abs list-unitvec {list-abs unsorted} -list-abs OSCprepend {list-abs unsorted} -list-abs prepent {list-abs unsorted} -list-abs sroute {list-abs unsorted} -list-abs take-two {list-abs unsorted} -list-abs triple-scale {list-abs unsorted} -mapping amplitude_n {mapping unsorted} -mapping autoscale {mapping unsorted} -mapping breakpoint {mapping unsorted} -mapping buttongate {mapping unsorted} -mapping bytemask {mapping unsorted} -mapping correlation {mapping unsorted} -mapping curve {mapping unsorted} -mapping curve_exp {mapping unsorted} -mapping curve_fade {mapping unsorted} -mapping curve_graph {mapping unsorted} -mapping curve_log {mapping unsorted} -mapping debounce {mapping unsorted} -mapping debytemask {mapping unsorted} -mapping degrees0x2d0x3emapping {mapping unsorted} -mapping delay_n {mapping unsorted} -mapping desegment {mapping unsorted} -mapping desegment12 {mapping unsorted} -mapping desegment3 {mapping unsorted} -mapping desegment4 {mapping unsorted} -mapping diff_n {mapping unsorted} -mapping disjoin {mapping unsorted} -mapping distance {mapping unsorted} -mapping distance_n {mapping unsorted} -mapping distance2d {mapping unsorted} -mapping downsample {mapping unsorted} -mapping env {mapping unsorted} -mapping env- {mapping unsorted} -mapping env+ {mapping unsorted} -mapping fir {mapping unsorted} -mapping gaussian {mapping unsorted} -mapping hysteresis {mapping unsorted} -mapping iir {mapping unsorted} -mapping join {mapping unsorted} -mapping keygate {mapping unsorted} -mapping last_n {mapping unsorted} -mapping listto {mapping unsorted} -mapping local_max {mapping unsorted} -mapping local_min {mapping unsorted} -mapping lop {mapping unsorted} -mapping mapping0x2d0x3edegrees {mapping unsorted} -mapping mapping0x2d0x3eradians {mapping unsorted} -mapping max_n {mapping unsorted} -mapping mean_n {mapping unsorted} -mapping median {mapping unsorted} -mapping median_3 {mapping unsorted} -mapping median_5 {mapping unsorted} -mapping median_7 {mapping unsorted} -mapping median_n {mapping unsorted} -mapping min_n {mapping unsorted} -mapping multi_slider {mapping unsorted} -mapping nl {mapping unsorted} -mapping notescale {mapping unsorted} -mapping oscillo {mapping unsorted} -mapping pmfilter {mapping unsorted} -mapping pmfilter_2d {mapping unsorted} -mapping pmfilter_3d {mapping unsorted} -mapping pmstring_1d {mapping unsorted} -mapping polar {mapping unsorted} -mapping radians0x2d0x3emapping {mapping unsorted} -mapping resample {mapping unsorted} -mapping reverse {mapping unsorted} -mapping rnd-stat {mapping unsorted} -mapping segment {mapping unsorted} -mapping segment4 {mapping unsorted} -mapping sinusoid {mapping unsorted} -mapping spiral {mapping unsorted} -mapping split_n {mapping unsorted} -mapping stepper {mapping unsorted} -mapping stepper12 {mapping unsorted} -mapping stepper24 {mapping unsorted} -mapping stream_check {mapping unsorted} -mapping test_n {mapping unsorted} -mapping timeroll {mapping unsorted} -mapping tolist {mapping unsorted} -mapping upsample {mapping unsorted} -mapping wave {mapping unsorted} -mapping wave_loop {mapping unsorted} -markex abs~ {markex unsorted} -markex alternate {markex unsorted} -markex average {markex unsorted} -markex change {markex unsorted} -markex counter {markex unsorted} -markex hsv2rgb {markex unsorted} -markex invert {markex unsorted} -markex multiselect {markex unsorted} -markex oneshot {markex unsorted} -markex randomF {markex unsorted} -markex reson~ {markex unsorted} -markex rgb2hsv {markex unsorted} -markex strcat {markex unsorted} -markex tripleLine {markex unsorted} -markex tripleRand {markex unsorted} -markex vector- {markex unsorted} -markex vector* {markex unsorted} -markex vector/ {markex unsorted} -markex vector+ {markex unsorted} -markex vectorpack {markex unsorted} -maxlib allow {control glue maxlib} -maxlib arbran {math maxlib} -maxlib arraycopy {buffer maxlib storage} -maxlib average {math maxlib} -maxlib beat {analysis audio maxlib} -maxlib beta {generators math maxlib number random} -maxlib bilex {generators math maxlib number random} -maxlib borax {analysis audio maxlib} -maxlib cauchy {generators math maxlib number random} -maxlib chord {analysis audio maxlib} -maxlib delta {math maxlib} -maxlib dist {connectivity control maxlib misc network remote} -maxlib divide {math maxlib} -maxlib divmod {math maxlib} -maxlib edge {analysis audio maxlib} -maxlib expo {generators math maxlib number random} -maxlib fifo {buffer maxlib storage} -maxlib gauss {generators math maxlib number random} -maxlib gestalt {analysis audio maxlib} -maxlib history {math maxlib} -maxlib ignore {control maxlib time} -maxlib iso {control maxlib time} -maxlib lifo {buffer maxlib storage} -maxlib limit {maxlib unsorted} -maxlib linear {generators math maxlib number random} -maxlib listfifo {buffer maxlib storage} -maxlib listfunnel {edit list maxlib storage} -maxlib match {math maxlib} -maxlib minus {math maxlib} -maxlib mlife {maxlib misc other/experimental} -maxlib multi {math maxlib} -maxlib nchange {control glue maxlib} -maxlib netclient {connectivity control maxlib misc network remote} -maxlib netdist {connectivity control maxlib misc network remote} -maxlib netrec {connectivity control maxlib misc network remote} -maxlib netserver {connectivity control maxlib misc network remote} -maxlib nroute {control glue maxlib} -maxlib pitch {analysis audio maxlib} -maxlib plus {math maxlib} -maxlib poisson {generators math maxlib number random} -maxlib pong {control maxlib time} -maxlib pulse {control maxlib time} -maxlib remote {connectivity control maxlib misc network remote} -maxlib rewrap {math maxlib} -maxlib rythm {analysis audio maxlib} -maxlib scale {math maxlib} -maxlib score {analysis audio maxlib} -maxlib speedlim {control maxlib time} -maxlib split {checking control glue maxlib routing} -maxlib step {control maxlib time} -maxlib subst {maxlib misc other/experimental} -maxlib sync {control maxlib time} -maxlib temperature {control maxlib time} -maxlib tilt {analysis audio maxlib} -maxlib timebang {control maxlib time} -maxlib unroute {control glue maxlib} -maxlib urn {math maxlib} -maxlib velocity {control maxlib time} -maxlib weibull {math maxlib} -maxlib wrap {math maxlib} -memento careGUI {memento unsorted} -memento careOSC {memento unsorted} -memento commun {memento unsorted} -memento originator {memento unsorted} -mjlib {# about} {math mjlib} -mjlib marimba~ {and audio mjlib oscillators tables} -mjlib metroplus {control mjlib time} -mjlib monorhythm {control mjlib time} -mjlib n2m {math mjlib} -mjlib pin~ {audio filters mjlib} -mjlib prob {control mjlib time} -motex getenv {misc motex} -motex ln~ {audio math motex} -motex pan~ {audio filters motex} -motex pansig~ {audio filters motex} -motex pol2rec~ {audio math motex} -motex polygate~ {audio glue motex} -motex rec2pol~ {audio math motex} -motex shuffle {math motex} -motex system {misc motex} -mrpeach midifile {mrpeach unsorted} -mrpeach packOSC {mrpeach unsorted} -mrpeach routeOSC {mrpeach unsorted} -mrpeach sqosc~ {mrpeach unsorted} -mrpeach tcpclient {mrpeach unsorted} -mrpeach tcpreceive {mrpeach unsorted} -mrpeach tcpsend {mrpeach unsorted} -mrpeach tcpserver {mrpeach unsorted} -mrpeach udpreceive {mrpeach unsorted} -mrpeach udpsend {mrpeach unsorted} -nqpoly~ nqpoly~ {nqpoly~ unsorted} -nqpoly4 nqpoly4 {nqpoly4 unsorted} -nusmuk additive {nusmuk unsorted} -nusmuk between {nusmuk unsorted} -nusmuk distortion {nusmuk unsorted} -nusmuk lfo {nusmuk unsorted} -nusmuk many_bang {nusmuk unsorted} -nusmuk oscillo {nusmuk unsorted} -nusmuk rnd_metro {nusmuk unsorted} -nusmuk spatialisation {nusmuk unsorted} -oscx dumpOSC {connectivity osc oscx} -oscx OSC {connectivity osc oscx} -oscx OSCroute {connectivity osc oscx} -oscx sendOSC {connectivity osc oscx} -pan equal_power_pan~ {pan unsorted} -pan gogins_pan~ {pan unsorted} -pan gpan~ {pan unsorted} -pan linear_pan~ {pan unsorted} -pan square_root_pan~ {pan unsorted} -pd-lib - {math pd-lib} -pd-lib -~ {audio math pd-lib} -pd-lib != {math pd-lib} -pd-lib * {math pd-lib} -pd-lib *~ {audio math pd-lib} -pd-lib / {math pd-lib} -pd-lib /~ {audio math pd-lib} -pd-lib & {math pd-lib} -pd-lib && {math pd-lib} -pd-lib % {math pd-lib} -pd-lib + {math pd-lib} -pd-lib +~ {audio math pd-lib} -pd-lib < {math pd-lib} -pd-lib << {math pd-lib} -pd-lib <= {math pd-lib} -pd-lib == {math pd-lib} -pd-lib > {math pd-lib} -pd-lib >= {math pd-lib} -pd-lib >> {math pd-lib} -pd-lib | {math pd-lib} -pd-lib || {math pd-lib} -pd-lib abs {math pd-lib} -pd-lib adc~ {audio glue pd-lib} -pd-lib append {accessing data gui pd-lib} -pd-lib atan {math pd-lib} -pd-lib atan2 {math pd-lib} -pd-lib bag {misc pd-lib} -pd-lib bang {control glue pd-lib} -pd-lib bang~ {audio glue pd-lib} -pd-lib bendin {connectivity midi pd-lib} -pd-lib bendout {connectivity midi pd-lib} -pd-lib biquad~ {audio filters pd-lib} -pd-lib block~ {audio glue pd-lib} -pd-lib bp~ {audio filters pd-lib} -pd-lib catch~ {audio glue pd-lib} -pd-lib change {control glue pd-lib} -pd-lib clip~ {audio math pd-lib} -pd-lib cos {math pd-lib} -pd-lib cos~ {and audio oscillators pd-lib tables} -pd-lib cpole~ {audio filters pd-lib} -pd-lib cputime {control pd-lib time} -pd-lib ctlin {connectivity midi pd-lib} -pd-lib ctlout {connectivity midi pd-lib} -pd-lib czero_rev~ {audio filters pd-lib} -pd-lib czero~ {audio filters pd-lib} -pd-lib dac~ {audio glue pd-lib} -pd-lib dbtopow {conversion math pd-lib} -pd-lib dbtopow~ {audio conversion math pd-lib} -pd-lib dbtorms {conversion math pd-lib} -pd-lib dbtorms~ {audio conversion math pd-lib} -pd-lib declare {misc pd-lib} -pd-lib delay {control pd-lib time} -pd-lib delread~ {audio delay pd-lib} -pd-lib delwrite~ {audio delay pd-lib} -pd-lib div {math pd-lib} -pd-lib drawcurve {data gui pd-lib templates} -pd-lib drawnumber {data gui pd-lib templates} -pd-lib drawpolygon {data gui pd-lib templates} -pd-lib element {accessing data gui pd-lib} -pd-lib env~ {audio filters pd-lib} -pd-lib exp {math pd-lib} -pd-lib fft~ {audio math pd-lib} -pd-lib filledcurve {data gui pd-lib templates} -pd-lib filledpolygon {data gui pd-lib templates} -pd-lib float {control glue pd-lib} -pd-lib framp~ {audio math pd-lib} -pd-lib ftom {conversion math midi pd-lib} -pd-lib ftom~ {audio conversion math midi pd-lib} -pd-lib get {accessing data gui pd-lib} -pd-lib getsize {accessing data gui pd-lib} -pd-lib hip~ {audio filters pd-lib} -pd-lib ifft~ {audio math pd-lib} -pd-lib inlet {control pd-lib subwindows} -pd-lib inlet~ {control pd-lib subwindows} -pd-lib int {control glue pd-lib} -pd-lib key {misc pd-lib} -pd-lib keyname {misc pd-lib} -pd-lib keyup {misc pd-lib} -pd-lib line {control pd-lib time} -pd-lib line~ {audio glue pd-lib} -pd-lib {list append} {lists pd-lib storage} -pd-lib {list prepend} {lists pd-lib storage} -pd-lib {list split} {lists pd-lib storage} -pd-lib {list trim} {lists pd-lib storage} -pd-lib loadbang {misc pd-lib} -pd-lib log {math pd-lib} -pd-lib lop~ {audio filters pd-lib} -pd-lib makefilename {control glue pd-lib} -pd-lib makenote {connectivity midi pd-lib} -pd-lib max {math pd-lib} -pd-lib max~ {audio math pd-lib} -pd-lib metro {control pd-lib time} -pd-lib midiin {connectivity midi pd-lib} -pd-lib midiout {connectivity midi pd-lib} -pd-lib min {math pd-lib} -pd-lib min~ {audio math pd-lib} -pd-lib mod {math pd-lib} -pd-lib moses {control glue pd-lib} -pd-lib mtof {conversion math midi pd-lib} -pd-lib mtof~ {audio conversion math midi pd-lib} -pd-lib namecanvas {obsolete pd-lib} -pd-lib netreceive {connectivity network pd-lib} -pd-lib netsend {connectivity network pd-lib} -pd-lib noise~ {audio filters pd-lib} -pd-lib notein {connectivity midi pd-lib} -pd-lib noteout {connectivity midi pd-lib} -pd-lib openpanel {misc pd-lib} -pd-lib osc~ {and audio oscillators pd-lib tables} -pd-lib outlet {control pd-lib subwindows} -pd-lib outlet~ {control pd-lib subwindows} -pd-lib pack {control glue pd-lib} -pd-lib pd {control pd-lib subwindows} -pd-lib pgmin {connectivity midi pd-lib} -pd-lib pgmout {connectivity midi pd-lib} -pd-lib phasor~ {and audio oscillators pd-lib tables} -pd-lib pipe {control pd-lib time} -pd-lib plot {data gui pd-lib templates} -pd-lib pointer {accessing data gui pd-lib} -pd-lib poly {misc pd-lib} -pd-lib polytouchin {connectivity midi pd-lib} -pd-lib polytouchout {connectivity midi pd-lib} -pd-lib pow {math pd-lib} -pd-lib powtodb {conversion math pd-lib} -pd-lib powtodb~ {audio conversion math pd-lib} -pd-lib print {control glue pd-lib} -pd-lib print~ {audio filters pd-lib} -pd-lib q8_rsqrt~ {audio math pd-lib} -pd-lib q8_sqrt~ {audio math pd-lib} -pd-lib qlist {misc pd-lib sequencer storage} -pd-lib random {math pd-lib} -pd-lib readsf~ {audio glue pd-lib} -pd-lib realtime {control pd-lib time} -pd-lib receive {control glue pd-lib} -pd-lib receive~ {audio glue pd-lib} -pd-lib rfft~ {audio math pd-lib} -pd-lib rifft~ {audio math pd-lib} -pd-lib rmstodb {conversion math pd-lib} -pd-lib rmstodb~ {audio conversion math pd-lib} -pd-lib route {control glue pd-lib} -pd-lib rpole~ {audio filters pd-lib} -pd-lib rzero_rev~ {audio filters pd-lib} -pd-lib rzero~ {audio filters pd-lib} -pd-lib samphold~ {audio filters pd-lib} -pd-lib samplerate~ {audio glue pd-lib} -pd-lib savepanel {misc pd-lib} -pd-lib scalar {obsolete pd-lib} -pd-lib scope {obsolete pd-lib} -pd-lib select {control glue pd-lib} -pd-lib send {control glue pd-lib} -pd-lib send~ {audio glue pd-lib} -pd-lib serial {misc pd-lib} -pd-lib set {accessing data gui pd-lib} -pd-lib setsize {accessing data gui pd-lib} -pd-lib sig~ {audio glue pd-lib} -pd-lib sin {math pd-lib} -pd-lib snapshot~ {audio glue pd-lib} -pd-lib soundfiler {pd-lib storage tables} -pd-lib spigot {control glue pd-lib} -pd-lib sqrt {math pd-lib} -pd-lib stripnote {connectivity midi pd-lib} -pd-lib struct {data gui pd-lib templates} -pd-lib sublist {accessing data gui pd-lib} -pd-lib swap {control glue pd-lib} -pd-lib switch~ {audio glue pd-lib} -pd-lib symbol {control glue pd-lib} -pd-lib sysexin {connectivity midi pd-lib} -pd-lib table {control pd-lib subwindows} -pd-lib tabosc4~ {and audio oscillators pd-lib tables} -pd-lib tabplay~ {and audio oscillators pd-lib tables} -pd-lib tabread {pd-lib storage tables} -pd-lib tabread~ {and audio oscillators pd-lib tables} -pd-lib tabread4 {pd-lib storage tables} -pd-lib tabread4~ {and audio oscillators pd-lib tables} -pd-lib tabreceive~ {and audio oscillators pd-lib tables} -pd-lib tabsend~ {and audio oscillators pd-lib tables} -pd-lib tabwrite {pd-lib storage tables} -pd-lib tabwrite~ {and audio oscillators pd-lib tables} -pd-lib tan {math pd-lib} -pd-lib template {obsolete pd-lib} -pd-lib textfile {io pd-lib storage} -pd-lib threshold~ {audio glue pd-lib} -pd-lib throw~ {audio glue pd-lib} -pd-lib timer {control pd-lib time} -pd-lib touchin {connectivity midi pd-lib} -pd-lib touchout {connectivity midi pd-lib} -pd-lib trigger {control glue pd-lib} -pd-lib unpack {control glue pd-lib} -pd-lib until {control glue pd-lib} -pd-lib value {control glue pd-lib} -pd-lib vcf~ {audio filters pd-lib} -pd-lib vd~ {audio delay pd-lib} -pd-lib vsnapshot~ {audio glue pd-lib} -pd-lib wrap~ {audio math pd-lib} -pd-lib writesf~ {audio glue pd-lib} -pddp +pager {pddp unsorted} -pddp dsp {pddp unsorted} -pddp open {pddp unsorted} -pddp print {pddp unsorted} -pddp print_long {pddp unsorted} -pdjimmies zerocross~ {audio glue pdjimmies} -pdjimmies zscale {math pdjimmies} -{pdmtl abstractions} 2d.angle {2d abstraction edit math pdmtl} -{pdmtl abstractions} 2d.angle.line {2d abstraction edit math pdmtl} -{pdmtl abstractions} 2d.distance {2d abstraction edit math pdmtl} -{pdmtl abstractions} 2d.ratio {2d abstraction edit math pdmtl} -{pdmtl abstractions} 3d.distance {3d abstraction edit math pdmtl} -{pdmtl abstractions} 3d.pan.tilt {3d abstraction edit math pdmtl} -{pdmtl abstractions} anal.center {abstraction anal edit misc pdmtl} -{pdmtl abstractions} anal.change~ {abstraction anal edit misc pdmtl} -{pdmtl abstractions} anal.scope_~ {abstraction anal edit misc pdmtl} -{pdmtl abstractions} anal.sig_~ {abstraction anal edit misc pdmtl} -{pdmtl abstractions} anal.sign {abstraction anal edit misc pdmtl} -{pdmtl abstractions} anal.spectrum_~ {abstraction anal edit misc pdmtl} -{pdmtl abstractions} anal.vu_~ {abstraction anal edit misc pdmtl} -{pdmtl abstractions} convert.2list {abstraction control convert edit list pdmtl wrapper} -{pdmtl abstractions} convert.ascii2pd {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.binary2byte {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.bpm2freq {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.bpm2ms {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.byte2binary {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.degree2radiant {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.fps2ms {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.frames2smpte {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.hex2dec {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.hsv2rgb {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.int2digits {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.lightfreq2wave {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.lightwave2freq {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.list2symbol {abstraction control convert edit list2symbol pdmtl wrapper zexy} -{pdmtl abstractions} convert.m2speed {abstraction control convert edit midi note pdmtl} -{pdmtl abstractions} convert.ms2bpm {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.ms2fps {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.ms2freq {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.ms2smp {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.ms2time {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.num2rgb {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.pd2ascii {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.rgb2hsv {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.rgb2num {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.sig2float~ {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.smp2bpm {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.smp2freq {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.smp2mem {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.smp2ms {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.smp2time {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.smpte2frames {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.sound.freq2wave {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.sound.wave2freq {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.spaces2 {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.speed2m {abstraction control convert edit midi note pdmtl} -{pdmtl abstractions} convert.symbol2chars {abstraction control convert edit pdmtl} -{pdmtl abstractions} convert.symbol2list {abstraction control convert edit iem pdmtl splitfilename symbol2list wrapper zexy} -{pdmtl abstractions} convert.time2ms {abstraction control convert edit pdmtl} -{pdmtl abstractions} count.accum {abstraction accum control count edit pdmtl} -{pdmtl abstractions} count.iter {abstraction control count edit pdmtl} -{pdmtl abstractions} count.modulo {abstraction control count edit pdmtl} -{pdmtl abstractions} count.timed {abstraction control count edit pdmtl} -{pdmtl abstractions} count.up&down {abstraction control count edit pdmtl} -{pdmtl abstractions} data.floats {abstraction data edit pdmtl storage} -{pdmtl abstractions} data.matrix {abstraction data edit pdmtl storage} -{pdmtl abstractions} data.save.msg {abstraction data edit pdmtl storage} -{pdmtl abstractions} file.audio.info {abstraction edit file pdmtl soundfile_info storage wrapper} -{pdmtl abstractions} file.browser_ {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.folder {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.folder.dump {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.folder.panel {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.open.msg {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.path.current {absolute abstraction edit file path pdmtl relative storage} -{pdmtl abstractions} file.path.explode {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.path.merge {abstraction edit file iemlib mergefilename pdmtl storage wrapper} -{pdmtl abstractions} file.path.parent {absolute abstraction edit file path pdmtl relative storage} -{pdmtl abstractions} file.path.split {abstraction edit file pdmtl split_path storage wrapper} -{pdmtl abstractions} file.path.split.extension {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.path.top {absolute abstraction edit file path pdmtl relative storage} -{pdmtl abstractions} file.path.type {abstraction edit file pdmtl storage} -{pdmtl abstractions} file.type {abstraction edit file pdmtl storage} -{pdmtl abstractions} flow.@parse {abstraction control dollarg edit flow pdmtl} -{pdmtl abstractions} flow.any {abstraction control edit flow iem iem_anything pdmtl wrapper} -{pdmtl abstractions} flow.ford {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.gun {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.hold~ {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.in.betweens {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.iter {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.once {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.pre.op {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.prepend {abstraction argument conditional control edit flow list pdmtl prepend type wrapper} -{pdmtl abstractions} flow.receive {abstraction control deprecated edit flow pdmtl} -{pdmtl abstractions} flow.send {abstraction control deprecated edit flow pdmtl} -{pdmtl abstractions} flow.smooth {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.smooth~ {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.speed.fixed {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.speed.limit {abstraction control edit flow limit pdmtl speed} -{pdmtl abstractions} flow.split {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.till.done {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.value.change {abstraction control edit flow pdmtl} -{pdmtl abstractions} flow.wrap~ {abstraction control edit flow pdmtl} -{pdmtl abstractions} fx.biquad.reverb~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.body.resonance~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.cm.reverb~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.delay~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.dist~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.echo~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.eq_~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.gain~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.gate.noise_~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.gate.noise~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.limiter~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.material~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} fx.punch~ {abstraction audio edit fx pdmtl} -{pdmtl abstractions} gems.alpha.mode {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.bars.ntsc {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.color.offset {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.curve.n {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.depth {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.duplicate {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.fit {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.fit.scale {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.get.average.color {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.gl.def {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.glsl.shader {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.i.circle {abstraction edit gems gems.win imaging osxbug pdmtl} -{pdmtl abstractions} gems.images {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.layer {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.light {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.loop {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.mixmode {abstraction deprecated edit gems imaging pdmtl} -{pdmtl abstractions} gems.mouse {abstraction edit gems imaging mouse pdmtl wrapper} -{pdmtl abstractions} gems.movies {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.movies2 {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.multi.crop {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.multi.cube {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.polygon.n {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.scope.geos~ {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.scope~ {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.sobel {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.text {@rguments abstraction edit gem gems imaging pdmtl text3d wrapper} -{pdmtl abstractions} gems.vu~ {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.win {@rguments abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gems.win.feedback {abstraction edit gems imaging pdmtl} -{pdmtl abstractions} gui.browser {abstraction edit gui internal pdmtl} -{pdmtl abstractions} gui.button.color {abstraction edit gui pdmtl} -{pdmtl abstractions} gui.label {abstraction edit gui pdmtl} -{pdmtl abstractions} {gui.popup } {abstraction edit gui pdmtl} -{pdmtl abstractions} init.check.unique {abstraction control edit init pdmtl} -{pdmtl abstractions} init.df {abstraction control edit init pdmtl} -{pdmtl abstractions} init.dollar.zero.top {abstraction control edit init pdmtl} -{pdmtl abstractions} init.ds {abstraction control edit init pdmtl} -{pdmtl abstractions} init.lb {abstraction control edit init pdmtl} -{pdmtl abstractions} init.ldf {abstraction control edit init pdmtl} -{pdmtl abstractions} init.lf {abstraction control edit init pdmtl} -{pdmtl abstractions} init.ls {abstraction control edit init pdmtl} -{pdmtl abstractions} init.post.dollarg {abstraction control edit flow.@parse init pdmtl} -{pdmtl abstractions} input.color.grid_ {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.double.click {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.grid_ {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.hsv_ {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.key.name.learn {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.key.r {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.key.text {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.min.max_ {abstraction edit gui input pdmtl} -{pdmtl abstractions} input.piano_ {@rguments abstraction edit gop gui input pdmtl} -{pdmtl abstractions} list.abs {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.avg {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.bool2pos {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.build {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.cog {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.concatenate {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.contains {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.cut.up {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.cycle {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.delay {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.delete {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.element {abstraction edit list negative packel pdmtl storage wrapper zexy} -{pdmtl abstractions} list.for.each {abstraction alias edit list list.op pdmtl storage} -{pdmtl abstractions} list.last.x {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.length {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.make {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.min.max {abstraction edit list minmax pdmtl storage wrapper zexy} -{pdmtl abstractions} list.op {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.op2 {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.q {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.q.man {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.repack.indexed {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.repetitions.count {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.repetitions.remove {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.reverse {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.speed.limit {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.split {abstraction edit list pdmtl storage} -{pdmtl abstractions} list.sum {abstraction edit list pdmtl storage sum wrapper zexy} -{pdmtl abstractions} list.trim {abstraction edit list pdmtl storage trim wrapper} -{pdmtl abstractions} list.unfold {abstraction drip edit list pdmtl storage wrapper zexy} -{pdmtl abstractions} {list.wait } {abstraction edit list pdmtl storage} -{pdmtl abstractions} math.f.mod {abstraction edit math pdmtl} -{pdmtl abstractions} math.power.of {abstraction edit math pdmtl} -{pdmtl abstractions} midi.chord.guess {abstraction connectivity edit midi pdmtl} -{pdmtl abstractions} midi.note.close {abstraction connectivity edit float midi monophonic pdmtl trigger} -{pdmtl abstractions} midi.note.split {abstraction connectivity edit midi pdmtl} -{pdmtl abstractions} mix.crossfade.stereo~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.crossfade~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.fade~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.nop~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.out_~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.pan.stereo~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.pan~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.switch.nice {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.switch.nice~ {abstraction audio edit mix pdmtl} -{pdmtl abstractions} mix.wet.stereo~ {abstraction audio edit internal mix pdmtl} -{pdmtl abstractions} mix.wet~ {abstraction audio edit internal mix pdmtl} -{pdmtl abstractions} musical.bars {abstraction pdmtl unsorted} -{pdmtl abstractions} musical.closest_note {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.closest.note {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.cycle5 {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.degree2chord {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.dodeca {abstraction audio edit musical note pdmtl serie} -{pdmtl abstractions} musical.fit {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.form {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.isosonic~ {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.m2harm {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.note.index {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.octava {abstraction audio edit musical pdmtl} -{pdmtl abstractions} musical.transpose {abstraction audio edit musical pdmtl} -{pdmtl abstractions} number.fibonacci {abstraction edit math number pdmtl} -{pdmtl abstractions} number.phi {abstraction edit math number pdmtl} -{pdmtl abstractions} number.pi {abstraction edit math number pdmtl} -{pdmtl abstractions} number.prime {abstraction edit math number pdmtl} -{pdmtl abstractions} number.round {abstraction edit math number pdmtl} -{pdmtl abstractions} random.delay {abstraction edit math pdmtl random} -{pdmtl abstractions} random.drunk {abstraction edit math pdmtl random} -{pdmtl abstractions} random.f {abstraction edit math pdmtl random} -{pdmtl abstractions} random.integer {abstraction edit math pdmtl random} -{pdmtl abstractions} random.markov.chain {abstraction edit math pdmtl random} -{pdmtl abstractions} random.offset {abstraction edit math pdmtl random} -{pdmtl abstractions} sample.adsr {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.adsr_ {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.bank {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.bounds {abstraction audio edit pdmtl sample sample_id} -{pdmtl abstractions} sample.bounds_ {abstraction audio edit gui pdmtl sample sample_id} -{pdmtl abstractions} sample.display_ {abstraction audio edit gui pdmtl sample sample_id} -{pdmtl abstractions} sample.drum.machine~ {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.filer {abstraction audio edit pdmtl sample sample_id} -{pdmtl abstractions} sample.generator {abstraction audio edit internal pdmtl sample sample_id} -{pdmtl abstractions} sample.groove.poly~ {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.groove~ {abstraction audio edit pdmtl sample sample_id wrapper xgroove~ xsample} -{pdmtl abstractions} sample.handler {abstraction audio edit internal pdmtl sample sample_id} -{pdmtl abstractions} sample.particular~ {abstraction audio edit pdmtl sample sample_id} -{pdmtl abstractions} sample.pitch {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.pitch_ {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.play~ {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.print {abstraction audio edit pdmtl sample sample_id} -{pdmtl abstractions} sample.r {abstraction audio edit pdmtl sample} -{pdmtl abstractions} sample.record~ {abstraction audio cyclone edit pdmtl record~ sample sample_id wrapper} -{pdmtl abstractions} sample.table {abstraction audio edit pdmtl sample} -{pdmtl abstractions} scale.3point {abstraction control edit pdmtl scale} -{pdmtl abstractions} scale.adaptive {abstraction control edit pdmtl scale} -{pdmtl abstractions} scale.linear {abstraction control edit pdmtl scale} -{pdmtl abstractions} scale.loga {abstraction control edit pdmtl scale} -{pdmtl abstractions} scale.symbol {abstraction control edit pdmtl scale} -{pdmtl abstractions} seq.8x8_ {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.biorythm~ {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.chords {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.every {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.liner {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.markov.machine {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.qtrack {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.tgl8_ {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.timing.master {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.timing.slave {abstraction control edit pdmtl seq} -{pdmtl abstractions} seq.tracker4 {abstraction control edit pdmtl seq} -{pdmtl abstractions} synth.additive12~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.adsr~ {abstraction audio edit midi.note.close pdmtl synth} -{pdmtl abstractions} synth.applause~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.beep~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.bell~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.blip~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.clap~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.colored.noise~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.crackles~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.cranks~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.creator~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.drips~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.dtmf.busy~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.dtmf.hand-up~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.dtmf.hurry.up~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.dtmf.number~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.dtmf.ring~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.frying~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.gun.gas~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.gun.shot~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.hissing~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.lightning~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.low.rumble~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.old.record~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.osc.square.pwm~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.rain~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.simple.osc~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.simple.phasor~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.switch~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} synth.wind~ {abstraction audio edit pdmtl synth} -{pdmtl abstractions} table.play~ {abstraction edit pdmtl storage table} -{pdmtl abstractions} table.read2 {abstraction edit pdmtl storage table} -{pdmtl abstractions} table.size {abstraction edit pdmtl storage table} -{pdmtl abstractions} table.write.next {abstraction edit pdmtl storage table} -{pdmtl abstractions} timing.chronometer {abstraction control edit pdmtl timing} -{pdmtl abstractions} timing.clocker {abstraction control edit pdmtl timing} -{pdmtl abstractions} timing.cues~ {abstraction control edit pdmtl timing} -{pdmtl abstractions} timing.curve~ {abstraction control curve~ cyclone edit pdmtl timing wrapper} -{pdmtl abstractions} timing.line~ {abstraction control edit pdmtl timing} -{pdmtl abstractions} timing.shuffled {abstraction control edit pdmtl timing} -{pdmtl abstractions} timing.tempo {abstraction control edit max pdmtl tempo timing} -{pdmtl abstractions} timing.tempo_ {abstraction control edit pdmtl timing} -pdogg oggamp~ {pdogg unsorted} -pdogg oggcast~ {pdogg unsorted} -pdogg oggread~ {pdogg unsorted} -pdogg oggwrite~ {pdogg unsorted} -pdp 3dp_blend {3d abstraction imaging opengl pdp} -pdp 3dp_dlist {3d imaging opengl pdp} -pdp 3dp_draw {3d imaging opengl pdp} -pdp 3dp_light {3d imaging opengl pdp} -pdp 3dp_mode {3d imaging opengl pdp} -pdp 3dp_mouserotate {3d abstraction imaging opengl pdp} -pdp 3dp_push {3d imaging opengl pdp} -pdp 3dp_snap {3d imaging opengl pdp} -pdp 3dp_toggle {3d imaging opengl pdp} -pdp 3dp_view {3d imaging opengl pdp} -pdp 3dp_windowcontext {3d imaging opengl pdp} -pdp pdp_abs {image imaging pdp processing} -pdp pdp_add {image imaging pdp processing} -pdp pdp_agc {abstraction image imaging pdp} -pdp pdp_alledge {abstraction image imaging pdp} -pdp pdp_and {image imaging pdp processing} -pdp pdp_bitdepth {image imaging pdp processing} -pdp pdp_bitmask {image imaging pdp processing} -pdp pdp_blur {abstraction image imaging pdp} -pdp pdp_blur_hor {abstraction image imaging pdp} -pdp pdp_blur_ver {abstraction image imaging pdp} -pdp pdp_bq {image imaging pdp processing} -pdp pdp_bqt {image imaging pdp processing} -pdp pdp_ca {automata cellular imaging libraries pdp pdp_scaf seperate} -pdp pdp_ca2image {automata cellular imaging libraries pdp pdp_scaf seperate} -pdp pdp_cheby {image imaging pdp processing} -pdp pdp_chrot {image imaging pdp processing} -pdp pdp_cog {image imaging pdp processing} -pdp pdp_constant {image imaging pdp processing} -pdp pdp_contrast {abstraction image imaging pdp} -pdp pdp_conv {image imaging pdp processing} -pdp pdp_conv_emboss {abstraction image imaging pdp} -pdp pdp_conv_sobel_edge {abstraction image imaging pdp} -pdp pdp_conv_sobel_hor {abstraction image imaging pdp} -pdp pdp_conv_sobel_ver {abstraction image imaging pdp} -pdp pdp_convert {imaging misc pdp} -pdp pdp_del {imaging misc pdp} -pdp pdp_description {imaging misc pdp} -pdp pdp_dither {abstraction image imaging pdp} -pdp pdp_flip_lr {image imaging pdp processing} -pdp pdp_flip_tb {image imaging pdp processing} -pdp pdp_gain3 {abstraction image imaging pdp} -pdp pdp_glx {i/o image imaging pdp} -pdp pdp_gradient {abstraction image imaging pdp} -pdp pdp_grey {image imaging pdp processing} -pdp pdp_grey2mask {image imaging pdp processing} -pdp pdp_hthresh {image imaging pdp processing} -pdp pdp_image2ca {automata cellular imaging libraries pdp pdp_scaf seperate} -pdp pdp_invert {abstraction image imaging pdp} -pdp pdp_loop {imaging misc pdp} -pdp pdp_m_+=mm {imaging matrix pdp} -pdp pdp_m_inverse {abstraction imaging matrix pdp} -pdp pdp_m_LU {imaging matrix pdp} -pdp pdp_m_LU_inverse {imaging matrix pdp} -pdp pdp_m_LU_solve {imaging matrix pdp} -pdp pdp_m_mm {imaging matrix pdp} -pdp pdp_m_mv {imaging matrix pdp} -pdp pdp_mix {image imaging pdp processing} -pdp pdp_mix2 {image imaging pdp processing} -pdp pdp_motion_blur {abstraction image imaging pdp} -pdp pdp_motion_phase {abstraction image imaging pdp} -pdp pdp_mul {image imaging pdp processing} -pdp pdp_noise {image imaging pdp processing} -pdp pdp_not {image imaging pdp processing} -pdp pdp_offset {abstraction image imaging pdp} -pdp pdp_or {image imaging pdp processing} -pdp pdp_phase {abstraction image imaging pdp} -pdp pdp_phase_hor {abstraction image imaging pdp} -pdp pdp_phase_ver {abstraction image imaging pdp} -pdp pdp_plasma {image imaging pdp processing} -pdp pdp_png_to {abstraction image imaging pdp} -pdp pdp_pointcloud {image imaging pdp processing} -pdp pdp_positive {image imaging pdp processing} -pdp pdp_pps {abstraction imaging pdp utility} -pdp pdp_qt {i/o image imaging pdp} -pdp pdp_randmix {image imaging pdp processing} -pdp pdp_reg {imaging misc pdp} -pdp pdp_rotate {image imaging pdp processing} -pdp pdp_route {imaging misc pdp} -pdp pdp_saturation {abstraction image imaging pdp} -pdp pdp_scale {image imaging pdp processing} -pdp pdp_scan~ {dsp imaging pdp} -pdp pdp_scanxy~ {dsp imaging pdp} -pdp pdp_scope~ {dsp imaging pdp} -pdp pdp_sign {image imaging pdp processing} -pdp pdp_snap {imaging misc pdp} -pdp pdp_sthresh {image imaging pdp processing} -pdp pdp_sub {abstraction image imaging pdp} -pdp pdp_tag {abstraction image imaging pdp} -pdp pdp_trigger {imaging misc pdp} -pdp pdp_v4l {i/o image imaging pdp} -pdp pdp_xor {image imaging pdp processing} -pdp pdp_xv {i/o image imaging pdp} -pdp pdp_zoom {image imaging pdp processing} -pdp pdp_zrot {image imaging pdp processing} -pdp pdp_zthresh {image imaging pdp processing} -Percolate bamboo~ {and audio oscillators percolate tables} -Percolate blotar~ {and audio oscillators percolate tables} -Percolate bowed~ {and audio oscillators percolate tables} -Percolate bowedbar~ {and audio oscillators percolate tables} -Percolate brass~ {and audio oscillators percolate tables} -Percolate cabasa~ {and audio oscillators percolate tables} -Percolate chase~ {and audio oscillators percolate tables} -Percolate dcblock~ {and audio oscillators percolate tables} -Percolate escalator~ {and audio oscillators percolate tables} -Percolate flute~ {and audio oscillators percolate tables} -Percolate formant~ {and audio oscillators percolate tables} -Percolate gq~ {and audio oscillators percolate tables} -Percolate guiro~ {and audio oscillators percolate tables} -Percolate morse {and audio oscillators percolate tables} -Percolate scrub~ {and audio oscillators percolate tables} -Percolate sleigh~ {and audio oscillators percolate tables} -Percolate vibraphone~ {and audio oscillators percolate tables} -pidip pdp_aging {effectv imaging pdp pidip} -pidip pdp_ascii {imaging pdp pidip} -pidip pdp_baltan {effectv imaging pdp pidip} -pidip pdp_binary {imaging morphology pdp pidip} -pidip pdp_canvas {imaging pdp pidip} -pidip pdp_capture {imaging pdp pidip} -pidip pdp_charcoal {imaging pdp pidip} -pidip pdp_cmap {imaging pdp pidip} -pidip pdp_colorgrid {imaging pdp pidip} -pidip pdp_compose {imaging pdp pidip} -pidip pdp_ctrack {imaging pdp pidip} -pidip pdp_cycle {effectv imaging pdp pidip} -pidip pdp_dice {effectv imaging pdp pidip} -pidip pdp_dilate {imaging morphology pdp pidip} -pidip pdp_disintegration {imaging pdp pidip} -pidip pdp_distance {imaging morphology pdp pidip} -pidip pdp_edge {effectv imaging pdp pidip} -pidip pdp_erode {imaging morphology pdp pidip} -pidip pdp_ffmpeg~ {imaging pdp pidip} -pidip pdp_form {imaging pdp pidip} -pidip pdp_hitandmiss {imaging morphology pdp pidip} -pidip pdp_i {imaging pdp pidip} -pidip pdp_imgloader {imaging pdp pidip} -pidip pdp_intrusion {effectv imaging pdp pidip} -pidip pdp_lens {effectv imaging pdp pidip} -pidip pdp_live~ {imaging pdp pidip} -pidip pdp_mgrid {imaging pdp pidip} -pidip pdp_mosaic {effectv imaging pdp pidip} -pidip pdp_mp4live~ {imaging pdp pidip} -pidip pdp_mp4player~ {imaging pdp pidip} -pidip pdp_nervous {effectv imaging pdp pidip} -pidip pdp_o {imaging pdp pidip} -pidip pdp_pen {imaging pdp pidip} -pidip pdp_puzzle {effectv imaging pdp pidip} -pidip pdp_qt {imaging pdp pidip} -pidip pdp_qt {imaging pdp pidip} -pidip pdp_qt~ {imaging pdp pidip} -pidip pdp_quark {effectv imaging pdp pidip} -pidip pdp_radioactiv {effectv imaging pdp pidip} -pidip pdp_rec~ {imaging pdp pidip} -pidip pdp_rev {effectv imaging pdp pidip} -pidip pdp_ripple {effectv imaging pdp pidip} -pidip pdp_shagadelic {effectv imaging pdp pidip} -pidip pdp_shape {imaging pdp pidip} -pidip pdp_simura {effectv imaging pdp pidip} -pidip pdp_spigot {imaging pdp pidip} -pidip pdp_spiral {effectv imaging pdp pidip} -pidip pdp_spotlight {imaging pdp pidip} -pidip pdp_text {imaging pdp pidip} -pidip pdp_theorin~ {imaging pdp pidip} -pidip pdp_theorout~ {imaging pdp pidip} -pidip pdp_transform {effectv imaging pdp pidip} -pidip pdp_transition {imaging pdp pidip} -pidip pdp_underwatch {effectv imaging pdp pidip} -pidip pdp_vertigo {effectv imaging pdp pidip} -pidip pdp_warhol {effectv imaging pdp pidip} -pidip pdp_warp {effectv imaging pdp pidip} -pidip pdp_yqt {imaging pdp pidip} -pixeltango pt.animate {pixeltango unsorted} -pixeltango pt.entry {pixeltango unsorted} -pixeltango pt.fader {pixeltango unsorted} -pixeltango pt.feedback {pixeltango unsorted} -pixeltango pt.file {pixeltango unsorted} -pixeltango pt.filelist {pixeltango unsorted} -pixeltango pt.interp {pixeltango unsorted} -pixeltango pt.layer {pixeltango unsorted} -pixeltango pt.layerfx {pixeltango unsorted} -pixeltango pt.light {pixeltango unsorted} -pixeltango pt.live {pixeltango unsorted} -pixeltango pt.loop {pixeltango unsorted} -pixeltango pt.model {pixeltango unsorted} -pixeltango pt.presets {pixeltango unsorted} -pixeltango pt.rotate {pixeltango unsorted} -pixeltango pt.scale {pixeltango unsorted} -pixeltango pt.source {pixeltango unsorted} -pixeltango pt.squeeze {pixeltango unsorted} -pixeltango pt.text {pixeltango unsorted} -pixeltango pt.translate {pixeltango unsorted} -pixeltango pt.video {pixeltango unsorted} -pixeltango pt.whatcolour {pixeltango unsorted} -pixeltango pt.window {pixeltango unsorted} -pmpd iAmbient2D {modelling physical pmpd} -pmpd iAmbient3D {modelling physical pmpd} -pmpd iCircle2D {modelling physical pmpd} -pmpd iCircle3D {modelling physical pmpd} -pmpd iCylinder3D {modelling physical pmpd} -pmpd iLine2D {modelling physical pmpd} -pmpd iPlane3D {modelling physical pmpd} -pmpd iSeg2D {modelling physical pmpd} -pmpd iSphere3D {modelling physical pmpd} -pmpd link {modelling physical pmpd} -pmpd link2D {modelling physical pmpd} -pmpd link3D {modelling physical pmpd} -pmpd mass {modelling physical pmpd} -pmpd mass2D {modelling physical pmpd} -pmpd mass3D {modelling physical pmpd} -pmpd pmpd {modelling physical pmpd} -pmpd tCircle2D {modelling physical pmpd} -pmpd tCircle3D {modelling physical pmpd} -pmpd tCube3D {modelling physical pmpd} -pmpd tCylinder3D {modelling physical pmpd} -pmpd tLine2D {modelling physical pmpd} -pmpd tLink2D {modelling physical pmpd} -pmpd tLink3D {modelling physical pmpd} -pmpd tPlane3D {modelling physical pmpd} -pmpd tSeg2D {modelling physical pmpd} -pmpd tSphere3D {modelling physical pmpd} -pmpd tSquare2D {modelling physical pmpd} -rradical memento {rradical unsorted} -rradical OSCprepend {rradical unsorted} -rradical rrad.chorus~ {audio rradical} -rradical rrad.evo33 {rradical unsorted} -rradical rrad.evo33b {rradical unsorted} -rradical rrad.nseq {rradical unsorted} -rradical rrad.pattseq {rradical unsorted} -rradical rrad.scale {rradical unsorted} -rradical rrad.split~ {audio rradical} -rtc 16step-seq {rtc unsorted} -rtc alea-rhythm {rtc unsorted} -rtc anti-interval {rtc unsorted} -rtc anti-octave {rtc unsorted} -rtc anti-octave&prime {rtc unsorted} -rtc anti-osc {rtc unsorted} -rtc between-lin {rtc unsorted} -rtc between-log {rtc unsorted} -rtc between-variations {rtc unsorted} -rtc brown-melody {rtc unsorted} -rtc brown-rhythm {rtc unsorted} -rtc brownian {rtc unsorted} -rtc butfirst {rtc unsorted} -rtc butlast {rtc unsorted} -rtc check-octaves {rtc unsorted} -rtc check-row {rtc unsorted} -rtc choice-rhythm {rtc unsorted} -rtc choose {rtc unsorted} -rtc choose-intervals {rtc unsorted} -rtc count-bang {rtc unsorted} -rtc cp-pan~ {rtc unsorted} -rtc cresc-decresc {rtc unsorted} -rtc crossfade~ {rtc unsorted} -rtc ED-rhythm {rtc unsorted} -rtc ED-trans {rtc unsorted} -rtc ED2EP {rtc unsorted} -rtc first {rtc unsorted} -rtc frq2note {rtc unsorted} -rtc geom {rtc unsorted} -rtc grid-rhythm {rtc unsorted} -rtc group-rhythm {rtc unsorted} -rtc group-rhythm2 {rtc unsorted} -rtc groups {rtc unsorted} -rtc infinity-row {rtc unsorted} -rtc int-or-float {rtc unsorted} -rtc intv2ratio {rtc unsorted} -rtc last {rtc unsorted} -rtc line2 {rtc unsorted} -rtc Lround {rtc unsorted} -rtc make-choice-list {rtc unsorted} -rtc make-ED-scale {rtc unsorted} -rtc make-scale {rtc unsorted} -rtc make-trans-scale {rtc unsorted} -rtc markov {rtc unsorted} -rtc markov-harmony {rtc unsorted} -rtc markov-rhythm {rtc unsorted} -rtc matrix12 {rtc unsorted} -rtc metro-dev% {rtc unsorted} -rtc ms2sec {rtc unsorted} -rtc multiple {rtc unsorted} -rtc neutral-harmony {rtc unsorted} -rtc nname {rtc unsorted} -rtc normalize-row {rtc unsorted} -rtc note2cents {rtc unsorted} -rtc note2frq {rtc unsorted} -rtc note2pitch {rtc unsorted} -rtc note2st {rtc unsorted} -rtc panning {rtc unsorted} -rtc periodic {rtc unsorted} -rtc permutate-row {rtc unsorted} -rtc permute {rtc unsorted} -rtc pitch-from-intervals {rtc unsorted} -rtc pitch-from-row {rtc unsorted} -rtc pitch2note {rtc unsorted} -rtc play-samp~ {rtc unsorted} -rtc play2 {rtc unsorted} -rtc random-ramp {rtc unsorted} -rtc random-ramp-urn {rtc unsorted} -rtc random-row {rtc unsorted} -rtc ratio {rtc unsorted} -rtc ratio2intv {rtc unsorted} -rtc repchord-rhythm {rtc unsorted} -rtc repeat-ED {rtc unsorted} -rtc rit-acc {rtc unsorted} -rtc rota {rtc unsorted} -rtc rotate {rtc unsorted} -rtc row-modus {rtc unsorted} -rtc samp10~ {rtc unsorted} -rtc scale-changer {rtc unsorted} -rtc schweller {rtc unsorted} -rtc scramble {rtc unsorted} -rtc sel-princ {rtc unsorted} -rtc sequence {rtc unsorted} -rtc serial-rhythm {rtc unsorted} -rtc series {rtc unsorted} -rtc show-pitchclass {rtc unsorted} -rtc smooth-line {rtc unsorted} -rtc sneak {rtc unsorted} -rtc sneak-random {rtc unsorted} -rtc sneak-rhythm {rtc unsorted} -rtc sqrt-pan~ {rtc unsorted} -rtc st2pitch {rtc unsorted} -rtc super-rhythm {rtc unsorted} -rtc trans {rtc unsorted} -rtc trans-exp {rtc unsorted} -rtc trans-lin {rtc unsorted} -rtc trans-log {rtc unsorted} -rtc transp-pitch {rtc unsorted} -rtc transpose-row {rtc unsorted} -rtc urne {rtc unsorted} -rtc VolAmb {rtc unsorted} -rtc wave-rhythm {rtc unsorted} -rtc xrandom {rtc unsorted} -sigpack chop~ {audio generators sigpack} -sigpack decimate~ {audio generators sigpack} -sigpack diode~ {audio generators sigpack} -sigpack foldback~ {audio generators sigpack} -sigpack foldover~ {audio generators sigpack} -sigpack freqdiv~ {audio generators sigpack} -sigpack freqshift~ {audio generators sigpack} -sigpack harmgen~ {audio generators sigpack} -sigpack rectify~ {audio generators sigpack} -sigpack round~ {audio generators sigpack} -sigpack saturate~ {audio generators sigpack} -sigpack sieve~ {audio generators sigpack} -sigpack split~ {audio generators sigpack} -sigpack ustep~ {audio generators sigpack} -sigpack vowel~ {audio generators sigpack} -smlib bp {smlib unsorted} -smlib deltas {smlib unsorted} -smlib hip {smlib unsorted} -smlib hist {smlib unsorted} -smlib itov {smlib unsorted} -smlib lavg {smlib unsorted} -smlib lhist {smlib unsorted} -smlib lhisti {smlib unsorted} -smlib linspace {smlib unsorted} -smlib lmax {smlib unsorted} -smlib lmin {smlib unsorted} -smlib lrange {smlib unsorted} -smlib prevl {smlib unsorted} -smlib threshold {smlib unsorted} -smlib vabs {smlib unsorted} -smlib vclip {smlib unsorted} -smlib vcog {smlib unsorted} -smlib vdbtorms {smlib unsorted} -smlib vdelta {smlib unsorted} -smlib vfmod {smlib unsorted} -smlib vftom {smlib unsorted} -smlib vlavg {smlib unsorted} -smlib vlmax {smlib unsorted} -smlib vlmin {smlib unsorted} -smlib vmax {smlib unsorted} -smlib vmin {smlib unsorted} -smlib vmtof {smlib unsorted} -smlib vpow {smlib unsorted} -smlib vrms {smlib unsorted} -smlib vrmstodb {smlib unsorted} -smlib vstd {smlib unsorted} -smlib vsum {smlib unsorted} -smlib vv- {smlib unsorted} -smlib vv+ {smlib unsorted} -smlib vvconv {smlib unsorted} -toxy tot {gui toxy} -unauthorized audience~ {unauthorized unsorted} -unauthorized beatify~ {unauthorized unsorted} -unauthorized blinkenlights {unauthorized unsorted} -unauthorized compressor~ {unauthorized unsorted} -unauthorized cooled~ {unauthorized unsorted} -unauthorized countund {unauthorized unsorted} -unauthorized disto~ {unauthorized unsorted} -unauthorized exciter {unauthorized unsorted} -unauthorized filterbank~ {unauthorized unsorted} -unauthorized formant~ {unauthorized unsorted} -unauthorized graphic-mp3amp~ {audio encoding unauthorized} -unauthorized grid {gui unauthorized} -unauthorized mp3amp~ {audio encoding unauthorized} -unauthorized mp3cast~ {audio encoding unauthorized} -unauthorized mp3live~ {audio encoding unauthorized} -unauthorized mp3write~ {audio encoding unauthorized} -unauthorized pianoroll {gui unauthorized} -unauthorized probalizer {unauthorized unsorted} -unauthorized randomblock~ {unauthorized unsorted} -unauthorized samplebox~ {unauthorized unsorted} -unauthorized scratcher~ {unauthorized unsorted} -unauthorized sonogram~ {unauthorized unsorted} -unauthorized sonograph~ {unauthorized unsorted} -unauthorized speex~ {unauthorized unsorted} -unauthorized spigot~ {unauthorized unsorted} -unauthorized stkdrone~ {unauthorized unsorted} -unauthorized stksitar~ {unauthorized unsorted} -unauthorized vocoder~ {unauthorized unsorted} -unauthorized wahwah~ {unauthorized unsorted} -vasp vasp {declaration vasp} -vasp vasp.- {arithmetic vasp} -vasp vasp.-> {basics vasp} -vasp vasp.! {basics vasp} -vasp vasp.!- {arithmetic vasp} -vasp vasp.!/ {arithmetic vasp} -vasp vasp.!= {arithmetic vasp} -vasp vasp.!window {functions vasp window} -vasp vasp.? {basics vasp} -vasp vasp.?? {basics vasp} -vasp vasp.* {arithmetic vasp} -vasp vasp.*!window {functions vasp window} -vasp vasp.*cosc {generators vasp} -vasp vasp.*osc {generators vasp} -vasp vasp.*phasor {generators vasp} -vasp vasp.*window {functions vasp window} -vasp vasp.*xwindow {functions vasp window} -vasp vasp./ {arithmetic vasp} -vasp vasp.% {arithmetic vasp} -vasp vasp.+ {arithmetic vasp} -vasp vasp.< {arithmetic vasp} -vasp vasp.<= {arithmetic vasp} -vasp vasp.= {arithmetic vasp} -vasp vasp.== {arithmetic vasp} -vasp vasp.> {arithmetic vasp} -vasp vasp.>= {arithmetic vasp} -vasp vasp.a< {arithmetic vasp} -vasp vasp.a<= {arithmetic vasp} -vasp vasp.a> {arithmetic vasp} -vasp vasp.a>= {arithmetic vasp} -vasp vasp.abs {arithmetic vasp} -vasp vasp.amax? {minmax vasp} -vasp vasp.amin? {minmax vasp} -vasp vasp.c- {arithmetic vasp} -vasp vasp.c-> {basics vasp} -vasp vasp.c!- {arithmetic vasp} -vasp vasp.c!/ {arithmetic vasp} -vasp vasp.c!fft {fft objects vasp} -vasp vasp.c* {arithmetic vasp} -vasp vasp.c/ {arithmetic vasp} -vasp vasp.c+ {arithmetic vasp} -vasp vasp.c= {arithmetic vasp} -vasp vasp.cconj {arithmetic vasp} -vasp vasp.cfft {fft objects vasp} -vasp vasp.channel {declaration vasp} -vasp vasp.channel? {declaration vasp} -vasp vasp.check {basics vasp} -vasp vasp.cnoise {generators vasp} -vasp vasp.cnorm {utilities vasp} -vasp vasp.cosc {generators vasp} -vasp vasp.cpowi {transcendent vasp} -vasp vasp.csqr {transcendent vasp} -vasp vasp.dif {arithmetic vasp} -vasp vasp.exp {transcendent vasp} -vasp vasp.fhp {filters vasp} -vasp vasp.fi {utilities vasp} -vasp vasp.flp {filters vasp} -vasp vasp.frames {declaration vasp} -vasp vasp.frames? {declaration vasp} -vasp vasp.frames* {declaration vasp} -vasp vasp.frames/ {declaration vasp} -vasp vasp.frames+ {declaration vasp} -vasp vasp.frames= {declaration vasp} -vasp vasp.gate {utilities vasp} -vasp vasp.gather {basics vasp} -vasp vasp.int {arithmetic vasp} -vasp {vasp.join 2} {basics vasp} -vasp vasp.log {transcendent vasp} -vasp vasp.max {minmax vasp} -vasp vasp.max? {minmax vasp} -vasp vasp.min {minmax vasp} -vasp vasp.min? {minmax vasp} -vasp vasp.minmax? {minmax vasp} -vasp vasp.mirr {displace vasp} -vasp vasp.multi {basics vasp} -vasp vasp.noise {generators vasp} -vasp vasp.offset {declaration vasp} -vasp vasp.offset? {declaration vasp} -vasp vasp.offset+ {declaration vasp} -vasp vasp.offset= {declaration vasp} -vasp vasp.opt {utilities vasp} -vasp vasp.osc {generators vasp} -vasp vasp.part {basics vasp} -vasp vasp.peaks {filters vasp} -vasp vasp.phasor {generators vasp} -vasp vasp.polar {fft objects vasp} -vasp vasp.pow {transcendent vasp} -vasp vasp.pwrap {utilities vasp} -vasp vasp.r!fft {fft objects vasp} -vasp vasp.r+ {arithmetic vasp} -vasp vasp.radio {utilities vasp} -vasp vasp.rect {fft objects vasp} -vasp vasp.rfft {fft objects vasp} -vasp vasp.rgate {utilities vasp} -vasp vasp.rmax {minmax vasp} -vasp vasp.rmax? {minmax vasp} -vasp vasp.rmin {minmax vasp} -vasp vasp.rmin? {minmax vasp} -vasp vasp.ropt {utilities vasp} -vasp vasp.rot {displace vasp} -vasp vasp.rpeaks {filters vasp} -vasp vasp.rpow {transcendent vasp} -vasp vasp.rvalleys {filters vasp} -vasp vasp.shift {displace vasp} -vasp vasp.sign {arithmetic vasp} -vasp vasp.size {declaration vasp} -vasp vasp.size? {declaration vasp} -vasp vasp.size* {declaration vasp} -vasp vasp.size/ {declaration vasp} -vasp vasp.size+ {declaration vasp} -vasp vasp.spit {basics vasp} -vasp {vasp.split 2} {basics vasp} -vasp vasp.sqr {transcendent vasp} -vasp vasp.sqrt {transcendent vasp} -vasp vasp.ssqr {transcendent vasp} -vasp vasp.ssqrt {transcendent vasp} -vasp vasp.sum? {arithmetic vasp} -vasp vasp.sync {basics vasp} -vasp vasp.tilt {displace vasp} -vasp vasp.update {basics vasp} -vasp vasp.valleys {filters vasp} -vasp vasp.vector {declaration vasp} -vasp vasp.vectors? {declaration vasp} -vasp vasp.window {functions vasp window} -vasp vasp.xmirr {displace vasp} -vasp vasp.xrot {displace vasp} -vasp vasp.xshift {displace vasp} -vasp vasp.xtilt {displace vasp} -vasp vasp.xwindow {functions vasp window} -xsample xgroove~ {and audio oscillators tables xsample} -xsample xplay~ {and audio oscillators tables xsample} -xsample xrecord~ {and audio oscillators tables xsample} -zexy . {math zexy} -zexy &&~ {audio binops logical operators zexy} -zexy <~ {audio binops logical operators zexy} -zexy ==~ {audio binops logical operators zexy} -zexy >~ {audio binops logical operators zexy} -zexy ||~ {audio binops logical operators zexy} -zexy abs~ {audio math zexy} -zexy any2list {control glue zexy} -zexy atoi {control glue zexy} -zexy avg~ {analysis audio zexy} -zexy blockmirror~ {audio processing zexy} -zexy blockswap~ {audio processing zexy} -zexy date {control glue zexy} -zexy deg2rad {math zexy} -zexy demultiplex {control glue zexy} -zexy demultiplex~ {audio misc zexy} -zexy dfreq~ {analysis audio zexy} -zexy dirac~ {audio generators zexy} -zexy drip {control glue zexy} -zexy envrms~ {analysis audio zexy} -zexy glue {control glue zexy} -zexy index {control glue zexy} -zexy length {control glue zexy} -zexy limiter~ {audio processing zexy} -zexy list2int {control glue zexy} -zexy list2symbol {control glue zexy} -zexy lister {control glue zexy} -zexy lpt {control glue zexy} -zexy makesymbol {control glue zexy} -zexy matrix {matrix storage zexy} -zexy matrix~ {audio misc zexy} -zexy mavg {math zexy} -zexy minmax {math zexy} -zexy msgfile {control glue zexy} -zexy mtx_.* {matrix storage zexy} -zexy mtx_./ {matrix storage zexy} -zexy mtx_add {matrix storage zexy} -zexy mtx_check {matrix storage zexy} -zexy mtx_col {matrix storage zexy} -zexy mtx_diag {matrix storage zexy} -zexy mtx_diag {matrix storage zexy} -zexy mtx_diegg {matrix storage zexy} -zexy mtx_egg {matrix storage zexy} -zexy mtx_element {matrix storage zexy} -zexy mtx_eye {matrix storage zexy} -zexy mtx_inverse {matrix storage zexy} -zexy mtx_mean {matrix storage zexy} -zexy mtx_mul {matrix storage zexy} -zexy mtx_ones {matrix storage zexy} -zexy mtx_pivot {matrix storage zexy} -zexy mtx_print {matrix storage zexy} -zexy mtx_rand {matrix storage zexy} -zexy mtx_resize {matrix storage zexy} -zexy mtx_roll {matrix storage zexy} -zexy mtx_row {matrix storage zexy} -zexy mtx_scroll {matrix storage zexy} -zexy mtx_size {matrix storage zexy} -zexy mtx_sub {matrix storage zexy} -zexy mtx_trace {matrix storage zexy} -zexy mtx_transpose {matrix storage zexy} -zexy mtx_zeros {matrix storage zexy} -zexy multiline~ {audio misc zexy} -zexy multiplex~ {audio misc zexy} -zexy niagara {control glue zexy} -zexy noish~ {audio generators zexy} -zexy noisi~ {audio generators zexy} -zexy nop {control glue zexy} -zexy nop~ {audio misc zexy} -zexy operating_system {control glue zexy} -zexy pack~ {audio misc zexy} -zexy packel {control glue zexy} -zexy pdf~ {analysis audio zexy} -zexy pol2cart {math zexy} -zexy pol2sph {math zexy} -zexy prime {math zexy} -zexy quantize~ {audio processing zexy} -zexy rad2deg {math zexy} -zexy repack {control glue zexy} -zexy repeat {control glue zexy} -zexy segregate {control glue zexy} -zexy sfplay {audio in out zexy} -zexy sfrecord {audio in out zexy} -zexy sgn~ {audio math zexy} -zexy sigzero~ {analysis audio zexy} -zexy sort {math zexy} -zexy sph2cart {math zexy} -zexy sph2pol {math zexy} -zexy step~ {audio generators zexy} -zexy strcmp {control glue zexy} -zexy swap~ {audio processing zexy} -zexy symbol2list {control glue zexy} -zexy tabdump {control glue tables zexy} -zexy tabset {control glue tables zexy} -zexy tavg~ {analysis audio zexy} -zexy time {control glue zexy} -zexy unpack~ {audio misc zexy} -zexy urn {math zexy} -zexy wrap {math zexy} -zexy z~ {audio processing zexy} -{zexy Abstraction} cart2pol {abstraction math zexy} -{zexy Abstraction} cart2sph {abstraction math zexy} -{zexy Abstraction} deg2rad {abstraction math zexy} -{zexy Abstraction} mean {abstraction math zexy} diff --git a/scripts/guiplugins/quickbindings/quickbindings-plugin.tcl b/scripts/guiplugins/quickbindings/quickbindings-plugin.tcl deleted file mode 100644 index 8f6081a37..000000000 --- a/scripts/guiplugins/quickbindings/quickbindings-plugin.tcl +++ /dev/null @@ -1,39 +0,0 @@ -# this is a rough attempt to bind keys to little snippets of patches. -# Currently, there are only three keys bound: o r s - -package require pd_connect ;# for pdsend - -namespace eval ::patch_by_key:: { - variable patches - array set patches {} -} - -proc ::patch_by_key::init {} { - variable patches - # map keys to patch snippets - set patches(o) "#X obj 1 2 osc~;" - set patches(r) "#X obj 1 2 r test;" - set patches(s) "#X obj 1 2 s test;" -} - -proc ::patch_by_key::key {tkcanvas key x y} { - pdtk_post "::patch_by_key::key $tkcanvas $key $x $y" - variable patches - set mytoplevel [winfo toplevel $tkcanvas] - - # make sure we have a mapping for the key before continuing - if {[lsearch -exact [array names patches] $key] == -1} {return} - # only do this for PatchWindows, not dialogs, pdwindow, etc. - if {[winfo class $mytoplevel] ne "PatchWindow"} {return} - # only do this if the canvas is in editmode - if {$::editmode($mytoplevel) != 1} {return} - - # regexp magic to replace #X with the current canvas name, and the - # (x,y) with the current mouse location - set x [$tkcanvas canvasx $x] - set y [$tkcanvas canvasy $y] - pdsend [regsub -- {#X (\S+) [0-9]+ [0-9]+} $patches($key) "$mytoplevel \\1 $x $y"] -} - -::patch_by_key::init -bind all <Key> "+::patch_by_key::key %W %K %x %y" diff --git a/scripts/guiplugins/simple_examples/LICENSE.txt b/scripts/guiplugins/simple_examples/LICENSE.txt deleted file mode 100644 index c9d8d7d84..000000000 --- a/scripts/guiplugins/simple_examples/LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ -This code has been put into the public domain - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: - i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; - ii. moral rights retained by the original author(s) and/or performer(s); - iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; - iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; - v. rights protecting the extraction, dissemination, use and reuse of data in a Work; - vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and - vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. - b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. - c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. - d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. - diff --git a/scripts/guiplugins/simple_examples/add_item_to_popup_menu-plugin.tcl b/scripts/guiplugins/simple_examples/add_item_to_popup_menu-plugin.tcl deleted file mode 100644 index 04ebd55ab..000000000 --- a/scripts/guiplugins/simple_examples/add_item_to_popup_menu-plugin.tcl +++ /dev/null @@ -1,6 +0,0 @@ - - -# for more info: http://tcl.tk/man/tcl8.5/TkCmd/menu.htm -.popup add separator -.popup add command -label "My Favorite Object" \ - -command {pdsend "$::focused_window obj $::popup_xcanvas $::popup_ycanvas osc~"} diff --git a/scripts/guiplugins/simple_examples/add_menubar_to_popup_menu-plugin.tcl b/scripts/guiplugins/simple_examples/add_menubar_to_popup_menu-plugin.tcl deleted file mode 100644 index ee8149bc7..000000000 --- a/scripts/guiplugins/simple_examples/add_menubar_to_popup_menu-plugin.tcl +++ /dev/null @@ -1,17 +0,0 @@ -# this scriptlet removes the menubars from all canvas windows. You could also -# create your own custom menu and add it to the canvas windows. - -# TODO ::pd_menus::update_window_menu expects to find ::patch_menubar not "" - -# on Mac OS X, no windows have menubars, so no need to remove for 'aqua' -if {$::windowingsystem ne "aqua"} { - set ::patch_menubar "" -} - -set menulist "file edit put find media window help" -.popup add separator -foreach mymenu $menulist { - .menubar.$mymenu clone .popup.$mymenu normal - .popup add cascade -label [_ [string totitle $mymenu]] \ - -menu .popup.$mymenu -} diff --git a/scripts/guiplugins/simple_examples/add_my_patches_to_media_menu-plugin.tcl b/scripts/guiplugins/simple_examples/add_my_patches_to_media_menu-plugin.tcl deleted file mode 100644 index bf9f3ab0a..000000000 --- a/scripts/guiplugins/simple_examples/add_my_patches_to_media_menu-plugin.tcl +++ /dev/null @@ -1,11 +0,0 @@ -# this script searches a folder for Pd patches, then adds them to the bottom -# of the Media menu for quick opening - -# you probably want to set this to something that makes sense for you: -set mypatch_dir ~/Documents/Pd - -.menubar.media add separator - -foreach filename [glob -directory $mypatch_dir -nocomplain -types {f} -- *.pd] { - .menubar.media add command -label [file tail $filename] -command "open_file $filename" -} diff --git a/scripts/guiplugins/simple_examples/clone_put_menu_into_popup_menu-plugin.tcl b/scripts/guiplugins/simple_examples/clone_put_menu_into_popup_menu-plugin.tcl deleted file mode 100644 index 0a1de7a34..000000000 --- a/scripts/guiplugins/simple_examples/clone_put_menu_into_popup_menu-plugin.tcl +++ /dev/null @@ -1,6 +0,0 @@ - - -# for more info: http://tcl.tk/man/tcl8.5/TkCmd/menu.htm -.menubar.put clone .popup.create normal -.popup insert 0 cascade -label [_ "Put"] -menu .popup.create -.popup.create configure -tearoff 1 diff --git a/scripts/guiplugins/simple_examples/editmode_look-plugin.tcl b/scripts/guiplugins/simple_examples/editmode_look-plugin.tcl deleted file mode 100644 index 669d03f16..000000000 --- a/scripts/guiplugins/simple_examples/editmode_look-plugin.tcl +++ /dev/null @@ -1,33 +0,0 @@ -# this script makes it so that the cords are hidden when not in edit mode - -proc set_cords_by_editmode {mytoplevel} { - if {$mytoplevel eq ".pdwindow"} {return} - set tkcanvas [tkcanvas_name $mytoplevel] - if { ! [winfo exists $mytoplevel] } {return} - if {$::editmode($mytoplevel) == 1} { - $tkcanvas configure -background "#fff" - $tkcanvas itemconfigure graph -fill black - $tkcanvas itemconfigure array -fill black - $tkcanvas itemconfigure array -activefill blue - $tkcanvas itemconfigure label -fill black - $tkcanvas itemconfigure obj -fill black - $tkcanvas itemconfigure msg -activefill black - $tkcanvas itemconfigure atom -activefill black - $tkcanvas itemconfigure cord -fill black - $tkcanvas itemconfigure {inlet || outlet} -outline black - } else { - $tkcanvas configure -background white - $tkcanvas itemconfigure graph -fill magenta - $tkcanvas itemconfigure array -fill cyan - $tkcanvas itemconfigure array -activefill blue - $tkcanvas itemconfigure label -fill "#777777" - $tkcanvas itemconfigure obj -fill grey - $tkcanvas itemconfigure msg -activefill blue - $tkcanvas itemconfigure atom -activefill blue - $tkcanvas itemconfigure cord -fill grey - $tkcanvas itemconfigure {inlet || outlet} -outline white - $tkcanvas lower {inlet || outlet} - } -} - -bind all <<EditMode>> {+set_cords_by_editmode %W} diff --git a/scripts/guiplugins/simple_examples/font_doesnt_follow_focus-plugin.tcl b/scripts/guiplugins/simple_examples/font_doesnt_follow_focus-plugin.tcl deleted file mode 100644 index a822bd573..000000000 --- a/scripts/guiplugins/simple_examples/font_doesnt_follow_focus-plugin.tcl +++ /dev/null @@ -1,11 +0,0 @@ -# this plugin disables the following of focused window by overriding a proc - -rename ::dialog_font::update_font_dialog {} -proc ::dialog_font::update_font_dialog {mytoplevel} { - variable canvaswindow - if {[winfo exists .font]} { - wm title .font [format [_ "%s Font"] [lookup_windowname $canvaswindow]] - } else { - set canvaswindow $mytoplevel - } -} diff --git a/scripts/guiplugins/simple_examples/global_editmode_0-plugin.tcl b/scripts/guiplugins/simple_examples/global_editmode_0-plugin.tcl deleted file mode 100644 index 98f7a6a1e..000000000 --- a/scripts/guiplugins/simple_examples/global_editmode_0-plugin.tcl +++ /dev/null @@ -1,15 +0,0 @@ -# -# this plugin maps Ctrl-Shift-E (Cmd-Shift-E) to switch all open patches to -# Interact Mode (i.e. the opposite of Edit Mode) - -proc global_turn_off_editmode {} { - pdtk_post "$::pd_menus::accelerator-Shift-E: Turning off edit mode for all open windows" - foreach window [winfo children .] { - if {[winfo class $window] eq "PatchWindow"} { - pdsend "$window editmode 0" - } - } -} - -# the "E" needs to be upper case, otherwise it gets missed with the 'Shift' -bind all <$::modifier-Shift-Key-E> global_turn_off_editmode diff --git a/scripts/guiplugins/simple_examples/gtklook-plugin.tcl b/scripts/guiplugins/simple_examples/gtklook-plugin.tcl deleted file mode 100644 index 263c6d499..000000000 --- a/scripts/guiplugins/simple_examples/gtklook-plugin.tcl +++ /dev/null @@ -1,41 +0,0 @@ -# learn more here: http://www.cs.man.ac.uk/~fellowsd/tcl/option-tutorial.html -if { [tk windowingsystem] == "x11" } { - option add *borderWidth 1 widgetDefault - option add *activeBorderWidth 1 widgetDefault - option add *selectBorderWidth 1 widgetDefault - option add *font -adobe-helvetica-medium-r-normal-*-12-*-*-*-*-*-* - - option add *padX 2 - option add *padY 4 - - option add *Listbox.background white - option add *Listbox.selectBorderWidth 0 - option add *Listbox.selectForeground white - option add *Listbox.selectBackground #4a6984 - - option add *Entry.background white - option add *Entry.foreground black - option add *Entry.selectBorderWidth 0 - option add *Entry.selectForeground white - option add *Entry.selectBackground #4a6984 - - option add *Text.background white - option add *Text.selectBorderWidth 0 - option add *Text.selectForeground white - option add *Text.selectBackground #4a6984 - - option add *Menu.activeBackground #4a6984 - option add *Menu.activeForeground white - option add *Menu.activeBorderWidth 0 - option add *Menu.highlightThickness 0 - option add *Menu.borderWidth 2 - - option add *MenuButton.activeBackground #4a6984 - option add *MenuButton.activeForeground white - option add *MenuButton.activeBorderWidth 0 - option add *MenuButton.highlightThickness 0 - option add *MenuButton.borderWidth 0 - - option add *highlightThickness 0 - option add *troughColor #bdb6ad -} diff --git a/scripts/guiplugins/simple_examples/hide_cords_in_editmode-plugin.tcl b/scripts/guiplugins/simple_examples/hide_cords_in_editmode-plugin.tcl deleted file mode 100644 index a0cd18954..000000000 --- a/scripts/guiplugins/simple_examples/hide_cords_in_editmode-plugin.tcl +++ /dev/null @@ -1,16 +0,0 @@ -# this script makes it so that the cords are hidden when not in edit mode - -proc set_cords_by_editmode {mytoplevel} { - if {$mytoplevel eq ".pdwindow"} {return} - set tkcanvas [tkcanvas_name $mytoplevel] - if { ! [winfo exists $mytoplevel] } {return} - if {$::editmode($mytoplevel) == 1} { - $tkcanvas itemconfigure cord -fill black - $tkcanvas raise cord - } else { - $tkcanvas itemconfigure cord -fill white - $tkcanvas lower cord - } -} - -bind all <<EditMode>> {+set_cords_by_editmode %W} diff --git a/scripts/guiplugins/simple_examples/insert_into_popup_menu-plugin.tcl b/scripts/guiplugins/simple_examples/insert_into_popup_menu-plugin.tcl deleted file mode 100644 index 71384f8ba..000000000 --- a/scripts/guiplugins/simple_examples/insert_into_popup_menu-plugin.tcl +++ /dev/null @@ -1,26 +0,0 @@ - -# for more info: http://tcl.tk/man/tcl8.5/TkCmd/menu.htm - -# create the item, then stick it to the canvas using a 'mouseup' message -proc popup_create_put {putitem} { - pdsend "$::focused_window $putitem" - pdsend "$::focused_window mouseup $::popup_xpix $::popup_ypix 1" -} - -# create our submenu -menu .popup.create -# fix menu font size on Windows with tk scaling = 1 -if {$::windowingsystem eq "win32"} {.popup.create configure -font menufont} - -# add items to our submenu -# (wrapping the label like [_ ""] means that text will be localized) -.popup.create add command -label [_ "Object"] -command {popup_create_put "obj"} -.popup.create add command -label [_ "Message"] -command {popup_create_put "msg"} -.popup.create add command -label [_ "Number"] -command {popup_create_put "floatatom"} -.popup.create add command -label [_ "Symbol"] -command {popup_create_put "symbolatom"} -.popup.create add command -label [_ "Comment"] -command {popup_create_put "text"} -.popup.create add separator -.popup.create add command -label [_ "Array"] -command {pdsend "$::focused_window menuarray"} - -# insert our submenu as the 0th element on the popup -.popup insert 0 cascade -label [_ "Put"] -menu .popup.create diff --git a/scripts/guiplugins/simple_examples/meters_default_on-plugin.tcl b/scripts/guiplugins/simple_examples/meters_default_on-plugin.tcl deleted file mode 100644 index 4e8cbd6b8..000000000 --- a/scripts/guiplugins/simple_examples/meters_default_on-plugin.tcl +++ /dev/null @@ -1,3 +0,0 @@ -# this makes the meters in the Pd window be on by default -set ::meters 1 -pdsend "pd meters 1" diff --git a/scripts/guiplugins/simple_examples/pdwindow_popup_mode-plugin.tcl b/scripts/guiplugins/simple_examples/pdwindow_popup_mode-plugin.tcl deleted file mode 100644 index fd1c296da..000000000 --- a/scripts/guiplugins/simple_examples/pdwindow_popup_mode-plugin.tcl +++ /dev/null @@ -1,19 +0,0 @@ -# create an option for a mode where the Pd window pops up whenever anything is -# printed to the text box in the Pd window - -set ::pdwindow::popupmode 0 -rename pdtk_post pdtk_post_original -proc pdtk_post {message} { - if {$::pdwindow::popupmode} { - wm deiconify .pdwindow - raise .pdwindow - } - pdtk_post_original $message -} - -set mymenu .menubar.window -set inserthere [$mymenu index [_ "Parent Window"]] -$mymenu insert $inserthere separator -$mymenu insert $inserthere check -label [_ " Popup mode"] -variable ::pdwindow::popupmode - - diff --git a/scripts/guiplugins/simple_examples/remove_menubar_from_patch_windows-plugin.tcl b/scripts/guiplugins/simple_examples/remove_menubar_from_patch_windows-plugin.tcl deleted file mode 100644 index 124d216b6..000000000 --- a/scripts/guiplugins/simple_examples/remove_menubar_from_patch_windows-plugin.tcl +++ /dev/null @@ -1,7 +0,0 @@ -# this scriptlet removes the menubars from all canvas windows. You could also -# create your own custom menu and add it to the canvas windows. - -# on Mac OS X, no windows have menubars, so no need to remove for 'aqua' -if {$::windowingsystem ne "aqua"} { - set ::canvas_menubar "" -} diff --git a/scripts/guiplugins/simple_examples/set_canvas_minsize-plugin.tcl b/scripts/guiplugins/simple_examples/set_canvas_minsize-plugin.tcl deleted file mode 100644 index 3b445edc0..000000000 --- a/scripts/guiplugins/simple_examples/set_canvas_minsize-plugin.tcl +++ /dev/null @@ -1,8 +0,0 @@ - -# set the minimum size of canvas windows, so it doesn't hide the menubar -if {$::windowingsystem ne "aqua"} { - set ::canvas_minwidth 310 - set ::canvas_minheight 45 -} - - diff --git a/scripts/guiplugins/simple_examples/set_custom_stored_histories-plugin.tcl b/scripts/guiplugins/simple_examples/set_custom_stored_histories-plugin.tcl deleted file mode 100644 index 138937403..000000000 --- a/scripts/guiplugins/simple_examples/set_custom_stored_histories-plugin.tcl +++ /dev/null @@ -1,6 +0,0 @@ -# you can preset the histories of various things like the Tcl entry box in the -# Pd window and the messages in the Message dialog. They are lists of messages -# in order of newness, so the newest item is at the end of the list. - -set ::pdwindow::tclentry_history {"menu_message_dialog" "console hide" "console show"} -set ::dialog_message::message_history {"pd dsp 1" "pd dsp 0" "my very custom message"} diff --git a/scripts/guiplugins/simple_examples/tripleclickobj-plugin.tcl b/scripts/guiplugins/simple_examples/tripleclickobj-plugin.tcl deleted file mode 100644 index 715cd5602..000000000 --- a/scripts/guiplugins/simple_examples/tripleclickobj-plugin.tcl +++ /dev/null @@ -1,9 +0,0 @@ -# This is a sketch to demonstrate a Tcl "plugin" for Pd: it binds to -# triple-clicks to trigger the creation of a new object. -proc process_tripleclick {window} { - set mytoplevel [winfo toplevel $window] - if {[winfo class $mytoplevel] == "PatchWindow" && $::editmode($mytoplevel)} { - ::pd_connect::pdsend "$mytoplevel obj" - } -} -bind all <Triple-ButtonRelease-1> {process_tripleclick %W} diff --git a/scripts/insert_declare.py b/scripts/insert_declare.py deleted file mode 100755 index 15e0f58ed..000000000 --- a/scripts/insert_declare.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/python - -import string -import os,sys -import re -import StringIO - -library = os.getcwd().split('/')[-1] - -print "current library: " + library + "\n" - -for root, dirs, files in os.walk('.'): - try: - dirs.remove('.svn') - except: - pass -# print "root: " + root - for name in files: - m = re.search(".*\.pd$", name) - if m: - helppatch = os.path.join(root, m.string) - fd = open(helppatch, 'r') - contents = fd.readlines() - fd.close() - firstline = contents[0] - contents.remove(firstline) -# fd = open(helppatch + ".new", 'w') - print helppatch - fd = open(helppatch, 'w') - fd.write(firstline) -# fd.write("#X declare -lib " + library.lower() + ";\n") - fd.write("#X declare -path ..;\n") - fd.writelines(contents) - fd.close() - diff --git a/scripts/parse-help-patches.pl b/scripts/parse-help-patches.pl deleted file mode 100755 index a96b16377..000000000 --- a/scripts/parse-help-patches.pl +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/perl - -# WARNING! This script is really ugly! - -# to use: -# 1) make a folder, like en-import -# 2) run ../parse-help-patches.pl in it -# 3) voila! -# -# on the server, run: -# find en-import/ -type f -name \*.txt | ./wiki_import.sh -s 'Top level' - -use strict; -use warnings; -use Text::CSV_PP; - -my $line = ""; -my @lines; -my $lineCount = 0; -my $column; -my $lastColumn = 0; -my $printText = ""; - -my %classnames = (); -my %xyhash = (); - -my $libraryName = ""; -my $objectclassName = ""; -my $fileName = ""; - -my $pageName = ""; -my $abbreviationName = ""; -my $descriptionName = ""; -my $categoryName = ""; -my $datatypeName = ""; - -#------------------------------------------------------------------------------# -# TRANSLATION VARIABLES -#------------------------------------------------------------------------------# - -# wikipedia terms -my $stub = ""; -my $template = ""; -my $category = ""; -my $infobox = ""; - -# pdpedia terms -my $objectclass = ""; - -# page headers -my $inlets = ""; -my $outlets = ""; -my $arguments = ""; -my $messages = ""; - -# infobox -my $name = ""; -my $description = ""; -my $abbreviation = ""; -my $library = ""; -my $author = ""; -my $developer = ""; -my $releaseVersion = ""; -my $releaseDate = ""; -my $dependencies = ""; -my $license = ""; -my $website = ""; -my $programmingLanguage = ""; -my $platform = ""; -my $operatingSystem = ""; -my $language = ""; -my $dataType = ""; -my $distribution = ""; -my $status = ""; -my $caption = ""; - -#------------------------------------------------------------------------------# -# Français - -# wikipedia terms -$stub = "Ébauche"; -$template = "Modèle"; -$category = "Catégorie"; -$infobox = "Infos"; - -# pdpedia terms -$objectclass = "Classe d'objets"; - -# page headers -$inlets = "Entrées"; -$outlets = "Sorties"; -$arguments = "Arguments"; -$messages = "Messages"; - -# infobox -$name = "Nom"; -$description = "Description"; -$abbreviation = "Abréviation"; -$library = "Bibliothèque"; -$author = "Auteur"; -$developer = "Développeur"; -$releaseVersion = "Version"; -$releaseDate = "Date"; -$dependencies = "Dépendances"; -$license = "Licence"; -$website = "Site Web"; -$programmingLanguage = "Langage de programmation"; -$platform = "Plate-forme"; -$operatingSystem = "Système d'exploitation"; -$language = "Langue"; -$dataType = "Type de données"; -$distribution = "Distribution"; - -$status = "État"; -$caption = "Légende"; -$language = "Langue"; - - - - -#------------------------------------------------------------------------------# -# PARSE CSV -#------------------------------------------------------------------------------# -my $csvfile = '/Users/hans/Desktop/TODO/wiki_files_hacked/objectlist.csv'; -my $csv = Text::CSV_PP->new(); -my %csvhash = (); - -open (CSV, "<", $csvfile) or die $!; -my @csvlines = split(/\012\015?|\015\012?/,(join '',<CSV>)); -foreach (@csvlines) { - if ($csv->parse($_)) { - my @columns = $csv->fields(); - $csvhash{ $columns[0] }{ $columns[2] } = "$columns[0],$columns[2],$columns[3],$columns[4],$columns[5],$columns[7]"; - #print("$columns[0],$columns[2] | "); - } else { - my $err = $csv->error_input; - print "Failed to parse line: $err"; - } -} -close CSV; - -#------------------------------------------------------------------------------# -# PARSE HELP FILES -#------------------------------------------------------------------------------# - -foreach (`/sw/bin/find /Users/hans/Desktop/TODO/wiki_files_hacked/5.reference/ -type f -name '*.pd'`) { - chop; - $fileName = ""; - if( (m|.*/5\.reference/([a-zA-Z0-9_-]+)/(.+)-help\.pd|) || (m|.*/5\.reference/([a-zA-Z0-9_-]+)/(.+)\.pd|) ) { -# print("$1 , $2\t"); - if( $1 eq 'zflatspace' ) { $libraryName = "flatspace";} - else {$libraryName = lc($1); } - $objectclassName = $2; - $fileName = $_; - } - -# print "filename: $fileName\n"; - if ($fileName) { - $printText = ""; # init container - %xyhash = (); # init sorting hash - - open(HELPPATCH, "$fileName"); - undef $/; # $/ defines the "end of record" character - $_ = <HELPPATCH>; # read the whole file into the scalar - close HELPPATCH; - $/ = "\n"; # Restore for normal behaviour later in script - - s| \\||g; # remove Pd-style escaping - s|([^;])\n|$1 |g; # remove extra newlines - s|\(http://.*\)\([ \n]\)|[$1]$2|g; - - @lines = split(';\n', $_); - - foreach (@lines) { - if (m|^#X text ([0-9]+) ([0-9]+) (.*)|) { - $xyhash{ $2 }{ $1 } = $3; - # print("$lineCount @ $1,$2: $3\n"); - } - $lineCount++; - } - for ($column = -300; $column < 1501; $column += 300) { - foreach my $yKey ( sort {$a <=> $b} keys(%xyhash) ) { - foreach my $xKey ( keys(%{$xyhash{$yKey}}) ) { - if ( ($xKey > $lastColumn) && ($xKey < $column) ) { - $printText .= "$xyhash{$yKey}{$xKey}\n\n"; - #print("TEST $xKey,$yKey: $xyhash{$yKey}{$xKey}\n"); - } - } - } - $lastColumn = $column; - } - - my $myColumns = $csvhash{$libraryName}{$objectclassName}; - my @myColumns; - if($myColumns) { @myColumns = split(',', $myColumns); } - if($myColumns[2]) { $abbreviationName = $myColumns[2]; } if( $classnames{$objectclassName} ) { - $pageName = "${objectclassName}_(${libraryName})"; - } else { - $pageName = "${objectclassName}"; - } - - - mkdir($libraryName); - if( $classnames{$objectclassName} ) { - $pageName = "${objectclassName}_(${libraryName})"; - } else { - $pageName = "${objectclassName}"; - } - open(OBJECTCLASS, ">$libraryName/${pageName}.txt"); - print(OBJECTCLASS "{{Infobox $objectclass\n"); - print(OBJECTCLASS "| $name = $objectclassName\n"); - if($abbreviationName) { - print(OBJECTCLASS "| $abbreviation = $abbreviationName\n");} - print(OBJECTCLASS "| $description = \n"); - print(OBJECTCLASS "| $dataType = \n"); - print(OBJECTCLASS "| $library = [[$libraryName]]\n"); - print(OBJECTCLASS "| $author = {{$libraryName " . lc(${author}) . "}}\n"); - print(OBJECTCLASS "| $license = {{$libraryName " . lc(${license}) . "}}\n"); - print(OBJECTCLASS "| $status = {{$libraryName " . lc(${status}) . "}}\n"); - print(OBJECTCLASS "| $website = {{$libraryName " . lc(${website}) . "}}\n"); - print(OBJECTCLASS "| $releaseVersion = {{$libraryName " . lc(${releaseVersion}) . "}}\n"); - print(OBJECTCLASS "| $releaseDate = {{$libraryName " . lc(${releaseDate}) . "}}\n"); - print(OBJECTCLASS "| $distribution = {{$libraryName " . lc(${distribution}) . "}}\n"); - print(OBJECTCLASS "| $platform = [[GNU/Linux]], [[Mac OS X]], [[Windows]]\n"); - print(OBJECTCLASS "}}\n\n"); -# print(OBJECTCLASS "\n$printText\n\n\n"); - print(OBJECTCLASS "==$inlets==\n\n\n"); - print(OBJECTCLASS "==$outlets==\n\n\n"); - print(OBJECTCLASS "==$arguments==\n\n\n"); -# print(OBJECTCLASS "==$messages==\n\n\n"); - print(OBJECTCLASS "{{${objectclass}-${stub}}} \n\n"); - print(OBJECTCLASS "[[$category:$objectclass]]\n"); - print(OBJECTCLASS "[[$category:$libraryName]]\n"); -# if($category) { -# print(OBJECTCLASS "[[$category:$categoryName]]\n"); -# } - print(OBJECTCLASS "\n\n"); - print(OBJECTCLASS "[[de:$pageName]]\n"); - print(OBJECTCLASS "[[en:$pageName]]\n"); - print(OBJECTCLASS "[[es:$pageName]]\n"); -# print(OBJECTCLASS "[[fr:$pageName]]\n"); - print(OBJECTCLASS "[[it:$pageName]]\n"); - print(OBJECTCLASS "[[ja:$pageName]]\n"); - print(OBJECTCLASS "[[nl:$pageName]]\n"); - print(OBJECTCLASS "[[pt:$pageName]]\n"); - print(OBJECTCLASS "[[ru:$pageName]]\n"); - print(OBJECTCLASS "[[tr:$pageName]]\n"); - print(OBJECTCLASS "\n\n"); - close(OBJECTCLASS); - - $classnames{$objectclassName} = 1; - } -} - diff --git a/scripts/update-developer-layout.sh b/scripts/update-developer-layout.sh deleted file mode 100755 index cf3ea0697..000000000 --- a/scripts/update-developer-layout.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# this script updates all code from subversion in the standard developer's layout. -# <hans@at.or.at> - -# Usage: just run it and it should find things if you have your stuff layed -# out in the standard dev layout, or used checkout-developer-layout.sh to -# checkout your pd source tree - -cvs_root_dir=$(echo $0 | sed 's|\(.*\)/.*$|\1|')/.. - -SVNOPTIONS="--ignore-externals" - -cd $cvs_root_dir -echo "Running svn update:" -svn update ${SVNOPTIONS} -echo "Running svn update for Gem:" -for section in Gem videoIO; do - echo "$section" - cd $section - svn update ${SVNOPTIONS} - cd .. -done -- GitLab