From cf12b356097540ac1ce024066fc5ad9a70cc2fdb Mon Sep 17 00:00:00 2001
From: Sojourner Truth <jon.w.wilkes@gmail.com>
Date: Tue, 19 Jul 2016 17:47:21 -0400
Subject: [PATCH] bump jmmmp to version 0.46 grabbed it from
 http://puredata.info/downloads/jmmmp/releases/0.46

---
 abstractions/jmmmp/Makefile               |  332 -----
 abstractions/jmmmp/README.txt             |   27 +-
 abstractions/jmmmp/appent-help.pd         |    3 +
 abstractions/jmmmp/ardourjack-gui-help.pd |   13 +
 abstractions/jmmmp/array+-help.pd         |    0
 abstractions/jmmmp/array+.pd              |  201 ---
 abstractions/jmmmp/array-edit-help.pd     |    4 +
 abstractions/jmmmp/array-edit.pd          | 1559 +++++++++++----------
 abstractions/jmmmp/bezier-help.pd         |   97 +-
 abstractions/jmmmp/bezier.pd              |  357 +++--
 abstractions/jmmmp/bezier~-help.pd        |  146 ++
 abstractions/jmmmp/bezier~.pd             |  730 ++++++++++
 abstractions/jmmmp/but-help.pd            |   13 +-
 abstractions/jmmmp/butt-help.pd           |   13 +-
 abstractions/jmmmp/clock-help.pd          |   20 +-
 abstractions/jmmmp/dacc~-help.pd          |   77 +
 abstractions/jmmmp/dacc~.pd               |  126 ++
 abstractions/jmmmp/dacm~-help.pd          |   10 +
 abstractions/jmmmp/datei-o-help.pd        |   11 +
 abstractions/jmmmp/datei-r-help.pd        |   11 +
 abstractions/jmmmp/datei-w-help.pd        |   11 +
 abstractions/jmmmp/debian/changelog       |    5 -
 abstractions/jmmmp/debian/compat          |    1 -
 abstractions/jmmmp/debian/control         |   18 -
 abstractions/jmmmp/debian/copyright       |   49 -
 abstractions/jmmmp/debian/gbp.conf        |    7 -
 abstractions/jmmmp/debian/links           |    2 -
 abstractions/jmmmp/debian/rules           |   17 -
 abstractions/jmmmp/debian/source/format   |    1 -
 abstractions/jmmmp/debian/watch           |    2 -
 abstractions/jmmmp/ds-color-sel-help.pd   |   56 +
 abstractions/jmmmp/ds-color-sel.pd        | 1125 +++++++++++++++
 abstractions/jmmmp/dsp01-help.pd          |   34 +-
 abstractions/jmmmp/dsp01.pd               |   14 +-
 abstractions/jmmmp/examples/rgb.ppm       |  636 +++++++++
 abstractions/jmmmp/expr_scale-help.pd     |   23 +
 abstractions/jmmmp/f+-help.pd             |   45 +-
 abstractions/jmmmp/f+.pd                  |   45 +-
 abstractions/jmmmp/gui-edit-help.pd       |    3 +
 abstractions/jmmmp/jmmmp-meta.pd          |   18 +-
 abstractions/jmmmp/jp.menu-audio.txt      |    4 +
 abstractions/jmmmp/jp.menu-country.txt    |   16 +
 abstractions/jmmmp/jp.menu-help.pd        |  187 +++
 abstractions/jmmmp/jp.menu.pd             |  391 ++++++
 abstractions/jmmmp/lbang-help.pd          |   15 +-
 abstractions/jmmmp/liner+~-help.pd        |   16 +-
 abstractions/jmmmp/liner~-help.pd         |   12 +
 abstractions/jmmmp/m-i-help.pd            |   12 +
 abstractions/jmmmp/m-i.pd                 |  128 +-
 abstractions/jmmmp/maat~-help.pd          |   65 +-
 abstractions/jmmmp/maat~.pd               |   55 +-
 abstractions/jmmmp/mat-~-help.pd          |   74 +
 abstractions/jmmmp/mat-~.pd               |   58 +-
 abstractions/jmmmp/matrixctrl-help.pd     |  259 ++++
 abstractions/jmmmp/matrixctrl.pd          |  543 +++++++
 abstractions/jmmmp/mat~-help.pd           |   50 +-
 abstractions/jmmmp/mat~.pd                |   28 +-
 abstractions/jmmmp/metrum-help.pd         |   16 +-
 abstractions/jmmmp/met~-help.pd           |   14 +
 abstractions/jmmmp/mk-help.pd             |   11 +-
 abstractions/jmmmp/oscD-help.pd           |   10 +
 abstractions/jmmmp/oscS-help.pd           |   16 +-
 abstractions/jmmmp/pd-colors-help.pd      |    4 +
 abstractions/jmmmp/pd-colors.pd           |  985 +------------
 abstractions/jmmmp/pix2canvas-help.pd     |   32 +
 abstractions/jmmmp/pix2canvas.pd          |  191 +++
 abstractions/jmmmp/prepent-help.pd        |    3 +
 abstractions/jmmmp/rec-name-help.pd       |   29 +-
 abstractions/jmmmp/rgb-color-help.pd      |   34 +
 abstractions/jmmmp/rgb-color.pd           |  212 +++
 abstractions/jmmmp/sguigot-help.pd        |   77 +-
 abstractions/jmmmp/sliders-help.pd        |   21 +-
 abstractions/jmmmp/snaps~-help.pd         |   14 +-
 abstractions/jmmmp/snaps~.pd              |   14 +-
 abstractions/jmmmp/spectrogram~-help.pd   |   11 +
 abstractions/jmmmp/stoppuhr-clock-help.pd |    3 +
 abstractions/jmmmp/stoppuhr-help.pd       |   15 +-
 abstractions/jmmmp/swatch-gui-help.pd     |   43 +
 abstractions/jmmmp/swatch-gui.pd          |  440 ++++++
 abstractions/jmmmp/swatch-help.pd         |   38 +
 abstractions/jmmmp/swatch.pd              |  260 ++++
 abstractions/jmmmp/tastin-help.pd         |   53 +-
 abstractions/jmmmp/tastin.pd              |   52 +-
 abstractions/jmmmp/uhr-help.pd            |   11 +-
 abstractions/jmmmp/uhr.pd                 |   86 +-
 85 files changed, 7516 insertions(+), 2954 deletions(-)
 delete mode 100644 abstractions/jmmmp/Makefile
 delete mode 100644 abstractions/jmmmp/array+-help.pd
 delete mode 100644 abstractions/jmmmp/array+.pd
 create mode 100644 abstractions/jmmmp/bezier~-help.pd
 create mode 100644 abstractions/jmmmp/bezier~.pd
 create mode 100644 abstractions/jmmmp/dacc~-help.pd
 create mode 100644 abstractions/jmmmp/dacc~.pd
 delete mode 100644 abstractions/jmmmp/debian/changelog
 delete mode 100644 abstractions/jmmmp/debian/compat
 delete mode 100644 abstractions/jmmmp/debian/control
 delete mode 100644 abstractions/jmmmp/debian/copyright
 delete mode 100644 abstractions/jmmmp/debian/gbp.conf
 delete mode 100644 abstractions/jmmmp/debian/links
 delete mode 100755 abstractions/jmmmp/debian/rules
 delete mode 100644 abstractions/jmmmp/debian/source/format
 delete mode 100644 abstractions/jmmmp/debian/watch
 create mode 100644 abstractions/jmmmp/ds-color-sel-help.pd
 create mode 100644 abstractions/jmmmp/ds-color-sel.pd
 create mode 100644 abstractions/jmmmp/examples/rgb.ppm
 create mode 100644 abstractions/jmmmp/expr_scale-help.pd
 create mode 100644 abstractions/jmmmp/gui-edit-help.pd
 create mode 100644 abstractions/jmmmp/jp.menu-audio.txt
 create mode 100644 abstractions/jmmmp/jp.menu-country.txt
 create mode 100644 abstractions/jmmmp/jp.menu-help.pd
 create mode 100644 abstractions/jmmmp/jp.menu.pd
 create mode 100644 abstractions/jmmmp/matrixctrl-help.pd
 create mode 100644 abstractions/jmmmp/matrixctrl.pd
 create mode 100644 abstractions/jmmmp/pix2canvas-help.pd
 create mode 100644 abstractions/jmmmp/pix2canvas.pd
 create mode 100644 abstractions/jmmmp/rgb-color-help.pd
 create mode 100644 abstractions/jmmmp/rgb-color.pd
 create mode 100644 abstractions/jmmmp/stoppuhr-clock-help.pd
 create mode 100644 abstractions/jmmmp/swatch-gui-help.pd
 create mode 100644 abstractions/jmmmp/swatch-gui.pd
 create mode 100644 abstractions/jmmmp/swatch-help.pd
 create mode 100644 abstractions/jmmmp/swatch.pd

diff --git a/abstractions/jmmmp/Makefile b/abstractions/jmmmp/Makefile
deleted file mode 100644
index 982f94b48..000000000
--- a/abstractions/jmmmp/Makefile
+++ /dev/null
@@ -1,332 +0,0 @@
-## Pd library template version 1.0.6
-# For instructions on how to use this template, see:
-#  http://puredata.info/docs/developer/MakefileTemplate
-LIBRARY_NAME = jmmmp
-
-# add your .c source files, one object per file, to the SOURCES
-# variable, help files will be included automatically
-SOURCES = 
-
-# list all pd objects (i.e. myobject.pd) files here, and their helpfiles will
-# be included automatically
-PDOBJECTS = appent.pd ardourjack-gui.pd array+.pd array-edit.pd but.pd clock.pd dacm~.pd datei-o.pd datei-r.pd datei-w.pd dsp01.pd f+.pd lbang.pd liner+~.pd liner~.pd m-i.pd maat~.pd mat~.pd metrum.pd met~.pd mk.pd oscD.pd oscS.pd pd-colors.pd prepent.pd rec-name.pd sguigot.pd sliders.pd snaps~.pd spectrogram~.pd stoppuhr.pd tastin.pd uhr.pd
-
-# example patches and related files, in the 'examples' subfolder
-EXAMPLES = ardour_icon_48px.gif computer_keyboard.png computer_keyboard_active.png crossfade-in-S1.png crossfade-in-S2.png crossfade-in-constant-power.png crossfade-in-fast-cut.png crossfade-in-linear.png crossfade-in-long-cut.png crossfade-in-short-cut.png crossfade-in-slow-cut.png crossfade-out-S1.png crossfade-out-S2.png crossfade-out-constant-power.png crossfade-out-fast-cut.png crossfade-out-linear.png crossfade-out-long-cut.png crossfade-out-short-cut.png crossfade-out-slow-cut.png fader_belt.png fader_belt_h.png hide.png nudge_left.png nudge_right.png record_normal_red.gif record_tape_red.png strip_width.png transport_end.gif transport_loop.gif transport_play.gif transport_range.gif transport_record.gif transport_start.gif transport_stop.gif zoom_full.png zoom_in.png zoom_out.png 
-
-# manuals and related files, in the 'manual' subfolder
-MANUAL = 
-
-# if you want to include any other files in the source and binary tarballs,
-# list them here.  This can be anything from header files, test patches,
-# documentation, etc.  README.txt and LICENSE.txt are required and therefore
-# automatically included
-EXTRA_DIST = 
-
-
-
-#------------------------------------------------------------------------------#
-#
-# things you might need to edit if you are using other C libraries
-#
-#------------------------------------------------------------------------------#
-
-# -I"$(PD_INCLUDE)/pd" supports the header location for 0.43
-CFLAGS = -I"$(PD_INCLUDE)/pd" -Wall -W -g
-LDFLAGS =  
-LIBS = 
-
-#------------------------------------------------------------------------------#
-#
-# you shouldn't need to edit anything below here, if we did it right :)
-#
-#------------------------------------------------------------------------------#
-
-# get library version from meta file
-LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
-
-CFLAGS += -DPD -DVERSION='"$(LIBRARY_VERSION)"'
-
-PD_INCLUDE = $(PD_PATH)/include
-# where to install the library, overridden below depending on platform
-prefix = /usr/local
-libdir = $(prefix)/lib
-pkglibdir = $(libdir)/pd-externals
-objectsdir = $(pkglibdir)
-
-INSTALL = install
-INSTALL_PROGRAM = $(INSTALL) -p -m 644
-INSTALL_DATA = $(INSTALL) -p -m 644
-INSTALL_DIR     = $(INSTALL) -p -m 755 -d
-
-ALLSOURCES := $(SOURCES) $(SOURCES_android) $(SOURCES_cygwin) $(SOURCES_macosx) \
-	         $(SOURCES_iphoneos) $(SOURCES_linux) $(SOURCES_windows)
-
-DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
-ORIGDIR=pd-$(LIBRARY_NAME:~=)_$(LIBRARY_VERSION)
-
-UNAME := $(shell uname -s)
-ifeq ($(UNAME),Darwin)
-  CPU := $(shell uname -p)
-  ifeq ($(CPU),arm) # iPhone/iPod Touch
-    SOURCES += $(SOURCES_iphoneos)
-    EXTENSION = pd_darwin
-    OS = iphoneos
-    PD_PATH = /Applications/Pd-extended.app/Contents/Resources
-    IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
-    CC=$(IPHONE_BASE)/gcc
-    CPP=$(IPHONE_BASE)/cpp
-    CXX=$(IPHONE_BASE)/g++
-    ISYSROOT = -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk
-    IPHONE_CFLAGS = -miphoneos-version-min=3.0 $(ISYSROOT) -arch armv6
-    OPT_CFLAGS = -fast -funroll-loops -fomit-frame-pointer
-	CFLAGS := $(IPHONE_CFLAGS) $(OPT_CFLAGS) $(CFLAGS)
-    LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
-    LIBS += -lc 
-    STRIP = strip -x
-    DISTBINDIR=$(DISTDIR)-$(OS)
-  else # Mac OS X
-    SOURCES += $(SOURCES_macosx)
-    EXTENSION = pd_darwin
-    OS = macosx
-    PD_PATH = /Applications/Pd-extended.app/Contents/Resources
-    OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
-# build universal 32-bit on 10.4 and 32/64 on newer
-    ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8)
-      FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4
-    else
-      FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4
-      SOURCES += $(SOURCES_iphoneos)
-    endif
-    CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
-    LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
-    # if the 'pd' binary exists, check the linking against it to aid with stripping
-    LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
-    LIBS += -lc 
-    STRIP = strip -x
-    DISTBINDIR=$(DISTDIR)-$(OS)
-# install into ~/Library/Pd on Mac OS X since /usr/local isn't used much
-    pkglibdir=$(HOME)/Library/Pd
-  endif
-endif
-ifeq ($(UNAME),Linux)
-  CPU := $(shell uname -m)
-  SOURCES += $(SOURCES_linux)
-  EXTENSION = pd_linux
-  OS = linux
-  PD_PATH = /usr
-  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
-  CFLAGS += -fPIC
-  LDFLAGS += -Wl,--export-dynamic  -shared -fPIC
-  LIBS += -lc
-  STRIP = strip --strip-unneeded -R .note -R .comment
-  DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
-endif
-ifeq ($(UNAME),GNU)
-  # GNU/Hurd, should work like GNU/Linux for basically all externals
-  CPU := $(shell uname -m)
-  SOURCES += $(SOURCES_linux)
-  EXTENSION = pd_linux
-  OS = linux
-  PD_PATH = /usr
-  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
-  CFLAGS += -fPIC
-  LDFLAGS += -Wl,--export-dynamic  -shared -fPIC
-  LIBS += -lc
-  STRIP = strip --strip-unneeded -R .note -R .comment
-  DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
-endif
-ifeq ($(UNAME),GNU/kFreeBSD)
-  # Debian GNU/kFreeBSD, should work like GNU/Linux for basically all externals
-  CPU := $(shell uname -m)
-  SOURCES += $(SOURCES_linux)
-  EXTENSION = pd_linux
-  OS = linux
-  PD_PATH = /usr
-  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
-  CFLAGS += -fPIC
-  LDFLAGS += -Wl,--export-dynamic  -shared -fPIC
-  LIBS += -lc
-  STRIP = strip --strip-unneeded -R .note -R .comment
-  DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
-endif
-ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
-  CPU := $(shell uname -m)
-  SOURCES += $(SOURCES_cygwin)
-  EXTENSION = dll
-  OS = cygwin
-  PD_PATH = $(cygpath $(PROGRAMFILES))/pd
-  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
-  CFLAGS += 
-  LDFLAGS += -Wl,--export-dynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
-  LIBS += -lc -lpd
-  STRIP = strip --strip-unneeded -R .note -R .comment
-  DISTBINDIR=$(DISTDIR)-$(OS)
-endif
-ifeq (MINGW,$(findstring MINGW,$(UNAME)))
-  CPU := $(shell uname -m)
-  SOURCES += $(SOURCES_windows)
-  EXTENSION = dll
-  OS = windows
-  PD_PATH = $(shell cd "$(PROGRAMFILES)"/pd && pwd)
-  OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
-  CFLAGS += -mms-bitfields
-  LDFLAGS += -s -shared -Wl,--enable-auto-import
-  LIBS += -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj" -lpd -lwsock32 -lkernel32 -luser32 -lgdi32
-  STRIP = strip --strip-unneeded -R .note -R .comment
-  DISTBINDIR=$(DISTDIR)-$(OS)
-endif
-
-# in case somebody manually set the HELPPATCHES above
-HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd)
-
-CFLAGS += $(OPT_CFLAGS)
-
-
-.PHONY = install libdir_install single_install install-doc install-exec install-examples install-manual clean dist etags $(LIBRARY_NAME)
-
-all: $(SOURCES:.c=.$(EXTENSION))
-
-%.o: %.c
-	$(CC) $(CFLAGS) -o "$*.o" -c "$*.c"
-
-%.$(EXTENSION): %.o
-	$(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o"  $(LIBS)
-	chmod a-x "$*.$(EXTENSION)"
-
-# this links everything into a single binary file
-$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o
-	$(CC) $(LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(LIBS)
-	chmod a-x $(LIBRARY_NAME).$(EXTENSION)
-
-install: libdir_install
-
-# The meta and help files are explicitly installed to make sure they are
-# actually there.  Those files are not optional, then need to be there.
-libdir_install: $(SOURCES:.c=.$(EXTENSION)) install-doc install-examples install-manual
-	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
-	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd \
-		$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
-	test -z "$(strip $(SOURCES))" || (\
-		$(INSTALL_PROGRAM) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) && \
-		$(STRIP) $(addprefix $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/,$(SOURCES:.c=.$(EXTENSION))))
-	test -z "$(strip $(PDOBJECTS))" || \
-		$(INSTALL_DATA) $(PDOBJECTS) \
-			$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
-
-# install library linked as single binary
-single_install: $(LIBRARY_NAME) install-doc install-exec
-	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
-	$(INSTALL_PROGRAM) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
-	$(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION)
-
-install-doc:
-	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
-	test -z "$(strip $(SOURCES) $(PDOBJECTS))" || \
-		$(INSTALL_DATA) $(HELPPATCHES) \
-			$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
-	$(INSTALL_DATA) README.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/README.txt
-	$(INSTALL_DATA) LICENSE.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/LICENSE.txt
-
-install-examples:
-	test -z "$(strip $(EXAMPLES))" || \
-		$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples && \
-		for file in $(EXAMPLES); do \
-			$(INSTALL_DATA) examples/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples; \
-		done
-
-install-manual:
-	test -z "$(strip $(MANUAL))" || \
-		$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual && \
-		for file in $(MANUAL); do \
-			$(INSTALL_DATA) manual/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual; \
-		done
-
-
-clean:
-	-rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o)
-	-rm -f -- $(SOURCES:.c=.$(EXTENSION))
-	-rm -f -- $(LIBRARY_NAME).o
-	-rm -f -- $(LIBRARY_NAME).$(EXTENSION)
-
-distclean: clean
-	-rm -f -- $(DISTBINDIR).tar.gz
-	-rm -rf -- $(DISTBINDIR)
-	-rm -f -- $(DISTDIR).tar.gz
-	-rm -rf -- $(DISTDIR)
-	-rm -f -- $(ORIGDIR).tar.gz
-	-rm -rf -- $(ORIGDIR)
-
-
-$(DISTBINDIR):
-	$(INSTALL_DIR) $(DISTBINDIR)
-
-libdir: all $(DISTBINDIR)
-	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd  $(DISTBINDIR)
-	$(INSTALL_DATA) $(SOURCES)  $(DISTBINDIR)
-	$(INSTALL_DATA) $(HELPPATCHES) $(DISTBINDIR)
-	test -z "$(strip $(EXTRA_DIST))" || \
-		$(INSTALL_DATA) $(EXTRA_DIST)    $(DISTBINDIR)
-#	tar --exclude-vcs -czpf $(DISTBINDIR).tar.gz $(DISTBINDIR)
-
-$(DISTDIR):
-	$(INSTALL_DIR) $(DISTDIR)
-
-$(ORIGDIR):
-	$(INSTALL_DIR) $(ORIGDIR)
-
-dist: $(DISTDIR)
-	$(INSTALL_DATA) Makefile  $(DISTDIR)
-	$(INSTALL_DATA) README.txt $(DISTDIR)
-	$(INSTALL_DATA) LICENSE.txt $(DISTDIR)
-	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd  $(DISTDIR)
-	test -z "$(strip $(ALLSOURCES))" || \
-		$(INSTALL_DATA) $(ALLSOURCES)  $(DISTDIR)
-	test -z "$(strip $(PDOBJECTS))" || \
-		$(INSTALL_DATA) $(PDOBJECTS)  $(DISTDIR)
-	test -z "$(strip $(HELPPATCHES))" || \
-		$(INSTALL_DATA) $(HELPPATCHES) $(DISTDIR)
-	test -z "$(strip $(EXTRA_DIST))" || \
-		$(INSTALL_DATA) $(EXTRA_DIST)    $(DISTDIR)
-	test -z "$(strip $(EXAMPLES))" || \
-		$(INSTALL_DIR) $(DISTDIR)/examples && \
-		for file in $(EXAMPLES); do \
-			$(INSTALL_DATA) examples/$$file $(DISTDIR)/examples; \
-		done
-	test -z "$(strip $(MANUAL))" || \
-		$(INSTALL_DIR) $(DISTDIR)/manual && \
-		for file in $(MANUAL); do \
-			$(INSTALL_DATA) manual/$$file $(DISTDIR)/manual; \
-		done
-	tar --exclude-vcs -czpf $(DISTDIR).tar.gz $(DISTDIR)
-
-# make a Debian source package
-dpkg-source:
-	debclean
-	make distclean dist
-	mv $(DISTDIR) $(ORIGDIR)
-	tar --exclude-vcs -czpf ../$(ORIGDIR).orig.tar.gz $(ORIGDIR)
-	rm -f -- $(DISTDIR).tar.gz
-	rm -rf -- $(DISTDIR) $(ORIGDIR)
-	cd .. && dpkg-source -b $(LIBRARY_NAME)
-
-etags:
-	etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h
-
-showsetup:
-	@echo "CFLAGS: $(CFLAGS)"
-	@echo "LDFLAGS: $(LDFLAGS)"
-	@echo "LIBS: $(LIBS)"
-	@echo "PD_INCLUDE: $(PD_INCLUDE)"
-	@echo "PD_PATH: $(PD_PATH)"
-	@echo "objectsdir: $(objectsdir)"
-	@echo "LIBRARY_NAME: $(LIBRARY_NAME)"
-	@echo "LIBRARY_VERSION: $(LIBRARY_VERSION)"
-	@echo "SOURCES: $(SOURCES)"
-	@echo "PDOBJECTS: $(PDOBJECTS)"
-	@echo "ALLSOURCES: $(ALLSOURCES)"
-	@echo "UNAME: $(UNAME)"
-	@echo "CPU: $(CPU)"
-	@echo "pkglibdir: $(pkglibdir)"
-	@echo "DISTDIR: $(DISTDIR)"
-	@echo "ORIGDIR: $(ORIGDIR)"
diff --git a/abstractions/jmmmp/README.txt b/abstractions/jmmmp/README.txt
index 9b7d31bcf..92c896903 100644
--- a/abstractions/jmmmp/README.txt
+++ b/abstractions/jmmmp/README.txt
@@ -1,46 +1,61 @@
 Abstractions from João Pais
 
-(c) 2005-9 João Pais - jmmmpais@googlemail.com
+Version 0.46
+
+(c) 2005-2016 João Pais - jmmmpais@gmail.com
 Released under the BSD license (more information in each abstraction).
 
 
-This package has several base utilities that make coding a bit easier. It is composed of the following abstractions:
+This package has several utilities with different functions. It is composed of abstractions only.
 
-array-edit - edit properties of arrays and populate them following several formulas
+ardourjack-gui - Controls ardour transport and jack settings from Pd
+array-edit - Edit properties of arrays and populate them following several formulas
+bezier - Transfer function GUI with one cubic bézier curve
+bezier~ - Transfer function GUI with one cubic bézier curve at audio rate
 but - Monochrome bang button
+butt - Color-changing Toggle Button
 clock - Chronometer with display in seconds
+dacc~ - dynamic dac~ outlet up to 32 channels
 dacm~ - Mono dac~ for lazy people
 datei-o - Sends the message "open ../../"
 datei-r - Sends the message "read ../../"
 datei-w - Sends the message "write ../../"
+ds-color-sel - color selector for data structures
 dsp01 - DSP switch
 f+ - Counter with variable increment
 gui-edit - edit standard GUI objects fast
+jp.menu - Dropdown menu programmed with data structures
 lbang - loadbang which can be triggered more often
 liner~ - practical implementation of [line~]
 liner+~ - practical implementation of signal envelopping
 mat~ - Level meter with amplitude control
+mat-~ - Level meter with amplitude control, horizontal
 maat~ - Level meter with amplitude control, stereo
+matrixctrl - GUI for [iemmatrix/mtx_mul~]
 met~ - Level meter with amplitude control (with VU, too CPU expensive for me)
 metrum - Metro with GUI
 m-i - Automatic conversion of MIDI controller
-mk - shows the controller number and MIDI value
+mk - Visual display of MIDI inputs
 oscD - Counts received OSC messages
 oscS - Interface for sendOSC
 pd-colors - Pd color palettes (Data Structures + Tcl/Tk)
+pix2canvas - Convert images into canvas
 rec-name - Automatic naming for a record/playback engine
+rgb-color - Pick RGB colors for your GUI objects
 sguigot - spigot GUI implementation
 sliders - GUI for incoming midi data
 snaps~ - snapshot~ GUI implementation
 spectrogram~ - Spectrogram with 512 bins resolution
 stoppuhr - Chronometer with two layers
+swatch - Pick a color using the hue-saturation chart
+swatch-gui - Pick a color for your GUI using the hue-saturation chart
 tastin - Gate for keyboard input
 uhr - Shows the time
 
 
-It is recomended to use these abstractions with Pd-extended, since I don't keep track of which externals are used. Some abstractions use other ones of this package, so it is also better to have always the whole package in one place.
+It is recomended to use these abstractions with Pd-extended, since I don't keep track of which externals are used. Some abstractions use other ones of this package, so it is also better to have always the whole package together.
 
-2009.02.20
+2016.05.27
 
 
 Non-working or discarded abstractions:
diff --git a/abstractions/jmmmp/appent-help.pd b/abstractions/jmmmp/appent-help.pd
index e69de29bb..8660eb983 100644
--- a/abstractions/jmmmp/appent-help.pd
+++ b/abstractions/jmmmp/appent-help.pd
@@ -0,0 +1,3 @@
+#N canvas 329 129 450 300 10;
+#X obj 189 121 appent;
+#X text 73 61 [list append]--[list trim] shortcut;
diff --git a/abstractions/jmmmp/ardourjack-gui-help.pd b/abstractions/jmmmp/ardourjack-gui-help.pd
index e69de29bb..64998ce10 100644
--- a/abstractions/jmmmp/ardourjack-gui-help.pd
+++ b/abstractions/jmmmp/ardourjack-gui-help.pd
@@ -0,0 +1,13 @@
+#N canvas 436 287 450 300 10;
+#X obj 165 118 ardourjack-gui;
+#N canvas 49 336 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 12 5 DESCRIPTION Controls ardour transport and jack settings
+from Pd;
+#X text 12 35 KEYWORDS ardour jack transport;
+#X text 12 135 VERSION 09.05.2013;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X restore 392 276 pd META;
+#X text 70 40 Controls ardour transport and jack settings from Pd;
diff --git a/abstractions/jmmmp/array+-help.pd b/abstractions/jmmmp/array+-help.pd
deleted file mode 100644
index e69de29bb..000000000
diff --git a/abstractions/jmmmp/array+.pd b/abstractions/jmmmp/array+.pd
deleted file mode 100644
index d1d93fe36..000000000
--- a/abstractions/jmmmp/array+.pd
+++ /dev/null
@@ -1,201 +0,0 @@
-#N struct 1094-graph float x float y float dist float resol float width
-float stres array 1094-boxes 1094-box;
-#N struct 1094-box float y float width;
-#N canvas 330 25 920 794 10;
-#N canvas 651 507 450 300 \$0-box 0;
-#X obj 40 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
-;
-#X obj 22 26 struct \$0-box float y float width;
-#X obj 28 114 drawpolygon 0 2 0 0 width 0;
-#X connect 0 0 2 0;
-#X restore 753 114 pd \$0-box;
-#N canvas 600 79 615 150 \$0-graph 0;
-#X obj 19 21 struct \$0-graph float x float y float dist float resol
-float width float stres array \$0-boxes \$0-box;
-#X obj 30 100 plot -y y(0:4)(4:0)(1) \$0-boxes 0 0 0 0 dist;
-#X restore 753 134 pd \$0-graph;
-#X obj 20 203 pointer;
-#X obj 107 454 setsize \$0-graph \$0-boxes;
-#X obj 119 163 pointer;
-#X obj 119 123 \$0;
-#X obj 124 424 set \$0-graph dist;
-#X obj 124 404 expr 10/$f1;
-#X obj 133 534 element \$0-graph \$0-boxes;
-#X msg 139 96 clear;
-#X obj 20 183 append \$0-graph x;
-#X obj 40 554 set \$0-box width;
-#X obj 40 424 until;
-#X obj 40 444 f+;
-#X obj 40 404 t f b f;
-#X obj 79 484 expr 10/$f1;
-#X obj 40 504 f;
-#X obj 40 464 t b f;
-#X obj 20 163 0;
-#X obj 98 46 t b b b b;
-#X obj 464 144 element \$0-graph \$0-boxes;
-#X obj 464 164 get \$0-box y;
-#X msg 149 76 donecanvasdialog 1 -1 2 0 0 10 4 100 70 0 0;
-#X obj 511 536 element \$0-graph \$0-boxes;
-#X obj 442 466 until;
-#X obj 442 486 f+;
-#X obj 442 506 t b f;
-#X obj 442 556 set \$0-box y;
-#X obj 442 426 f;
-#X obj 442 526 0;
-#X obj 90 374 t f f f f;
-#X obj 442 446 t f b;
-#X obj 98 25 loadbang;
-#X obj 611 124 r \$0-pointer-aux;
-#X text 356 14 komisches workaround \, weil gop nicht richtig funktioniert
-;
-#X obj 175 28 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 51 334 \$2;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array array1 100 float 3;
-#A 0 0.157144 0.17143 0.17143 0.17143 0.17143 0.17143 0.17143 0.17143
-0.17143 0.17143 0.17143 0.17143 0.17143 0.185715 0.228573 0.242859
-0.261907 0.280954 0.300002 0.328574 0.34286 0.361907 0.380955 0.400003
-0.414289 0.44286 0.457146 0.471432 0.485718 0.500004 0.528575 0.542861
-0.571433 0.585719 0.600004 0.61429 0.657148 0.671433 0.685719 0.685719
-0.685719 0.700005 0.700005 0.700005 0.692862 0.685719 0.671433 0.66429
-0.657148 0.628576 0.600004 0.571433 0.542861 0.521432 0.500004 0.485718
-0.471432 0.44286 0.433336 0.423812 0.414289 0.407146 0.400003 0.39286
-0.385717 0.378574 0.371431 0.364288 0.357145 0.353574 0.350002 0.346431
-0.34286 0.34286 0.342859 0.338098 0.333336 0.328574 0.321431 0.314288
-0.300002 0.300002 0.27143 0.228573 0.17143 0.157144 0.128572 0.100001
-0.0857147 0.0428572 0.0285714 -0.0428577 -0.100001 0.0857148 0.0833339
-0.0809529 0.0785719 0.076191 0.07381 0.071429;
-#X coords 0 1 99 -1 200 140 1;
-#X restore 707 269 graph;
-#X msg 730 418 \; array1 0 1 1 1 1 -1 -1 -1;
-#X obj 51 354 moses 1;
-#N canvas 35 70 367 459 \$0-array 0;
-#X scalar 1094-graph 0 0 0 0 0 1 \; 0 0 \; \;;
-#X coords 0 0 10 4 100 70 1;
-#X restore 753 30 pd \$0-array;
-#X obj 149 116 s pd-\$0-array;
-#X msg 120 143 traverse pd-\$1-array \, bang;
-#X obj 20 223 s \$0-pointer-array;
-#X obj 565 506 r \$0-pointer-array;
-#X obj 187 504 r \$0-pointer-array;
-#X obj 312 246 inlet;
-#X text 449 124 [inlet];
-#X floatatom 21 303 5 0 0 0 - - -;
-#N canvas 55 71 450 300 list-populate 0;
-#X obj 26 19 inlet;
-#X obj 168 93 r \$0-reset-aux;
-#X obj 158 73 r \$0-reset;
-#X obj 201 251 element \$0-graph \$0-boxes;
-#X obj 132 201 f+;
-#X obj 132 271 set \$0-box y;
-#X obj 158 118 f;
-#X obj 158 138 t f b;
-#X obj 255 221 r \$0-pointer-array;
-#X obj 26 39 list split 1;
-#X obj 26 99 drip;
-#X obj 26 79 list;
-#X obj 26 59 t b f;
-#X obj 41 139 t b f;
-#X connect 0 0 9 0;
-#X connect 1 0 6 0;
-#X connect 2 0 6 0;
-#X connect 3 0 5 1;
-#X connect 4 0 3 0;
-#X connect 6 0 7 0;
-#X connect 7 1 4 1;
-#X connect 8 0 3 1;
-#X connect 9 0 12 0;
-#X connect 9 1 11 1;
-#X connect 10 0 13 0;
-#X connect 11 0 10 0;
-#X connect 12 0 11 0;
-#X connect 12 1 4 1;
-#X connect 13 0 4 0;
-#X connect 13 1 5 0;
-#X restore 365 286 pd list-populate;
-#X msg 372 246 10 -1 1 -1 0.5 -0.5 0.5 -0.2 0.2 -0.2 0.1 -0.1 0;
-#X obj 78 96 t b b b;
-#X obj 127 675 moses 1;
-#X obj 262 695 r \$0-pointer-array;
-#X obj 127 655 \$3;
-#X text 610 632 \$1 - array name;
-#X text 609 651 \$2 - array size;
-#X text 608 669 \$3 - step resolution;
-#X msg 127 695 1;
-#X obj 157 715 set \$0-graph stres;
-#X floatatom 84 646 5 0 0 0 - - -;
-#X text 97 735 usar uma variavel para o step nao e possivel???;
-#X obj 418 306 f;
-#X obj 418 326 outlet;
-#X obj 312 266 route resize list arraysize const;
-#X obj 442 396 t b f;
-#X text 482 396 const;
-#X text 448 217 read / write / rename / bounds / labels / ticks / gop-size
-;
-#X connect 2 0 43 0;
-#X connect 4 0 10 1;
-#X connect 5 0 42 0;
-#X connect 7 0 6 0;
-#X connect 8 0 11 1;
-#X connect 9 0 41 0;
-#X connect 10 0 2 0;
-#X connect 12 0 13 0;
-#X connect 13 0 17 0;
-#X connect 14 0 12 0;
-#X connect 14 1 13 1;
-#X connect 14 2 15 0;
-#X connect 15 0 16 1;
-#X connect 16 0 11 0;
-#X connect 17 0 16 0;
-#X connect 17 1 8 0;
-#X connect 18 0 10 0;
-#X connect 19 0 51 0;
-#X connect 19 1 5 0;
-#X connect 19 2 9 0;
-#X connect 19 3 22 0;
-#X connect 20 0 21 0;
-#X connect 22 0 41 0;
-#X connect 23 0 27 1;
-#X connect 24 0 25 0;
-#X connect 25 0 26 0;
-#X connect 26 0 29 0;
-#X connect 26 1 23 0;
-#X connect 28 0 31 0;
-#X connect 29 0 27 0;
-#X connect 30 0 14 0;
-#X connect 30 1 3 0;
-#X connect 30 2 7 0;
-#X connect 30 3 28 1;
-#X connect 31 0 24 0;
-#X connect 31 1 25 1;
-#X connect 32 0 19 0;
-#X connect 33 0 20 1;
-#X connect 35 0 19 0;
-#X connect 36 0 39 0;
-#X connect 36 0 62 1;
-#X connect 39 1 30 0;
-#X connect 42 0 4 0;
-#X connect 44 0 23 1;
-#X connect 45 0 8 1;
-#X connect 45 0 3 1;
-#X connect 45 0 6 1;
-#X connect 46 0 64 0;
-#X connect 48 0 36 0;
-#X connect 50 0 64 0;
-#X connect 51 0 54 0;
-#X connect 51 1 36 0;
-#X connect 51 2 18 0;
-#X connect 52 0 58 0;
-#X connect 52 1 59 0;
-#X connect 53 0 59 1;
-#X connect 54 0 52 0;
-#X connect 58 0 59 0;
-#X connect 60 0 52 0;
-#X connect 62 0 63 0;
-#X connect 64 0 36 0;
-#X connect 64 1 49 0;
-#X connect 64 2 62 0;
-#X connect 64 3 65 0;
-#X connect 65 0 28 0;
-#X connect 65 1 29 0;
diff --git a/abstractions/jmmmp/array-edit-help.pd b/abstractions/jmmmp/array-edit-help.pd
index e69de29bb..7153b7fc8 100644
--- a/abstractions/jmmmp/array-edit-help.pd
+++ b/abstractions/jmmmp/array-edit-help.pd
@@ -0,0 +1,4 @@
+#N canvas 345 87 450 300 10;
+#X obj 175 132 array-edit;
+#X text 73 84 edit properties of arrays and populate them following
+several formulas;
diff --git a/abstractions/jmmmp/array-edit.pd b/abstractions/jmmmp/array-edit.pd
index 1f1ca670e..8a18edd6c 100644
--- a/abstractions/jmmmp/array-edit.pd
+++ b/abstractions/jmmmp/array-edit.pd
@@ -1,774 +1,785 @@
-#N canvas 68 28 402 755 10;
-#N canvas 202 330 639 485 inside 0;
-#X msg 287 128 const \$1;
-#X obj 15 159 r \$0-resize;
-#X msg 64 199 resize \$1;
-#X obj 15 68 arraysize;
-#X obj 15 28 r \$0-arr;
-#X msg 15 48 set \$1 \, bang;
-#X msg 15 98 set \$1;
-#X obj 89 97 s \$0-arrsize;
-#X obj 15 119 s \$0-resize-i;
-#X obj 287 108 r \$0-const;
-#X text 21 9 Resize;
-#X text 293 86 Constant;
-#X obj 531 104 tabread;
-#X obj 541 64 r \$0-arr;
-#X msg 541 84 set \$1;
-#X obj 531 34 r \$0-ind_i;
-#X obj 531 124 s \$0-ind_t-i;
-#X obj 531 214 s \$0-ind_i-i;
-#X msg 531 194 range 0 \$1;
-#X obj 531 154 r \$0-arrsize;
-#X obj 531 174 - 1;
-#X text 532 12 Index test;
-#X msg 436 59 rename \$1;
-#X text 445 18 Rename;
-#X obj 436 39 r \$0-rename;
-#X obj 446 179 s \$0-arr-i;
-#X msg 446 159 symbol \$1;
-#X obj 287 38 r \$0-norml;
-#X text 293 16 Normalize;
-#X msg 287 58 normalize \$1;
-#N canvas 335 713 293 221 x-ticks 0;
-#X obj 103 16 r \$0-arrsize;
-#X obj 143 86 /;
-#X obj 143 56 t b f;
-#X obj 115 126 pack f f f;
-#X obj 172 106 expr 100/$f1;
-#X obj 115 176 outlet;
-#X obj 143 36 r \$0-xtick-div;
-#X obj 172 86 r \$0-xtick-prop;
-#X obj 35 86 r \$0-xtick-send;
-#X msg 115 146 xticks \$1 \$2 \$3;
-#X connect 0 0 1 0;
-#X connect 1 0 3 1;
-#X connect 2 0 1 0;
-#X connect 2 1 1 1;
-#X connect 3 0 9 0;
-#X connect 4 0 3 2;
-#X connect 6 0 2 0;
-#X connect 7 0 4 0;
-#X connect 8 0 3 0;
-#X connect 9 0 5 0;
-#X coords 0 0 1 1 201 75 0;
-#X restore 199 197 pd x-ticks;
-#X text 150 197 X-ticks;
-#X text 150 217 X-label;
-#N canvas 274 695 314 213 bounds 0;
-#X msg 41 142 bounds \$1 \$2 \$3 \$4;
-#X obj 41 122 pack f f f f;
-#X obj 193 125 r \$0-arrsize;
-#X obj 34 62 f;
-#X obj 41 172 outlet;
-#X obj 49 42 r \$0-bound-x;
-#X obj 87 82 r \$0-bound-xx;
-#X obj 193 165 s \$0-bound-xx-i;
-#X obj 64 62 r \$0-bound-y;
-#X obj 110 102 r \$0-bound-yy;
-#X obj 34 22 r \$0-bound-send;
-#X obj 193 145 - 1;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 11 0;
-#X connect 3 0 1 0;
-#X connect 5 0 3 1;
-#X connect 6 0 1 2;
-#X connect 8 0 1 1;
-#X connect 9 0 1 3;
-#X connect 10 0 3 0;
-#X connect 11 0 7 0;
-#X coords 0 0 1 1 116 75 0;
-#X restore 199 137 pd bounds;
-#X text 153 137 Bounds;
-#N canvas 0 0 304 224 send 0;
-#X obj 197 153 send13 foo;
-#X obj 207 103 r \$0-arr;
-#X msg 207 123 set \$1;
-#X obj 177 63 inlet;
-#X obj 64 183 s \$0-command;
-#X obj 64 133 drip;
-#X msg 124 153 set;
-#X obj 64 103 t a b;
-#X msg 64 153 add2 \$1;
-#X obj 124 123 loadbang;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 3 0 7 0;
-#X connect 5 0 8 0;
-#X connect 6 0 4 0;
-#X connect 7 0 5 0;
-#X connect 7 1 6 0;
-#X connect 8 0 4 0;
-#X connect 9 0 6 0;
-#X restore 279 297 pd send;
-#N canvas 595 204 275 570 x-label 0;
-#X obj 130 279 r \$0-arrsize;
-#X obj 96 499 prepent xlabel;
-#X obj 42 39 - 1.2;
-#X obj 96 479 prepent;
-#X obj 61 299 expr $f2/$f1;
-#X obj 56 399 serialize;
-#X obj 22 340 until;
-#X obj 73 369 +;
-#X obj 46 369 0;
-#X obj 61 329 t b f;
-#X obj 61 349 0;
-#X obj 42 249 t f f f;
-#X obj 61 279 - 1;
-#X obj 42 109 moses 2;
-#X obj 42 89 r \$0-xlabel-wv;
-#X obj 42 59 s \$0-xlabel-dist-i;
-#X obj 42 19 loadbang;
-#X obj 96 529 outlet;
-#X obj 42 229 f;
-#X obj 108 459 t b f;
-#X obj 91 129 t b f;
-#X obj 116 197 spigot 0;
-#X obj 141 167 1;
-#X obj 171 147 r \$0-arr;
-#X msg 171 167 0;
-#X obj 108 439 r \$0-xlabel-dist;
-#X connect 0 0 4 1;
-#X connect 1 0 17 0;
-#X connect 2 0 15 0;
-#X connect 3 0 1 0;
-#X connect 4 0 9 0;
-#X connect 5 0 3 0;
-#X connect 6 0 8 0;
-#X connect 7 0 8 1;
-#X connect 8 0 7 0;
-#X connect 8 0 5 0;
-#X connect 9 0 10 0;
-#X connect 9 1 7 1;
-#X connect 10 0 8 1;
-#X connect 11 0 6 0;
-#X connect 11 1 12 0;
-#X connect 11 2 5 1;
-#X connect 12 0 4 0;
-#X connect 13 1 20 0;
-#X connect 14 0 13 0;
-#X connect 16 0 2 0;
-#X connect 18 0 11 0;
-#X connect 19 0 21 0;
-#X connect 19 1 3 1;
-#X connect 20 0 22 0;
-#X connect 20 1 18 0;
-#X connect 21 0 18 0;
-#X connect 22 0 21 1;
-#X connect 23 0 24 0;
-#X connect 24 0 21 1;
-#X connect 25 0 19 0;
-#X coords 0 0 1 1 195 60 0;
-#X restore 199 217 pd x-label;
-#X text 150 177 Y-label;
-#X text 148 157 Y-ticks;
-#N canvas 906 167 297 695 y-label 0;
-#X obj 106 609 prepent;
-#X obj 66 529 serialize;
-#X obj 32 430 until;
-#X obj 83 459 +;
-#X obj 56 459 0;
-#X obj 71 419 t b f;
-#X obj 71 439 0;
-#X obj 52 269 t f f f;
-#X obj 71 369 - 1;
-#X obj 52 109 moses 2;
-#X obj 52 19 loadbang;
-#X obj 106 659 outlet;
-#X obj 52 59 s \$0-ylabel-dist-i;
-#X obj 52 89 r \$0-ylabel-wv;
-#X obj 118 569 r \$0-ylabel-dist;
-#X obj 106 629 prepent ylabel;
-#X obj 52 39 - 6;
-#X obj 140 339 t b f;
-#X obj 140 369 -;
-#X obj 100 299 r \$0-bound-y;
-#X obj 140 319 r \$0-bound-yy;
-#X obj 81 489 r \$0-bound-yy;
-#X obj 71 389 expr $f2/$f1;
-#X obj 66 509 +;
-#X obj 52 249 f;
-#X obj 118 589 t b f;
-#X obj 91 129 t b f;
-#X obj 136 207 spigot 0;
-#X obj 161 177 1;
-#X obj 191 157 r \$0-arr;
-#X msg 191 177 0;
-#X connect 0 0 15 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 4 1;
-#X connect 4 0 3 0;
-#X connect 4 0 23 0;
-#X connect 5 0 6 0;
-#X connect 5 1 3 1;
-#X connect 6 0 4 1;
-#X connect 7 0 2 0;
-#X connect 7 1 8 0;
-#X connect 7 2 1 1;
-#X connect 8 0 22 0;
-#X connect 9 1 26 0;
-#X connect 10 0 16 0;
-#X connect 13 0 9 0;
-#X connect 14 0 25 0;
-#X connect 15 0 11 0;
-#X connect 16 0 12 0;
-#X connect 17 0 18 0;
-#X connect 17 1 18 1;
-#X connect 18 0 22 1;
-#X connect 19 0 18 0;
-#X connect 20 0 17 0;
-#X connect 21 0 23 1;
-#X connect 22 0 5 0;
-#X connect 23 0 1 0;
-#X connect 24 0 7 0;
-#X connect 25 0 27 0;
-#X connect 25 1 0 1;
-#X connect 26 0 28 0;
-#X connect 26 1 24 0;
-#X connect 27 0 24 0;
-#X connect 28 0 27 1;
-#X connect 29 0 30 0;
-#X connect 30 0 27 1;
-#X coords 0 0 1 1 195 60 0;
-#X restore 199 177 pd y-label;
-#N canvas 524 614 293 249 y-ticks 0;
-#X obj 133 126 /;
-#X obj 133 96 t b f;
-#X obj 105 166 pack f f f;
-#X obj 162 146 expr 100/$f1;
-#X obj 105 216 outlet;
-#X obj 25 126 r \$0-ytick-send;
-#X msg 105 186 yticks \$1 \$2 \$3;
-#X obj 162 126 r \$0-ytick-prop;
-#X obj 133 76 r \$0-ytick-div;
-#X obj 93 56 t b f;
-#X obj 93 86 -;
-#X obj 53 16 r \$0-bound-y;
-#X obj 93 36 r \$0-bound-yy;
-#X connect 0 0 2 1;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 2 0 6 0;
-#X connect 3 0 2 2;
-#X connect 5 0 2 0;
-#X connect 6 0 4 0;
-#X connect 7 0 3 0;
-#X connect 8 0 1 0;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 0 0;
-#X connect 11 0 10 0;
-#X connect 12 0 9 0;
-#X coords 0 0 1 1 201 75 0;
-#X restore 199 157 pd y-ticks;
-#X obj 14 338 r \$0-f-writ;
-#X msg 14 358 \; pd-function-writer vis 1;
-#X msg 14 298 \; pd-segment-draw vis 1;
-#X obj 14 278 r \$0-s-draw;
-#X obj 15 179 moses 1;
-#X obj 279 317 dsp01 1;
-#X text 18 434 adicionar toggle para com/sem wraparound.;
-#X obj 327 349 inlet;
-#X obj 382 139 symbol \$1;
-#X obj 382 119 loadbang;
-#X obj 327 409 s \$0-segrel;
-#X obj 327 369 route segrel segabs;
-#X obj 382 389 s \$0-segabs;
-#X text 285 390 FUNKTIONIERT NICHT \, DIE " \, " MACHEN MEHRERE NACHRICHTEN
-;
-#X connect 0 0 35 0;
-#X connect 1 0 45 0;
-#X connect 2 0 35 0;
-#X connect 3 0 6 0;
-#X connect 3 0 7 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 8 0;
-#X connect 9 0 0 0;
-#X connect 12 0 16 0;
-#X connect 13 0 14 0;
-#X connect 14 0 12 0;
-#X connect 15 0 12 0;
-#X connect 18 0 17 0;
-#X connect 19 0 20 0;
-#X connect 20 0 18 0;
-#X connect 22 0 35 0;
-#X connect 24 0 22 0;
-#X connect 24 0 26 0;
-#X connect 26 0 25 0;
-#X connect 27 0 29 0;
-#X connect 29 0 35 0;
-#X connect 30 0 35 0;
-#X connect 33 0 35 0;
-#X connect 36 0 35 0;
-#X connect 39 0 35 0;
-#X connect 40 0 35 0;
-#X connect 41 0 42 0;
-#X connect 44 0 43 0;
-#X connect 45 1 2 0;
-#X connect 45 1 7 0;
-#X connect 48 0 52 0;
-#X connect 49 0 25 0;
-#X connect 50 0 49 0;
-#X connect 52 0 51 0;
-#X connect 52 1 53 0;
-#X connect 52 2 26 0;
-#X restore 32 695 pd inside;
-#X obj 290 310 cnv 15 100 100 empty empty empty 20 12 0 14 -191407
--66577 0;
-#X floatatom 307 367 5 0 0 0 - #0-bound-x-i #0-bound-x;
-#X floatatom 327 347 5 0 0 0 - #0-bound-y-i #0-bound-y;
-#X floatatom 347 367 5 0 0 0 - #0-bound-xx-i #0-bound-xx;
-#X floatatom 327 387 5 0 0 0 - #0-bound-yy-i #0-bound-yy;
-#X text 294 312 Graphic bounds;
-#X text 293 365 X;
-#X text 328 328 Y;
-#X obj 307 347 bng 13 250 50 0 \$0-bound-send \$0-bound-send-i empty
-17 7 0 10 -228856 -1 -1;
-#X obj 12 398 cnv 15 265 65 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 17 418 5 2 100000 0 - #0-xlabel-wv-i #0-xlabel-wv;
-#X text 108 418 How many numbers in total;
-#X floatatom 17 438 6 0 0 0 - #0-xlabel-dist-i #0-xlabel-dist;
-#X text 108 438 Distance (as y value);
-#X obj 12 310 cnv 15 265 80 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 18 329 5 0 0 0 - #0-xtick-div-i #0-xtick-div;
-#X floatatom 18 349 5 0 0 0 - #0-xtick-prop-i #0-xtick-prop;
-#X obj 25 369 bng 14 250 50 0 \$0-xtick-send \$0-xtick-send-i empty
-17 7 0 10 -228856 -1 -1;
-#X text 108 369 Send format;
-#X text 108 349 Proportion of big ticks (%);
-#X text 108 329 How many divisions in total;
-#X obj 11 186 cnv 15 135 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 15 191 5 0 0 0 - #0-norml-i #0-norml;
-#X text 50 191 Normalize to x;
-#X obj 197 151 cnv 15 115 60 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 202 189 10 0 0 0 - #0-ind_t-i #0-ind_t;
-#X text 199 150 Index test;
-#X text 268 169 Index;
-#X text 268 188 Value;
-#X obj 12 216 cnv 15 170 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 16 221 5 0 0 0 - #0-const-i #0-const;
-#X text 51 221 Set a constant value;
-#X obj 11 156 cnv 15 145 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 15 160 10 0 0 0 - #0-resize-i #0-resize;
-#X text 82 160 Size/Resize;
-#X obj 71 52 cnv 15 260 60 empty empty empty 20 12 0 14 -241339 -66577
-0;
-#X symbolatom 144 61 30 0 0 0 - #0-arr-i #0-arr;
-#X symbolatom 144 89 30 0 0 0 - #0-rename-i #0-rename;
-#X text 74 89 Rename it;
-#X text 74 61 Array name;
-#X obj 117 8 cnv 15 160 30 empty empty ARRAY-EDITOR 8 16 0 20 -191407
--33289 0;
-#X obj 12 255 cnv 15 60 20 empty empty Display 5 11 0 12 -191407 -33289
-0;
-#X obj 202 169 nbx 5 16 0 99 0 0 \$0-ind_i \$0-ind_i-i empty 0 -8 0
-10 -228856 -1 -1 0 256;
-#X obj 12 495 r \$0-command;
-#X msg 12 515;
-#X floatatom 68 329 5 0 0 0 - #0-ytick-div-i #0-ytick-div;
-#X floatatom 68 349 5 0 0 0 - #0-ytick-prop-i #0-ytick-prop;
-#X obj 75 369 bng 14 250 50 0 \$0-ytick-send \$0-ytick-send-i empty
-17 7 0 10 -228856 -1 -1;
-#X floatatom 67 418 5 2 100000 0 - #0-ylabel-wv-i #0-ylabel-wv;
-#X floatatom 67 438 6 0 0 0 - #0-ylabel-dist-i #0-ylabel-dist;
-#X text 23 310 X / Y Ticks;
-#X text 25 398 X / Y Label;
-#N canvas 505 36 496 590 function-writer 0;
-#X obj 27 231 tabwrite~ \$1;
-#X obj 27 122 bng 15 250 50 0 empty empty Calculate 21 8 0 12 -228856
--1 -1;
-#X text 15 51 1 - Edit your formula below;
-#X text 13 330 Some formula examples:;
-#X text 17 398 - descending line;
-#X obj 139 379 expr~ $v1;
-#X obj 139 399 expr~ 1-$v1;
-#X obj 139 439 expr~ pow($v1 \, .5);
-#X text 17 438 - logarithmic line;
-#X text 17 418 - exponential line;
-#X obj 139 419 expr~ pow($v1 \, 2);
-#X text 13 350 Lines;
-#X floatatom 279 150 5 0 0 0 - - -;
-#X text 14 8 The function writer writes a funcion in your array. It
-analyses the sample rate and arraysize \, so that the wave fits perfectly
-with the array. To create a new waveform:;
-#X text 131 103 Edit your formula here \, or copy-paste from the ones
-below. The number field is to connect with the gaussian formula \,
-or with any formulas that need extra argument(s).;
-#N canvas 0 0 450 372 calc 0;
-#X obj 187 38 inlet;
-#X obj 226 78 samplerate~;
-#X obj 127 278 r \$0-arr;
-#X obj 197 298 phasor~;
-#X obj 226 238 /;
-#X msg 127 298 set \$1;
-#X obj 206 258 0;
-#X obj 241 98 r \$0-arrsize;
-#X obj 187 58 t a b b;
-#X obj 187 338 outlet;
-#X obj 197 318 outlet~;
-#X obj 241 218 +;
-#X obj 256 118 r \$0-wrapar;
-#X obj 256 138 * -1;
-#X obj 241 188 f;
-#X obj 256 158 t b f;
-#X connect 0 0 8 0;
-#X connect 1 0 4 0;
-#X connect 2 0 5 0;
-#X connect 3 0 10 0;
-#X connect 4 0 3 0;
-#X connect 5 0 9 0;
-#X connect 6 0 3 1;
-#X connect 7 0 14 0;
-#X connect 8 0 9 0;
-#X connect 8 1 6 0;
-#X connect 8 2 1 0;
-#X connect 11 0 4 1;
-#X connect 12 0 13 0;
-#X connect 13 0 15 0;
-#X connect 14 0 11 0;
-#X connect 15 0 14 0;
-#X connect 15 1 11 1;
-#X restore 27 140 pd calc;
-#X text 70 543 If there's any function that you think should be here
-\, tell me about it at jmmmpais@googlemail.com;
-#N canvas 0 0 685 457 (subpatch) 0;
-#X array array2 120 float 0;
-#X coords 0 1 119 0 120 90 1;
-#X restore 311 354 graph;
-#X obj 286 292 s \$0-arr-i;
-#X text 50 254 To try out the waveforms below \, first choose this
-array as the array to be edited by clicking on:;
-#X msg 286 272 symbol array2;
-#X text 15 71 2 - Bang "Calculate";
-#X text 16 378 - ascending line;
-#N canvas 232 298 502 383 panning-curves 0;
-#X obj 380 12 switch~ 0;
-#X text 17 138 - simple (triangular);
-#X text 12 19 Panning curves;
-#X obj 149 139 expr~ 1-$v1;
-#X text 11 80 Some curves need the Wraparound option \, so that the
-final value is as close as possible.;
-#X obj 149 159 expr~ pow(1-$v1 \, .5);
-#X text 17 158 - square root;
-#X obj 149 179 expr~ cos($v1*0.5*3.14159);
-#X text 17 178 - sinus;
-#X obj 149 199 expr~ ((sqrt(2)/2) * (cos(($v1) * (4 * atan(1)) - (4
-* atan(1)/2)) - sin(($v1) * (4 * atan(1)) - (4 * atan(1)/2))))*0.5+0.5
-;
-#X text 16 198 - "equal power";
-#X text 11 40 These curves are for the left side. To get the right
-side value \, just read the table at the mirror point: [arraysize]-[index]-1.
-;
-#X text 17 328 Formulas taken from Csound Ezine/Jamie Bullock \, Georg
-Holzmann.;
-#X obj 149 265 expr~ (cos($v1)-sin($v1))*(sqrt(2)/2);
-#X obj 149 245 expr~ ($v1*3.14159/2)-3.14159/4;
-#X text 16 245 - tangent law;
-#X connect 14 0 13 0;
-#X restore 23 478 pd panning-curves;
-#N canvas 148 141 450 259 trigonometry/windowing 0;
-#X text 17 48 - sine wave;
-#X obj 139 49 expr~ sin($v1*3.14159*2);
-#X obj 139 89 expr~ 0.5*(1-cos($v1*3.14159*2));
-#X text 17 68 - cosine window;
-#X obj 139 69 expr~ sin($v1*3.14159);
-#X obj 139 109 expr~ 0.53836-0.46164*cos($v1*3.14159*2);
-#X text 17 108 - hamming window;
-#X text 17 88 - hanning window;
-#X text 17 128 - connes window;
-#X obj 139 129 expr~ pow(1-pow($v1*2-1 \, 2) \, 2);
-#X obj 139 149 expr~ 1-abs($v1*2-1);
-#X text 17 148 - welch window;
-#X text 17 168 - gaussian window;
-#X obj 137 170 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
-#X text 17 208 - lanczos window;
-#X obj 139 209 expr~ sin(($v1*2-1)*3.14159)/(($v1*2-1)*3.14159);
-#X text 12 19 Trigonometry/Windowing formulas;
-#X obj 380 12 switch~ 0;
-#X text 134 188 (0 < $f2 < 1);
-#X restore 23 508 pd trigonometry/windowing;
-#X obj 67 181 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
-#X connect 1 0 15 0;
-#X connect 12 0 25 1;
-#X connect 15 0 0 0;
-#X connect 15 1 25 0;
-#X connect 20 0 18 0;
-#X connect 25 0 0 0;
-#X restore 32 639 pd function-writer;
-#X obj 12 128 cnv 15 60 20 empty empty Basic 5 11 0 12 -191407 -33289
-0;
-#X text 12 277 Attention: to edit the Y fields \, you must first define
-the Y values in Graphic Bounds.;
-#N canvas 266 36 411 747 segment-draw 0;
-#X msg 75 356 0 0 \, -1.5 15 \, 1 50 \, 0.75 75 \, 0 100;
-#X text 11 528 relative index: 0%-100%;
-#N canvas 545 59 692 802 segment-function-draw 0;
-#X obj 173 33 inlet;
-#X obj 92 133 r \$0-arrsize;
-#X obj 77 153 *;
-#X obj 77 113 * 0.01;
-#X obj 344 21 inlet;
-#X text 168 9 relativ;
-#X text 389 16 absolut;
-#X obj 77 173 i;
-#X obj 219 573 samplerate~;
-#X obj 69 682 r \$0-arr;
-#X obj 219 593 /;
-#X msg 69 702 set \$1;
-#X obj 189 644 0;
-#X obj 143 293 -;
-#X obj 158 273 f;
-#X obj 143 243 t f f b;
-#X msg 130 583 start \$1;
-#X obj 170 553 t f b b;
-#X obj 77 193 t f f;
-#X obj 27 283 moses;
-#X obj 54 263 r \$0-arrsize;
-#X obj 104 213 moses 1;
-#X obj 152 682 phasor~;
-#X obj 130 772 tabwrite~ \$1;
-#X obj 295 627 del;
-#X obj 295 607 * 1.01;
-#N canvas 77 335 450 302 blocksize 0;
-#X obj 174 211 outlet;
-#X obj 164 31 inlet;
-#X obj 164 51 samplerate~;
-#X obj 174 171 /;
-#X obj 174 191 * 1000;
-#X obj 179 121 iem_blocksize~;
-#X obj 164 141 f;
-#X obj 164 71 t b f;
-#X obj 179 101 sig~;
-#X connect 1 0 2 0;
-#X connect 2 0 7 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X connect 5 0 6 1;
-#X connect 6 0 3 0;
-#X connect 7 0 6 0;
-#X connect 7 1 3 1;
-#X connect 8 0 5 0;
-#X restore 295 587 pd blocksize;
-#X obj 219 613 t b f;
-#X obj 179 83 swap;
-#X obj 151 742 +~;
-#X text 327 629 each segment is written after a delay of 1 block. maybe
-not the best way \, but the only one using ~ ?;
-#X obj 152 722 *~;
-#X obj 170 493 textfile;
-#X obj 310 155 f;
-#X obj 275 238 route list;
-#X obj 275 208 list prepend;
-#X obj 344 188 spigot 0;
-#X msg 374 168 0;
-#X msg 404 168 1;
-#X obj 275 125 t f b f b;
-#X obj 275 258 unpack;
-#X obj 304 318 -;
-#X obj 294 298 f;
-#X obj 275 278 t f b f;
-#X obj 170 443 prepent add;
-#X msg 104 473 clear;
-#X msg 205 467 rewind \, bang;
-#X obj 143 373 swap;
-#X obj 143 353 pack;
-#X obj 205 139 t b b b;
-#X obj 143 403 pack f f f f f;
-#X obj 170 523 unpack f f f f f;
-#X obj 173 53 zexy/unpack f f f;
-#X obj 254 413 0;
-#X obj 143 423 t b a;
-#X obj 152 702 expr~ pow($v1 \, exp($f2*5*log(2)));
-#X text 280 523 dauer \, anfangspunkt \, anfangswert \, skalierung
-\, exp-curve;
-#X obj 350 71 swap;
-#X obj 344 41 zexy/unpack f f f;
-#X msg 323 471 print;
-#X obj 93 23 r \$0-segrel;
-#X obj 263 13 r \$0-segabs;
-#X connect 0 0 52 0;
-#X connect 1 0 2 1;
-#X connect 2 0 7 0;
-#X connect 3 0 2 0;
-#X connect 4 0 58 0;
-#X connect 7 0 18 0;
-#X connect 8 0 10 0;
-#X connect 9 0 11 0;
-#X connect 10 0 27 0;
-#X connect 11 0 23 0;
-#X connect 12 0 22 1;
-#X connect 13 0 48 0;
-#X connect 14 0 13 1;
-#X connect 15 0 13 0;
-#X connect 15 1 14 1;
-#X connect 15 2 14 0;
-#X connect 16 0 23 0;
-#X connect 17 0 16 0;
-#X connect 17 1 12 0;
-#X connect 17 2 8 0;
-#X connect 18 0 19 0;
-#X connect 18 1 21 0;
-#X connect 19 0 48 1;
-#X connect 19 1 49 0;
-#X connect 20 0 19 1;
-#X connect 21 0 14 1;
-#X connect 21 0 45 0;
-#X connect 21 1 15 0;
-#X connect 22 0 55 0;
-#X connect 24 0 32 0;
-#X connect 25 0 24 0;
-#X connect 26 0 25 0;
-#X connect 27 0 26 0;
-#X connect 27 1 22 0;
-#X connect 28 0 3 0;
-#X connect 28 1 39 0;
-#X connect 29 0 23 0;
-#X connect 31 0 29 0;
-#X connect 32 0 51 0;
-#X connect 33 0 36 0;
-#X connect 34 0 40 0;
-#X connect 35 0 34 0;
-#X connect 36 0 35 1;
-#X connect 37 0 36 1;
-#X connect 38 0 36 1;
-#X connect 39 0 35 0;
-#X connect 39 1 38 0;
-#X connect 39 2 33 1;
-#X connect 39 3 33 0;
-#X connect 40 0 43 0;
-#X connect 40 1 42 1;
-#X connect 41 0 50 3;
-#X connect 42 0 41 0;
-#X connect 43 0 50 2;
-#X connect 43 1 42 0;
-#X connect 43 2 41 1;
-#X connect 44 0 32 0;
-#X connect 45 0 32 0;
-#X connect 46 0 32 0;
-#X connect 47 0 50 0;
-#X connect 47 1 50 1;
-#X connect 48 0 47 0;
-#X connect 49 0 46 0;
-#X connect 49 1 35 1;
-#X connect 49 2 37 0;
-#X connect 50 0 54 0;
-#X connect 51 0 17 0;
-#X connect 51 1 10 1;
-#X connect 51 2 29 1;
-#X connect 51 3 31 1;
-#X connect 51 4 55 1;
-#X connect 52 0 28 0;
-#X connect 52 1 28 1;
-#X connect 52 2 50 4;
-#X connect 53 0 50 4;
-#X connect 54 0 53 0;
-#X connect 54 1 44 0;
-#X connect 55 0 31 0;
-#X connect 57 0 18 0;
-#X connect 57 1 39 0;
-#X connect 58 0 57 0;
-#X connect 58 1 57 1;
-#X connect 58 2 50 4;
-#X connect 59 0 32 0;
-#X connect 60 0 52 0;
-#X connect 61 0 58 0;
-#X restore 45 509 pd segment-function-draw;
-#X msg 55 316 0 0 \, 1 50 \, 0 100;
-#X text 20 196 Attention: You must always define an array completely
-\, from the first to last indexes (be it in relative or absolute indexes).
-;
-#X text 181 529 absolute index: 0-arraysize;
-#X text 27 692 Note: Each segment is written after a 1-block delay.
-If you're thinking about using this tool for live audio \, make sure
-you don't get side effects due to this technique.;
-#X text 21 87 - index Value;
-#X text 21 107 - duration - in percentage of total duration (left inlet)
-or in absolute indexes (right inlet);
-#X text 20 56 Segment draw: Define each breakpoint with 2 or 3 indexes.
-Each breakpoint is separated by commas:;
-#N canvas 0 0 668 457 (subpatch) 0;
-#X array array1 120 float 0;
-#X coords 0 1 119 -1 120 90 1;
-#X restore 145 581 graph;
-#X obj 256 282 s \$0-arr-i;
-#X msg 256 262 symbol array1;
-#X obj 147 21 cnv 15 95 20 empty empty Segment-draw 5 11 0 12 -191407
--33289 0;
-#X text 21 138 - curve steppness [-1 to 1]: 0 or missing for a straight
-line. 0 to 1 for exponential curve \, -1 to 0 for logarithmic curve.
-;
-#X text 164 315 normal wave;
-#X msg 64 336 0 0 \, 1 50 0.15 \, 0 100 -0.15;
-#X text 236 335 same wave \, but curved;
-#X text 20 244 To try out the waveforms below \, first choose this
-array as the array to be edited by clicking on:;
-#X text 83 376 more complex example;
-#X msg 164 433 0 0 \, 1 60 \, 0 120;
-#X msg 174 453 0 0 \, 1 60 0.15 \, 0 120 -0.15;
-#X msg 185 473 0 0 \, -1.5 18 \, 1 60 \, 0.75 90 \, 0 120;
-#X text 93 413 Same examples as above \, with absolute coordinates
-;
-#X connect 0 0 2 0;
-#X connect 3 0 2 0;
-#X connect 12 0 11 0;
-#X connect 16 0 2 0;
-#X connect 20 0 2 1;
-#X connect 21 0 2 1;
-#X connect 22 0 2 1;
-#X restore 32 596 pd segment-draw;
-#X obj 12 640 bng 15 250 50 0 \$0-f-writ \$0-f-writ-i empty 17 7 0
-10 -228856 -1 -1;
-#X obj 12 597 bng 15 250 50 0 \$0-s-draw \$0-s-draw-i empty 17 7 0
-10 -228856 -1 -1;
-#X text 32 576 Draw a wave shape through break points;
-#X text 32 619 Define a wave shape through its function;
-#X obj 12 549 cnv 15 100 20 empty empty Ploting.tools 5 11 0 12 -191407
--33289 0;
-#X text 94 685 (where everything works);
-#X text 12 474 You can copy the commands and paste them in your patch:
-;
-#X obj 32 675 inlet;
-#N canvas 0 0 426 446 license 0;
-#X text 8 47 All rights reserved.;
-#X text 8 227 The names of its contributors may not be used to endorse
-or promote products derived from this software without specific prior
-written permission.;
-#X text 8 87 Redistribution and use in source and binary forms \, with
-or without modification \, are permitted provided that the following
-conditions are met:;
-#X text 8 127 Redistributions of source code must retain the above
-copyright notice \, this list of conditions and the following disclaimer.
-;
-#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
-\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
-\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
-\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
-;
-#X text 8 167 Redistributions in binary form must reproduce the above
-copyright notice \, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the distribution.
-;
-#X text 8 27 jmmmpais@googlemail.com;
-#X text 8 7 Copyright 2006 \, João Pais;
-#X restore 32 724 pd license;
-#X text 99 724 (C) 2009 João Pais - jmmmpais@googlemail.com;
-#X obj 197 216 cnv 15 187 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X obj 202 221 tgl 15 0 \$0-wrapar \$0-wrapar-i empty 17 7 0 10 -228856
--1 -1 0 1;
-#X text 221 220 Wraparound (last index ~0);
-#X connect 44 0 45 0;
-#X connect 64 0 0 0;
+#N canvas 68 0 414 704 10;
+#N canvas 202 330 639 485 inside 0;
+#X msg 287 128 const \$1;
+#X obj 15 159 r \$0-resize;
+#X msg 64 199 resize \$1;
+#X obj 15 68 arraysize;
+#X obj 15 28 r \$0-arr;
+#X msg 15 48 set \$1 \, bang;
+#X msg 15 98 set \$1;
+#X obj 89 97 s \$0-arrsize;
+#X obj 15 119 s \$0-resize-i;
+#X obj 287 108 r \$0-const;
+#X text 21 9 Resize;
+#X text 293 86 Constant;
+#X obj 531 104 tabread;
+#X obj 541 64 r \$0-arr;
+#X msg 541 84 set \$1;
+#X obj 531 34 r \$0-ind_i;
+#X obj 531 124 s \$0-ind_t-i;
+#X obj 531 214 s \$0-ind_i-i;
+#X msg 531 194 range 0 \$1;
+#X obj 531 154 r \$0-arrsize;
+#X obj 531 174 - 1;
+#X text 532 12 Index test;
+#X msg 436 59 rename \$1;
+#X text 445 18 Rename;
+#X obj 436 39 r \$0-rename;
+#X obj 446 179 s \$0-arr-i;
+#X msg 446 159 symbol \$1;
+#X obj 287 38 r \$0-norml;
+#X text 293 16 Normalize;
+#X msg 287 58 normalize \$1;
+#N canvas 335 713 293 221 x-ticks 0;
+#X obj 103 16 r \$0-arrsize;
+#X obj 143 86 /;
+#X obj 143 56 t b f;
+#X obj 115 126 pack f f f;
+#X obj 172 106 expr 100/$f1;
+#X obj 115 176 outlet;
+#X obj 143 36 r \$0-xtick-div;
+#X obj 172 86 r \$0-xtick-prop;
+#X obj 35 86 r \$0-xtick-send;
+#X msg 115 146 xticks \$1 \$2 \$3;
+#X connect 0 0 1 0;
+#X connect 1 0 3 1;
+#X connect 2 0 1 0;
+#X connect 2 1 1 1;
+#X connect 3 0 9 0;
+#X connect 4 0 3 2;
+#X connect 6 0 2 0;
+#X connect 7 0 4 0;
+#X connect 8 0 3 0;
+#X connect 9 0 5 0;
+#X coords 0 0 1 1 201 75 0;
+#X restore 199 197 pd x-ticks;
+#X text 150 197 X-ticks;
+#X text 150 217 X-label;
+#N canvas 274 695 314 213 bounds 0;
+#X msg 41 142 bounds \$1 \$2 \$3 \$4;
+#X obj 41 122 pack f f f f;
+#X obj 193 125 r \$0-arrsize;
+#X obj 34 62 f;
+#X obj 41 172 outlet;
+#X obj 49 42 r \$0-bound-x;
+#X obj 87 82 r \$0-bound-xx;
+#X obj 193 165 s \$0-bound-xx-i;
+#X obj 64 62 r \$0-bound-y;
+#X obj 110 102 r \$0-bound-yy;
+#X obj 34 22 r \$0-bound-send;
+#X obj 193 145 - 1;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 11 0;
+#X connect 3 0 1 0;
+#X connect 5 0 3 1;
+#X connect 6 0 1 2;
+#X connect 8 0 1 1;
+#X connect 9 0 1 3;
+#X connect 10 0 3 0;
+#X connect 11 0 7 0;
+#X coords 0 0 1 1 116 75 0;
+#X restore 199 137 pd bounds;
+#X text 153 137 Bounds;
+#N canvas 0 0 304 224 send 0;
+#X obj 197 153 send13 foo;
+#X obj 207 103 r \$0-arr;
+#X msg 207 123 set \$1;
+#X obj 177 63 inlet;
+#X obj 64 183 s \$0-command;
+#X obj 64 133 drip;
+#X msg 124 153 set;
+#X obj 64 103 t a b;
+#X msg 64 153 add2 \$1;
+#X obj 124 123 loadbang;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 3 0 7 0;
+#X connect 5 0 8 0;
+#X connect 6 0 4 0;
+#X connect 7 0 5 0;
+#X connect 7 1 6 0;
+#X connect 8 0 4 0;
+#X connect 9 0 6 0;
+#X restore 279 297 pd send;
+#N canvas 595 204 275 570 x-label 0;
+#X obj 130 279 r \$0-arrsize;
+#X obj 96 499 prepent xlabel;
+#X obj 42 39 - 1.2;
+#X obj 96 479 prepent;
+#X obj 61 299 expr $f2/$f1;
+#X obj 56 399 serialize;
+#X obj 22 340 until;
+#X obj 73 369 +;
+#X obj 46 369 0;
+#X obj 61 329 t b f;
+#X obj 61 349 0;
+#X obj 42 249 t f f f;
+#X obj 61 279 - 1;
+#X obj 42 109 moses 2;
+#X obj 42 89 r \$0-xlabel-wv;
+#X obj 42 59 s \$0-xlabel-dist-i;
+#X obj 42 19 loadbang;
+#X obj 96 529 outlet;
+#X obj 42 229 f;
+#X obj 108 459 t b f;
+#X obj 91 129 t b f;
+#X obj 116 197 spigot 0;
+#X obj 141 167 1;
+#X obj 171 147 r \$0-arr;
+#X msg 171 167 0;
+#X obj 108 439 r \$0-xlabel-dist;
+#X connect 0 0 4 1;
+#X connect 1 0 17 0;
+#X connect 2 0 15 0;
+#X connect 3 0 1 0;
+#X connect 4 0 9 0;
+#X connect 5 0 3 0;
+#X connect 6 0 8 0;
+#X connect 7 0 8 1;
+#X connect 8 0 7 0;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 9 1 7 1;
+#X connect 10 0 8 1;
+#X connect 11 0 6 0;
+#X connect 11 1 12 0;
+#X connect 11 2 5 1;
+#X connect 12 0 4 0;
+#X connect 13 1 20 0;
+#X connect 14 0 13 0;
+#X connect 16 0 2 0;
+#X connect 18 0 11 0;
+#X connect 19 0 21 0;
+#X connect 19 1 3 1;
+#X connect 20 0 22 0;
+#X connect 20 1 18 0;
+#X connect 21 0 18 0;
+#X connect 22 0 21 1;
+#X connect 23 0 24 0;
+#X connect 24 0 21 1;
+#X connect 25 0 19 0;
+#X coords 0 0 1 1 195 60 0;
+#X restore 199 217 pd x-label;
+#X text 150 177 Y-label;
+#X text 148 157 Y-ticks;
+#N canvas 906 167 297 695 y-label 0;
+#X obj 106 609 prepent;
+#X obj 66 529 serialize;
+#X obj 32 430 until;
+#X obj 83 459 +;
+#X obj 56 459 0;
+#X obj 71 419 t b f;
+#X obj 71 439 0;
+#X obj 52 269 t f f f;
+#X obj 71 369 - 1;
+#X obj 52 109 moses 2;
+#X obj 52 19 loadbang;
+#X obj 106 659 outlet;
+#X obj 52 59 s \$0-ylabel-dist-i;
+#X obj 52 89 r \$0-ylabel-wv;
+#X obj 118 569 r \$0-ylabel-dist;
+#X obj 106 629 prepent ylabel;
+#X obj 52 39 - 6;
+#X obj 140 339 t b f;
+#X obj 140 369 -;
+#X obj 100 299 r \$0-bound-y;
+#X obj 140 319 r \$0-bound-yy;
+#X obj 81 489 r \$0-bound-yy;
+#X obj 71 389 expr $f2/$f1;
+#X obj 66 509 +;
+#X obj 52 249 f;
+#X obj 118 589 t b f;
+#X obj 91 129 t b f;
+#X obj 136 207 spigot 0;
+#X obj 161 177 1;
+#X obj 191 157 r \$0-arr;
+#X msg 191 177 0;
+#X connect 0 0 15 0;
+#X connect 1 0 0 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 3 0;
+#X connect 4 0 23 0;
+#X connect 5 0 6 0;
+#X connect 5 1 3 1;
+#X connect 6 0 4 1;
+#X connect 7 0 2 0;
+#X connect 7 1 8 0;
+#X connect 7 2 1 1;
+#X connect 8 0 22 0;
+#X connect 9 1 26 0;
+#X connect 10 0 16 0;
+#X connect 13 0 9 0;
+#X connect 14 0 25 0;
+#X connect 15 0 11 0;
+#X connect 16 0 12 0;
+#X connect 17 0 18 0;
+#X connect 17 1 18 1;
+#X connect 18 0 22 1;
+#X connect 19 0 18 0;
+#X connect 20 0 17 0;
+#X connect 21 0 23 1;
+#X connect 22 0 5 0;
+#X connect 23 0 1 0;
+#X connect 24 0 7 0;
+#X connect 25 0 27 0;
+#X connect 25 1 0 1;
+#X connect 26 0 28 0;
+#X connect 26 1 24 0;
+#X connect 27 0 24 0;
+#X connect 28 0 27 1;
+#X connect 29 0 30 0;
+#X connect 30 0 27 1;
+#X coords 0 0 1 1 195 60 0;
+#X restore 199 177 pd y-label;
+#N canvas 524 614 293 249 y-ticks 0;
+#X obj 133 126 /;
+#X obj 133 96 t b f;
+#X obj 105 166 pack f f f;
+#X obj 162 146 expr 100/$f1;
+#X obj 105 216 outlet;
+#X obj 25 126 r \$0-ytick-send;
+#X msg 105 186 yticks \$1 \$2 \$3;
+#X obj 162 126 r \$0-ytick-prop;
+#X obj 133 76 r \$0-ytick-div;
+#X obj 93 56 t b f;
+#X obj 93 86 -;
+#X obj 53 16 r \$0-bound-y;
+#X obj 93 36 r \$0-bound-yy;
+#X connect 0 0 2 1;
+#X connect 1 0 0 0;
+#X connect 1 1 0 1;
+#X connect 2 0 6 0;
+#X connect 3 0 2 2;
+#X connect 5 0 2 0;
+#X connect 6 0 4 0;
+#X connect 7 0 3 0;
+#X connect 8 0 1 0;
+#X connect 9 0 10 0;
+#X connect 9 1 10 1;
+#X connect 10 0 0 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X coords 0 0 1 1 201 75 0;
+#X restore 199 157 pd y-ticks;
+#X obj 14 338 r \$0-f-writ;
+#X msg 14 358 \; pd-function-writer vis 1;
+#X msg 14 298 \; pd-segment-draw vis 1;
+#X obj 14 278 r \$0-s-draw;
+#X obj 15 179 moses 1;
+#X obj 279 317 dsp01 1;
+#X text 18 434 adicionar toggle para com/sem wraparound.;
+#X obj 327 349 inlet;
+#X obj 382 139 symbol \$1;
+#X obj 382 119 loadbang;
+#X obj 327 409 s \$0-segrel;
+#X obj 327 369 route segrel segabs;
+#X obj 382 389 s \$0-segabs;
+#X text 285 390 FUNKTIONIERT NICHT \, DIE " \, " MACHEN MEHRERE NACHRICHTEN
+;
+#X connect 0 0 35 0;
+#X connect 1 0 45 0;
+#X connect 2 0 35 0;
+#X connect 3 0 6 0;
+#X connect 3 0 7 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 8 0;
+#X connect 9 0 0 0;
+#X connect 12 0 16 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 18 0 17 0;
+#X connect 19 0 20 0;
+#X connect 20 0 18 0;
+#X connect 22 0 35 0;
+#X connect 24 0 22 0;
+#X connect 24 0 26 0;
+#X connect 26 0 25 0;
+#X connect 27 0 29 0;
+#X connect 29 0 35 0;
+#X connect 30 0 35 0;
+#X connect 33 0 35 0;
+#X connect 36 0 35 0;
+#X connect 39 0 35 0;
+#X connect 40 0 35 0;
+#X connect 41 0 42 0;
+#X connect 44 0 43 0;
+#X connect 45 1 2 0;
+#X connect 45 1 7 0;
+#X connect 48 0 52 0;
+#X connect 49 0 25 0;
+#X connect 50 0 49 0;
+#X connect 52 0 51 0;
+#X connect 52 1 53 0;
+#X connect 52 2 26 0;
+#X restore 32 695 pd inside;
+#X obj 290 310 cnv 15 100 100 empty empty empty 20 12 0 14 -191407
+-66577 0;
+#X floatatom 307 367 5 0 0 0 - #0-bound-x-i #0-bound-x;
+#X floatatom 327 347 5 0 0 0 - #0-bound-y-i #0-bound-y;
+#X floatatom 347 367 5 0 0 0 - #0-bound-xx-i #0-bound-xx;
+#X floatatom 327 387 5 0 0 0 - #0-bound-yy-i #0-bound-yy;
+#X text 294 312 Graphic bounds;
+#X text 293 365 X;
+#X text 328 328 Y;
+#X obj 307 347 bng 13 250 50 0 \$0-bound-send \$0-bound-send-i empty
+17 7 0 10 -228856 -1 -1;
+#X obj 12 398 cnv 15 265 65 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 17 418 5 2 100000 0 - #0-xlabel-wv-i #0-xlabel-wv;
+#X text 108 418 How many numbers in total;
+#X floatatom 17 438 6 0 0 0 - #0-xlabel-dist-i #0-xlabel-dist;
+#X text 108 438 Distance (as y value);
+#X obj 12 310 cnv 15 265 80 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 18 329 5 0 0 0 - #0-xtick-div-i #0-xtick-div;
+#X floatatom 18 349 5 0 0 0 - #0-xtick-prop-i #0-xtick-prop;
+#X obj 25 369 bng 14 250 50 0 \$0-xtick-send \$0-xtick-send-i empty
+17 7 0 10 -228856 -1 -1;
+#X text 108 369 Send format;
+#X text 108 349 Proportion of big ticks (%);
+#X text 108 329 How many divisions in total;
+#X obj 11 186 cnv 15 135 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 15 191 5 0 0 0 - #0-norml-i #0-norml;
+#X text 50 191 Normalize to x;
+#X obj 197 151 cnv 15 115 60 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 202 189 10 0 0 0 - #0-ind_t-i #0-ind_t;
+#X text 199 150 Index test;
+#X text 268 169 Index;
+#X text 268 188 Value;
+#X obj 12 216 cnv 15 170 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 16 221 5 0 0 0 - #0-const-i #0-const;
+#X text 51 221 Set a constant value;
+#X obj 11 156 cnv 15 145 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 15 160 10 0 0 0 - #0-resize-i #0-resize;
+#X text 82 160 Size/Resize;
+#X obj 71 52 cnv 15 260 60 empty empty empty 20 12 0 14 -241339 -66577
+0;
+#X symbolatom 144 61 30 0 0 0 - #0-arr-i #0-arr;
+#X symbolatom 144 89 30 0 0 0 - #0-rename-i #0-rename;
+#X text 74 89 Rename it;
+#X text 74 61 Array name;
+#X obj 117 8 cnv 15 160 30 empty empty ARRAY-EDITOR 8 16 0 20 -191407
+-33289 0;
+#X obj 12 255 cnv 15 60 20 empty empty Display 5 11 0 12 -191407 -33289
+0;
+#X obj 202 169 nbx 5 16 0 99 0 0 \$0-ind_i \$0-ind_i-i empty 0 -8 0
+10 -228856 -1 -1 0 256;
+#X obj 12 495 r \$0-command;
+#X msg 12 515;
+#X floatatom 68 329 5 0 0 0 - #0-ytick-div-i #0-ytick-div;
+#X floatatom 68 349 5 0 0 0 - #0-ytick-prop-i #0-ytick-prop;
+#X obj 75 369 bng 14 250 50 0 \$0-ytick-send \$0-ytick-send-i empty
+17 7 0 10 -228856 -1 -1;
+#X floatatom 67 418 5 2 100000 0 - #0-ylabel-wv-i #0-ylabel-wv;
+#X floatatom 67 438 6 0 0 0 - #0-ylabel-dist-i #0-ylabel-dist;
+#X text 23 310 X / Y Ticks;
+#X text 25 398 X / Y Label;
+#N canvas 505 36 496 590 function-writer 0;
+#X obj 27 231 tabwrite~ \$1;
+#X obj 27 122 bng 15 250 50 0 empty empty Calculate 21 8 0 12 -228856
+-1 -1;
+#X text 15 51 1 - Edit your formula below;
+#X text 13 330 Some formula examples:;
+#X text 17 398 - descending line;
+#X obj 139 379 expr~ $v1;
+#X obj 139 399 expr~ 1-$v1;
+#X obj 139 439 expr~ pow($v1 \, .5);
+#X text 17 438 - logarithmic line;
+#X text 17 418 - exponential line;
+#X obj 139 419 expr~ pow($v1 \, 2);
+#X text 13 350 Lines;
+#X floatatom 279 150 5 0 0 0 - - -;
+#X text 14 8 The function writer writes a funcion in your array. It
+analyses the sample rate and arraysize \, so that the wave fits perfectly
+with the array. To create a new waveform:;
+#X text 131 103 Edit your formula here \, or copy-paste from the ones
+below. The number field is to connect with the gaussian formula \,
+or with any formulas that need extra argument(s).;
+#N canvas 0 0 450 372 calc 0;
+#X obj 187 38 inlet;
+#X obj 226 78 samplerate~;
+#X obj 127 278 r \$0-arr;
+#X obj 197 298 phasor~;
+#X obj 226 238 /;
+#X msg 127 298 set \$1;
+#X obj 206 258 0;
+#X obj 241 98 r \$0-arrsize;
+#X obj 187 58 t a b b;
+#X obj 187 338 outlet;
+#X obj 197 318 outlet~;
+#X obj 241 218 +;
+#X obj 256 118 r \$0-wrapar;
+#X obj 256 138 * -1;
+#X obj 241 188 f;
+#X obj 256 158 t b f;
+#X connect 0 0 8 0;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 0;
+#X connect 5 0 9 0;
+#X connect 6 0 3 1;
+#X connect 7 0 14 0;
+#X connect 8 0 9 0;
+#X connect 8 1 6 0;
+#X connect 8 2 1 0;
+#X connect 11 0 4 1;
+#X connect 12 0 13 0;
+#X connect 13 0 15 0;
+#X connect 14 0 11 0;
+#X connect 15 0 14 0;
+#X connect 15 1 11 1;
+#X restore 27 140 pd calc;
+#X text 70 543 If there's any function that you think should be here
+\, tell me about it at jmmmpais@googlemail.com;
+#N canvas 0 0 685 457 (subpatch) 0;
+#X array array2 120 float 0;
+#X coords 0 1 119 0 120 90 1;
+#X restore 311 354 graph;
+#X obj 286 292 s \$0-arr-i;
+#X text 50 254 To try out the waveforms below \, first choose this
+array as the array to be edited by clicking on:;
+#X msg 286 272 symbol array2;
+#X text 15 71 2 - Bang "Calculate";
+#X text 16 378 - ascending line;
+#N canvas 232 298 502 383 panning-curves 0;
+#X obj 380 12 switch~ 0;
+#X text 17 138 - simple (triangular);
+#X text 12 19 Panning curves;
+#X obj 149 139 expr~ 1-$v1;
+#X text 11 80 Some curves need the Wraparound option \, so that the
+final value is as close as possible.;
+#X obj 149 159 expr~ pow(1-$v1 \, .5);
+#X text 17 158 - square root;
+#X obj 149 179 expr~ cos($v1*0.5*3.14159);
+#X text 17 178 - sinus;
+#X obj 149 199 expr~ ((sqrt(2)/2) * (cos(($v1) * (4 * atan(1)) - (4
+* atan(1)/2)) - sin(($v1) * (4 * atan(1)) - (4 * atan(1)/2))))*0.5+0.5
+;
+#X text 16 198 - "equal power";
+#X text 11 40 These curves are for the left side. To get the right
+side value \, just read the table at the mirror point: [arraysize]-[index]-1.
+;
+#X text 17 328 Formulas taken from Csound Ezine/Jamie Bullock \, Georg
+Holzmann.;
+#X obj 149 265 expr~ (cos($v1)-sin($v1))*(sqrt(2)/2);
+#X obj 149 245 expr~ ($v1*3.14159/2)-3.14159/4;
+#X text 16 245 - tangent law;
+#X connect 14 0 13 0;
+#X restore 23 478 pd panning-curves;
+#N canvas 148 141 450 259 trigonometry/windowing 0;
+#X text 17 48 - sine wave;
+#X obj 139 49 expr~ sin($v1*3.14159*2);
+#X obj 139 89 expr~ 0.5*(1-cos($v1*3.14159*2));
+#X text 17 68 - cosine window;
+#X obj 139 69 expr~ sin($v1*3.14159);
+#X obj 139 109 expr~ 0.53836-0.46164*cos($v1*3.14159*2);
+#X text 17 108 - hamming window;
+#X text 17 88 - hanning window;
+#X text 17 128 - connes window;
+#X obj 139 129 expr~ pow(1-pow($v1*2-1 \, 2) \, 2);
+#X obj 139 149 expr~ 1-abs($v1*2-1);
+#X text 17 148 - welch window;
+#X text 17 168 - gaussian window;
+#X obj 137 170 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
+#X text 17 208 - lanczos window;
+#X obj 139 209 expr~ sin(($v1*2-1)*3.14159)/(($v1*2-1)*3.14159);
+#X text 12 19 Trigonometry/Windowing formulas;
+#X obj 380 12 switch~ 0;
+#X text 134 188 (0 < $f2 < 1);
+#X restore 23 508 pd trigonometry/windowing;
+#X obj 67 181 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
+#X connect 1 0 15 0;
+#X connect 12 0 25 1;
+#X connect 15 0 0 0;
+#X connect 15 1 25 0;
+#X connect 20 0 18 0;
+#X connect 25 0 0 0;
+#X restore 32 639 pd function-writer;
+#X obj 12 128 cnv 15 60 20 empty empty Basic 5 11 0 12 -191407 -33289
+0;
+#X text 12 277 Attention: to edit the Y fields \, you must first define
+the Y values in Graphic Bounds.;
+#N canvas 266 36 411 747 segment-draw 0;
+#X msg 75 356 0 0 \, -1.5 15 \, 1 50 \, 0.75 75 \, 0 100;
+#X text 11 528 relative index: 0%-100%;
+#N canvas 545 59 692 802 segment-function-draw 0;
+#X obj 173 33 inlet;
+#X obj 92 133 r \$0-arrsize;
+#X obj 77 153 *;
+#X obj 77 113 * 0.01;
+#X obj 344 21 inlet;
+#X text 168 9 relativ;
+#X text 389 16 absolut;
+#X obj 77 173 i;
+#X obj 219 573 samplerate~;
+#X obj 69 682 r \$0-arr;
+#X obj 219 593 /;
+#X msg 69 702 set \$1;
+#X obj 189 644 0;
+#X obj 143 293 -;
+#X obj 158 273 f;
+#X obj 143 243 t f f b;
+#X msg 130 583 start \$1;
+#X obj 170 553 t f b b;
+#X obj 77 193 t f f;
+#X obj 27 283 moses;
+#X obj 54 263 r \$0-arrsize;
+#X obj 104 213 moses 1;
+#X obj 152 682 phasor~;
+#X obj 130 772 tabwrite~ \$1;
+#X obj 295 627 del;
+#X obj 295 607 * 1.01;
+#N canvas 77 335 450 302 blocksize 0;
+#X obj 174 211 outlet;
+#X obj 164 31 inlet;
+#X obj 164 51 samplerate~;
+#X obj 174 171 /;
+#X obj 174 191 * 1000;
+#X obj 179 121 iem_blocksize~;
+#X obj 164 141 f;
+#X obj 164 71 t b f;
+#X obj 179 101 sig~;
+#X connect 1 0 2 0;
+#X connect 2 0 7 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 6 1;
+#X connect 6 0 3 0;
+#X connect 7 0 6 0;
+#X connect 7 1 3 1;
+#X connect 8 0 5 0;
+#X restore 295 587 pd blocksize;
+#X obj 219 613 t b f;
+#X obj 179 83 swap;
+#X obj 151 742 +~;
+#X text 327 629 each segment is written after a delay of 1 block. maybe
+not the best way \, but the only one using ~ ?;
+#X obj 152 722 *~;
+#X obj 170 493 textfile;
+#X obj 310 155 f;
+#X obj 275 238 route list;
+#X obj 275 208 list prepend;
+#X obj 344 188 spigot 0;
+#X msg 374 168 0;
+#X msg 404 168 1;
+#X obj 275 125 t f b f b;
+#X obj 275 258 unpack;
+#X obj 304 318 -;
+#X obj 294 298 f;
+#X obj 275 278 t f b f;
+#X obj 170 443 prepent add;
+#X msg 104 473 clear;
+#X msg 205 467 rewind \, bang;
+#X obj 143 373 swap;
+#X obj 143 353 pack;
+#X obj 205 139 t b b b;
+#X obj 143 403 pack f f f f f;
+#X obj 170 523 unpack f f f f f;
+#X obj 173 53 zexy/unpack f f f;
+#X obj 254 413 0;
+#X obj 143 423 t b a;
+#X obj 152 702 expr~ pow($v1 \, exp($f2*5*log(2)));
+#X text 280 523 dauer \, anfangspunkt \, anfangswert \, skalierung
+\, exp-curve;
+#X obj 350 71 swap;
+#X obj 344 41 zexy/unpack f f f;
+#X msg 323 471 print;
+#X obj 93 23 r \$0-segrel;
+#X obj 263 13 r \$0-segabs;
+#X connect 0 0 52 0;
+#X connect 1 0 2 1;
+#X connect 2 0 7 0;
+#X connect 3 0 2 0;
+#X connect 4 0 58 0;
+#X connect 7 0 18 0;
+#X connect 8 0 10 0;
+#X connect 9 0 11 0;
+#X connect 10 0 27 0;
+#X connect 11 0 23 0;
+#X connect 12 0 22 1;
+#X connect 13 0 48 0;
+#X connect 14 0 13 1;
+#X connect 15 0 13 0;
+#X connect 15 1 14 1;
+#X connect 15 2 14 0;
+#X connect 16 0 23 0;
+#X connect 17 0 16 0;
+#X connect 17 1 12 0;
+#X connect 17 2 8 0;
+#X connect 18 0 19 0;
+#X connect 18 1 21 0;
+#X connect 19 0 48 1;
+#X connect 19 1 49 0;
+#X connect 20 0 19 1;
+#X connect 21 0 14 1;
+#X connect 21 0 45 0;
+#X connect 21 1 15 0;
+#X connect 22 0 55 0;
+#X connect 24 0 32 0;
+#X connect 25 0 24 0;
+#X connect 26 0 25 0;
+#X connect 27 0 26 0;
+#X connect 27 1 22 0;
+#X connect 28 0 3 0;
+#X connect 28 1 39 0;
+#X connect 29 0 23 0;
+#X connect 31 0 29 0;
+#X connect 32 0 51 0;
+#X connect 33 0 36 0;
+#X connect 34 0 40 0;
+#X connect 35 0 34 0;
+#X connect 36 0 35 1;
+#X connect 37 0 36 1;
+#X connect 38 0 36 1;
+#X connect 39 0 35 0;
+#X connect 39 1 38 0;
+#X connect 39 2 33 1;
+#X connect 39 3 33 0;
+#X connect 40 0 43 0;
+#X connect 40 1 42 1;
+#X connect 41 0 50 3;
+#X connect 42 0 41 0;
+#X connect 43 0 50 2;
+#X connect 43 1 42 0;
+#X connect 43 2 41 1;
+#X connect 44 0 32 0;
+#X connect 45 0 32 0;
+#X connect 46 0 32 0;
+#X connect 47 0 50 0;
+#X connect 47 1 50 1;
+#X connect 48 0 47 0;
+#X connect 49 0 46 0;
+#X connect 49 1 35 1;
+#X connect 49 2 37 0;
+#X connect 50 0 54 0;
+#X connect 51 0 17 0;
+#X connect 51 1 10 1;
+#X connect 51 2 29 1;
+#X connect 51 3 31 1;
+#X connect 51 4 55 1;
+#X connect 52 0 28 0;
+#X connect 52 1 28 1;
+#X connect 52 2 50 4;
+#X connect 53 0 50 4;
+#X connect 54 0 53 0;
+#X connect 54 1 44 0;
+#X connect 55 0 31 0;
+#X connect 57 0 18 0;
+#X connect 57 1 39 0;
+#X connect 58 0 57 0;
+#X connect 58 1 57 1;
+#X connect 58 2 50 4;
+#X connect 59 0 32 0;
+#X connect 60 0 52 0;
+#X connect 61 0 58 0;
+#X restore 45 509 pd segment-function-draw;
+#X msg 55 316 0 0 \, 1 50 \, 0 100;
+#X text 20 196 Attention: You must always define an array completely
+\, from the first to last indexes (be it in relative or absolute indexes).
+;
+#X text 181 529 absolute index: 0-arraysize;
+#X text 27 692 Note: Each segment is written after a 1-block delay.
+If you're thinking about using this tool for live audio \, make sure
+you don't get side effects due to this technique.;
+#X text 21 87 - index Value;
+#X text 21 107 - duration - in percentage of total duration (left inlet)
+or in absolute indexes (right inlet);
+#X text 20 56 Segment draw: Define each breakpoint with 2 or 3 indexes.
+Each breakpoint is separated by commas:;
+#N canvas 0 0 668 457 (subpatch) 0;
+#X array array1 120 float 0;
+#X coords 0 1 119 -1 120 90 1;
+#X restore 145 581 graph;
+#X obj 256 282 s \$0-arr-i;
+#X msg 256 262 symbol array1;
+#X obj 147 21 cnv 15 95 20 empty empty Segment-draw 5 11 0 12 -191407
+-33289 0;
+#X text 21 138 - curve steppness [-1 to 1]: 0 or missing for a straight
+line. 0 to 1 for exponential curve \, -1 to 0 for logarithmic curve.
+;
+#X text 164 315 normal wave;
+#X msg 64 336 0 0 \, 1 50 0.15 \, 0 100 -0.15;
+#X text 236 335 same wave \, but curved;
+#X text 20 244 To try out the waveforms below \, first choose this
+array as the array to be edited by clicking on:;
+#X text 83 376 more complex example;
+#X msg 164 433 0 0 \, 1 60 \, 0 120;
+#X msg 174 453 0 0 \, 1 60 0.15 \, 0 120 -0.15;
+#X msg 185 473 0 0 \, -1.5 18 \, 1 60 \, 0.75 90 \, 0 120;
+#X text 93 413 Same examples as above \, with absolute coordinates
+;
+#X connect 0 0 2 0;
+#X connect 3 0 2 0;
+#X connect 12 0 11 0;
+#X connect 16 0 2 0;
+#X connect 20 0 2 1;
+#X connect 21 0 2 1;
+#X connect 22 0 2 1;
+#X restore 32 596 pd segment-draw;
+#X obj 12 640 bng 15 250 50 0 \$0-f-writ \$0-f-writ-i empty 17 7 0
+10 -228856 -1 -1;
+#X obj 12 597 bng 15 250 50 0 \$0-s-draw \$0-s-draw-i empty 17 7 0
+10 -228856 -1 -1;
+#X text 32 576 Draw a wave shape through break points;
+#X text 32 619 Define a wave shape through its function;
+#X obj 12 549 cnv 15 100 20 empty empty Ploting.tools 5 11 0 12 -191407
+-33289 0;
+#X text 94 685 (where everything works);
+#X text 12 474 You can copy the commands and paste them in your patch:
+;
+#X obj 32 675 inlet;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2006 \, João Pais;
+#X restore 32 724 pd license;
+#X text 99 724 (C) 2009 João Pais - jmmmpais@googlemail.com;
+#X obj 197 216 cnv 15 187 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X obj 202 221 tgl 15 0 \$0-wrapar \$0-wrapar-i empty 17 7 0 10 -228856
+-1 -1 0 1;
+#X text 221 220 Wraparound (last index ~0);
+#N canvas 278 215 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 12 35 KEYWORDS array edit;
+#X text 12 135 VERSION 2009;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 165 INLET_0 - symbol name of array to be edited;
+#X text 12 5 DESCRIPTION Edit properties of arrays and populate them
+following several formulas;
+#X restore 32 744 pd META;
+#X connect 44 0 45 0;
+#X connect 64 0 0 0;
diff --git a/abstractions/jmmmp/bezier-help.pd b/abstractions/jmmmp/bezier-help.pd
index cc6f5c3b9..6fd0e44b4 100644
--- a/abstractions/jmmmp/bezier-help.pd
+++ b/abstractions/jmmmp/bezier-help.pd
@@ -1,12 +1,13 @@
-#N struct bez-array float x float y array bez-c-arr bez-c float p0x
-float p0y float p0x. float p0y. float p1x float p1y float p1x. float
-p1y. float p2x float p2y float p2x. float p2y. float p3x float p3y
-float p3x. float p3y. float rpx float rpy float rpx. float rpy.;
-#N struct bez-c float x float y;
-#N canvas 280 17 921 908 10;
+#N struct 1124-bez-array float x float y array 1124-bez-c-arr 1124-bez-c
+float p0x float p0y float p0x. float p0y. float p1x float p1y float
+p1x. float p1y. float p2x float p2y float p2x. float p2y. float p3x
+float p3y float p3x. float p3y. float rpx float rpy float rpx. float
+rpy.;
+#N struct 1124-bez-c float x float y;
+#N canvas 31 5 921 704 10;
 #X floatatom 415 741 5 0 0 0 - - -;
 #X obj 418 727 hsl 50 10 0 1 0 0 empty empty empty -2 -8 0 10 -228856
--1 -1 4900 0;
+-1 -1 0 0;
 #X floatatom 135 195 5 0 0 0 - - -;
 #X msg 125 134 canvas \$1;
 #X floatatom 135 114 5 0 0 0 - - -;
@@ -14,18 +15,17 @@ float p3x. float p3y. float rpx float rpy float rpx. float rpy.;
 #X msg 415 687 0 \, 1 3000;
 #X obj 135 504 pack;
 #X obj 145 484 t b f;
-#X obj 125 820 unpack;
-#X msg 228 820 p0 0.142857 0.244898 \, p1 0.34 0.88 \, p2 0.9 0.4 \,
-p3 0.85 0.73;
+#X msg 228 820 p0 0.25 0.34 \, p1 0.34 0.88 \, p2 0.9 0.4 \, p3 0.85
+0.73;
 #X text 543 84 Arguments;
 #X obj 148 457 hsl 50 10 0 1 0 0 empty empty X -16 6 0 12 -228856 -1
--1 700 1;
+-1 0 1;
 #X obj 148 471 hsl 50 10 0 1 0 0 empty empty Y -16 6 0 12 -228856 -1
--1 1200 1;
-#X obj 128 840 hsl 50 10 0 1 0 0 empty empty X -16 6 0 12 -228856 -1
--1 4165 1;
-#X obj 128 854 hsl 50 10 0 1 0 0 empty empty Y -16 6 0 12 -228856 -1
--1 3577 1;
+-1 0 1;
+#X obj 128 820 hsl 50 10 0 1 0 0 empty empty X -16 6 0 12 -228856 -1
+-1 0 1;
+#X obj 128 834 hsl 50 10 0 1 0 0 empty empty Y -16 6 0 12 -228856 -1
+-1 0 1;
 #X text 135 297 default values;
 #X text 135 337 also first and last points can take any value;
 #X text 222 154 Two values define x and y coordinates;
@@ -36,7 +36,6 @@ a square ...;
 #X text 172 194 size \$1 - Define array size (minimum 2 points);
 #X text 240 789 Dump outlet: connect to a message box \, which you
 can later copy-paste.;
-#X text 105 869 Output: list with scaled x and y values;
 #X text 545 163 If no arguments are given \, the default values are
 110 100 100 When no y argument is present \, a square with dimensions
 of x is created.;
@@ -63,13 +62,8 @@ get formatted.;
 #X text 543 254 Outlets;
 #X text 546 272 - float pair with x / y values;
 #X text 546 292 - control point dump;
-#X text 21 9 [bezier] - Transfer function with one cubic bézier curve
-;
 #X text 153 554 readpoint \$1 - Turn readpoint (red) display on or
 off. Readpoint shows the curent place in the buffer.;
-#X text 543 536 READPOINT NAO FUNCIONA COM VARIOS OBJECTOS \, ENVIA
-PARA BEZIER CRIADO PRIMEIRO \; TIRAR TODOS OS SENDS \, OU FAZER UM
-LOCAL SEND;
 #X text 22 29 Create a transfer function between 0 and 1 \, using the
 four control points of a cubic bézier curve.;
 #X text 546 232 - floats [0 to 1] / commands (with parameters);
@@ -82,7 +76,7 @@ the red boundaries. Or send pX coordinates.;
 #X text 70 814 OUTPUT;
 #X obj 415 761 s \$0-input;
 #X obj 135 677 r \$0-input;
-#X text 320 667 Send your input values between 0 and 1 here:;
+#X text 415 667 Send your input values between 0 and 1 here:;
 #X msg 125 317 p0 0 0 \, p1 0.1 0.6 \, p2 0.9 0.4 \, p3 1 1;
 #X msg 125 357 p0 0.25 0.34 \, p1 0.34 0.88 \, p2 0.9 0.4 \, p3 0.85
 0.73;
@@ -97,30 +91,45 @@ the box - you won't be able to grab the graphic (see bug description)
 ;
 #X msg 125 583 readpoint \$1;
 #X msg 125 624 dump;
-#X connect 0 0 52 0;
+#X text 65 849 Outputs: scaled x and y values;
+#X text 21 9 [bezier] - Transfer function GUI with one cubic bézier
+curve;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 12 5 DESCRIPTION Transfer function GUI with one cubic bézier
+curve;
+#X text 12 35 KEYWORDS bezier data structures;
+#X text 12 135 VERSION 2010;
+#X text 12 165 INLET_0 - all instructions;
+#X text 12 185 OUTLET_0 - list with x/y values;
+#X text 12 205 OUTLET_1 - dump current parameters;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X restore 542 486 pd META;
+#X connect 0 0 48 0;
 #X connect 1 0 0 0;
-#X connect 2 0 60 0;
-#X connect 3 0 27 0;
+#X connect 2 0 56 0;
+#X connect 3 0 25 0;
 #X connect 4 0 3 0;
 #X connect 5 0 1 0;
 #X connect 6 0 5 0;
-#X connect 7 0 58 0;
+#X connect 7 0 54 0;
 #X connect 8 0 7 0;
 #X connect 8 1 7 1;
-#X connect 9 0 14 0;
-#X connect 9 1 15 0;
-#X connect 12 0 7 0;
-#X connect 13 0 8 0;
-#X connect 26 0 64 0;
-#X connect 27 0 9 0;
-#X connect 27 1 10 0;
-#X connect 53 0 27 0;
-#X connect 55 0 27 0;
-#X connect 56 0 27 0;
-#X connect 57 0 27 0;
-#X connect 58 0 27 0;
-#X connect 60 0 27 0;
-#X connect 61 0 27 0;
-#X connect 62 0 27 0;
-#X connect 64 0 27 0;
-#X connect 65 0 27 0;
+#X connect 11 0 7 0;
+#X connect 12 0 8 0;
+#X connect 24 0 60 0;
+#X connect 25 0 13 0;
+#X connect 25 1 14 0;
+#X connect 25 2 9 0;
+#X connect 49 0 25 0;
+#X connect 51 0 25 0;
+#X connect 52 0 25 0;
+#X connect 53 0 25 0;
+#X connect 54 0 25 0;
+#X connect 56 0 25 0;
+#X connect 57 0 25 0;
+#X connect 58 0 25 0;
+#X connect 60 0 25 0;
+#X connect 61 0 25 0;
diff --git a/abstractions/jmmmp/bezier.pd b/abstractions/jmmmp/bezier.pd
index 8d60eeed1..e20012c1c 100644
--- a/abstractions/jmmmp/bezier.pd
+++ b/abstractions/jmmmp/bezier.pd
@@ -1,43 +1,11 @@
-#N struct bez-array float x float y array bez-c-arr bez-c float p0x
-float p0y float p0x. float p0y. float p1x float p1y float p1x. float
-p1y. float p2x float p2y float p2x. float p2y. float p3x float p3y
-float p3x. float p3y. float rpx float rpy float rpx. float rpy.;
-#N struct bez-c float x float y;
 #N canvas 0 0 855 754 10;
-#X scalar bez-array 0 0 -2 -2 3 3 8 58 13 63 88 38 93 43 98 98 103
-103 98 98 103 103 \; 0 0 \; 0.26146 1.71676 \; 0.56528 3.38768 \; 0.91062
-5.01372 \; 1.29664 6.59584 \; 1.7225 8.135 \; 2.18736 9.63216 \; 2.69038
-11.0883 \; 3.23072 12.5043 \; 3.80754 13.8812 \; 4.42 15.22 \; 5.06726
-16.5216 \; 5.74848 17.7869 \; 6.46282 19.0169 \; 7.20944 20.2126 \;
-7.9875 21.375 \; 8.79616 22.505 \; 9.63458 23.6035 \; 10.5019 24.6715
-\; 11.3973 25.71 \; 12.32 26.72 \; 13.2691 27.7024 \; 14.2437 28.6581
-\; 15.243 29.5881 \; 16.2662 30.4934 \; 17.3125 31.375 \; 18.381 32.2338
-\; 19.4708 33.0707 \; 20.5811 33.8867 \; 21.7111 34.6828 \; 22.86 35.46
-\; 24.0269 36.2192 \; 25.2109 36.9613 \; 26.4112 37.6873 \; 27.627
-38.3982 \; 28.8575 39.095 \; 30.1018 39.7786 \; 31.359 40.4499 \; 32.6283
-41.1099 \; 33.9089 41.7596 \; 35.2 42.4 \; 36.5007 43.032 \; 37.8101
-43.6565 \; 39.1274 44.2745 \; 40.4518 44.887 \; 41.7825 45.495 \; 43.1186
-46.0994 \; 44.4592 46.7011 \; 45.8035 47.3011 \; 47.1507 47.9004 \;
-48.5 48.5 \; 49.8505 49.1008 \; 51.2013 49.7037 \; 52.5516 50.3097
-\; 53.9006 50.9198 \; 55.2475 51.535 \; 56.5914 52.1562 \; 57.9314
-52.7843 \; 59.2667 53.4203 \; 60.5965 54.0652 \; 61.92 54.72 \; 63.2363
-55.3856 \; 64.5445 56.0629 \; 65.8438 56.7529 \; 67.1334 57.4566 \;
-68.4125 58.175 \; 69.6802 58.909 \; 70.9356 59.6595 \; 72.1779 60.4275
-\; 73.4063 61.214 \; 74.62 62.02 \; 75.8181 62.8464 \; 76.9997 63.6941
-\; 78.164 64.5641 \; 79.3102 65.4574 \; 80.4375 66.375 \; 81.545 67.3178
-\; 82.6318 68.2867 \; 83.6971 69.2827 \; 84.7401 70.3068 \; 85.76 71.36
-\; 86.7559 72.4432 \; 87.7269 73.5573 \; 88.6722 74.7033 \; 89.591
-75.8822 \; 90.4825 77.095 \; 91.3458 78.3425 \; 92.18 79.6259 \; 92.9843
-80.9459 \; 93.7579 82.3037 \; 94.5 83.7 \; 95.2097 85.1359 \; 95.8861
-86.6125 \; 96.5284 88.1305 \; 97.1358 89.691 \; 97.7075 91.295 \; 98.2426
-92.9434 \; 98.7402 94.6371 \; 99.1995 96.3771 \; 100 100 \; \;;
 #X obj 217 10 inlet;
 #N canvas 627 482 718 464 inside 0;
 #X obj 20 82 inlet;
 #X obj 346 282 s \$0-bezier-a;
 #N canvas 0 0 450 300 element 0;
-#X obj 52 46 struct bez-c float x float y;
-#X restore 20 322 pd element;
+#X obj 52 46 struct \$0-bez-c float x float y;
+#X restore 20 302 pd element;
 #N canvas 665 149 542 409 array 0;
 #X obj 11 87 route change click;
 #X obj 31 121 unpack p f;
@@ -58,12 +26,12 @@ p0x. p0y p0x. p0y. p0x p0y. p0x p0y;
 p3x. p3y p3x. p3y. p3x p3y. p3x p3y;
 #X obj 166 171 r \$0-read-point-view;
 #X text 297 171 read point;
-#X obj 11 15 struct bez-array float x float y array bez-c-arr bez-c
-float p0x float p0y float p0x. float p0y. float p1x float p1y float
-p1x. float p1y. float p2x float p2y float p2x. float p2y. float p3x
-float p3y float p3x. float p3y. float rpx float rpy float rpx. float
-rpy.;
-#X obj 166 111 plot bez-c-arr 9 2 0 0;
+#X obj 11 15 struct \$0-bez-array float x float y array \$0-bez-c-arr
+\$0-bez-c float p0x float p0y float p0x. float p0y. float p1x float
+p1y float p1x. float p1y. float p2x float p2y float p2x. float p2y.
+float p3x float p3y float p3x. float p3y. float rpx float rpy float
+rpx. float rpy.;
+#X obj 166 111 plot \$0-bez-c-arr 9 2 0 0;
 #X obj 166 191 filledpolygon 900 900 1 rpx rpy rpx. rpy rpx. rpy. rpx
 rpy. rpx rpy;
 #X connect 0 0 1 0;
@@ -74,7 +42,7 @@ rpy. rpx rpy;
 #X connect 5 0 3 0;
 #X connect 12 0 16 0;
 #X connect 14 0 0 0;
-#X restore 20 342 pd array;
+#X restore 20 322 pd array;
 #N canvas 257 223 482 660 calculate 0;
 #X obj 27 42 inlet;
 #X obj 27 202 until;
@@ -106,17 +74,17 @@ a escalonar tudo? talvez nao;
 #X obj 47 122 t b f f;
 #X obj 27 272 *;
 #X obj 46 292 *;
-#X obj 141 190 get bez-array p0x;
-#X obj 151 210 get bez-array p1x;
-#X obj 161 230 get bez-array p2x;
-#X obj 171 250 get bez-array p3x;
-#X obj 311 190 get bez-array p0y;
-#X obj 320 210 get bez-array p1y;
-#X obj 331 230 get bez-array p2y;
-#X obj 341 250 get bez-array p3y;
-#X obj 108 498 element bez-array bez-c-arr;
-#X obj 27 538 set bez-c x;
-#X obj 46 558 set bez-c y;
+#X obj 141 190 get \$0-bez-array p0x;
+#X obj 151 210 get \$0-bez-array p1x;
+#X obj 161 230 get \$0-bez-array p2x;
+#X obj 171 250 get \$0-bez-array p3x;
+#X obj 311 190 get \$0-bez-array p0y;
+#X obj 320 210 get \$0-bez-array p1y;
+#X obj 331 230 get \$0-bez-array p2y;
+#X obj 341 250 get \$0-bez-array p3y;
+#X obj 108 498 element \$0-bez-array \$0-bez-c-arr;
+#X obj 27 538 set \$0-bez-c x;
+#X obj 46 558 set \$0-bez-c y;
 #X connect 0 0 11 0;
 #X connect 1 0 2 0;
 #X connect 2 0 9 0;
@@ -168,8 +136,8 @@ a escalonar tudo? talvez nao;
 #X connect 34 0 19 0;
 #X connect 35 0 8 0;
 #X restore 20 362 pd calculate;
-#X obj 55 182 outlet;
-#N canvas 0 0 333 632 index 0;
+#X obj 65 202 outlet;
+#N canvas 161 314 333 632 index 0;
 #X obj 13 292 outlet;
 #X obj 208 142 r \$0-arrpoint;
 #X obj 13 62 inlet;
@@ -178,82 +146,87 @@ a escalonar tudo? talvez nao;
 #X obj 106 102 - 1;
 #X obj 13 202 * 0.01;
 #X obj 106 202 * 0.01;
-#X obj 13 222 pack f f;
-#X obj 136 332 unpack;
-#X obj 226 282 r \$0-arrpoint;
-#X obj 123 312 pointer;
-#X obj 123 452 t p p p p;
-#X obj 123 502 + 5;
-#X obj 153 572 + 5;
-#X obj 226 382 t p p;
-#X obj 179 372 - 2;
-#X obj 136 372 - 2;
-#X obj 123 262 pack;
-#X obj 136 352 * 1;
-#X obj 179 352 * 1;
-#X obj 123 282 t b l;
-#X text 185 256 read point;
+#X obj 156 332 unpack;
+#X obj 246 282 r \$0-arrpoint;
+#X obj 143 312 pointer;
+#X obj 143 452 t p p p p;
+#X obj 143 502 + 5;
+#X obj 173 572 + 5;
+#X obj 246 382 t p p;
+#X obj 199 372 - 2;
+#X obj 156 372 - 2;
+#X obj 143 262 pack;
+#X obj 156 352 * 1;
+#X obj 199 352 * 1;
+#X obj 143 282 t b l;
+#X text 205 256 read point;
 #X obj 53 32 inlet;
 #X text 94 31 update read point;
 #X obj 53 52 t b b b;
 #X obj 13 272 spigot 1;
-#X obj 68 252 0;
-#X obj 38 252 1;
+#X obj 88 242 0;
+#X obj 58 242 1;
 #X obj 13 102 f;
-#X obj 106 82 getsize bez-array bez-c-arr;
-#X obj 13 162 element bez-array bez-c-arr;
-#X obj 13 182 get bez-c x y;
-#X obj 137 402 set bez-array rpx;
-#X obj 136 422 set bez-array rpy;
-#X obj 123 482 get bez-array rpx;
-#X obj 133 522 set bez-array rpx.;
-#X obj 153 552 get bez-array rpy;
-#X obj 163 592 set bez-array rpy.;
-#X connect 1 0 31 1;
-#X connect 2 0 29 0;
-#X connect 3 0 30 0;
-#X connect 4 0 31 0;
+#X obj 106 82 getsize \$0-bez-array \$0-bez-c-arr;
+#X obj 13 162 element \$0-bez-array \$0-bez-c-arr;
+#X obj 13 182 get \$0-bez-c x y;
+#X obj 156 402 set \$0-bez-array rpx;
+#X obj 155 422 set \$0-bez-array rpy;
+#X obj 143 482 get \$0-bez-array rpx;
+#X obj 153 522 set \$0-bez-array rpx.;
+#X obj 173 552 get \$0-bez-array rpy;
+#X obj 183 592 set \$0-bez-array rpy.;
+#X obj 233 217 inlet;
+#X obj 53 342 outlet;
+#X obj 53 322 spigot 1;
+#X connect 1 0 30 1;
+#X connect 2 0 28 0;
+#X connect 3 0 29 0;
+#X connect 4 0 30 0;
 #X connect 5 0 4 4;
-#X connect 6 0 8 0;
-#X connect 7 0 8 1;
-#X connect 8 0 26 0;
-#X connect 9 0 19 0;
-#X connect 9 1 20 0;
+#X connect 6 0 25 0;
+#X connect 7 0 40 0;
+#X connect 8 0 18 0;
+#X connect 8 1 19 0;
+#X connect 9 0 10 0;
+#X connect 9 0 14 0;
 #X connect 10 0 11 0;
-#X connect 10 0 15 0;
-#X connect 11 0 12 0;
+#X connect 11 0 34 0;
+#X connect 11 1 35 1;
+#X connect 11 2 36 0;
+#X connect 11 3 37 1;
 #X connect 12 0 35 0;
-#X connect 12 1 36 1;
-#X connect 12 2 37 0;
-#X connect 12 3 38 1;
-#X connect 13 0 36 0;
-#X connect 14 0 38 0;
-#X connect 15 0 34 1;
-#X connect 15 1 33 1;
-#X connect 16 0 34 0;
-#X connect 17 0 33 0;
-#X connect 18 0 21 0;
-#X connect 19 0 17 0;
-#X connect 20 0 16 0;
-#X connect 21 0 11 0;
-#X connect 21 1 9 0;
-#X connect 23 0 25 0;
-#X connect 25 0 28 0;
-#X connect 25 1 29 0;
-#X connect 25 2 27 0;
-#X connect 26 0 0 0;
-#X connect 27 0 26 1;
-#X connect 28 0 26 1;
-#X connect 29 0 4 0;
-#X connect 30 0 5 0;
-#X connect 31 0 32 0;
-#X connect 32 0 6 0;
-#X connect 32 0 18 0;
-#X connect 32 1 7 0;
-#X connect 32 1 18 1;
-#X connect 35 0 13 0;
-#X connect 37 0 14 0;
-#X restore 55 162 pd index;
+#X connect 13 0 37 0;
+#X connect 14 0 33 1;
+#X connect 14 1 32 1;
+#X connect 15 0 33 0;
+#X connect 16 0 32 0;
+#X connect 17 0 20 0;
+#X connect 18 0 16 0;
+#X connect 19 0 15 0;
+#X connect 20 0 10 0;
+#X connect 20 1 8 0;
+#X connect 22 0 24 0;
+#X connect 24 0 27 0;
+#X connect 24 1 28 0;
+#X connect 24 2 26 0;
+#X connect 25 0 0 0;
+#X connect 26 0 25 1;
+#X connect 26 0 40 1;
+#X connect 27 0 25 1;
+#X connect 27 0 40 1;
+#X connect 28 0 4 0;
+#X connect 29 0 5 0;
+#X connect 30 0 31 0;
+#X connect 31 0 6 0;
+#X connect 31 0 17 0;
+#X connect 31 1 7 0;
+#X connect 31 1 17 1;
+#X connect 34 0 12 0;
+#X connect 36 0 13 0;
+#X connect 38 0 28 0;
+#X connect 40 0 39 0;
+#X restore 65 182 pd index;
 #N canvas 0 0 332 180 size 0;
 #X obj 18 17 inlet;
 #X obj 213 117 r \$0-arrpoint;
@@ -262,7 +235,7 @@ a escalonar tudo? talvez nao;
 #X obj 18 37 moses 2;
 #X msg 18 57 2;
 #X text 111 16 size \, wenigstens 2 Punkte;
-#X obj 18 137 setsize bez-array bez-c-arr;
+#X obj 18 137 setsize \$0-bez-array \$0-bez-c-arr;
 #X connect 0 0 4 0;
 #X connect 1 0 7 1;
 #X connect 3 0 7 0;
@@ -403,30 +376,30 @@ a escalonar tudo? talvez nao;
 #X connect 37 0 1 0;
 #X restore 52 546 pd convert-to-dump;
 #X obj 228 58 route p0 p1 p2 p3;
-#X obj 480 236 set bez-array p3x;
-#X obj 480 256 set bez-array p3y;
-#X obj 340 236 set bez-array p2x;
-#X obj 340 256 set bez-array p2y;
-#X obj 199 236 set bez-array p1x;
-#X obj 200 256 set bez-array p1y;
-#X obj 60 236 set bez-array p0x;
-#X obj 60 256 set bez-array p0y;
-#X obj 47 362 get bez-array p0x;
-#X obj 57 402 set bez-array p0x.;
-#X obj 77 432 get bez-array p0y;
-#X obj 87 472 set bez-array p0y.;
-#X obj 267 472 set bez-array p1y.;
-#X obj 257 432 get bez-array p1y;
-#X obj 237 402 set bez-array p1x.;
-#X obj 227 362 get bez-array p1x;
-#X obj 407 362 get bez-array p2x;
-#X obj 417 402 set bez-array p2x.;
-#X obj 437 433 get bez-array p2y;
-#X obj 447 472 set bez-array p2y.;
-#X obj 626 472 set bez-array p3y.;
-#X obj 616 432 get bez-array p3y;
-#X obj 596 402 set bez-array p3x.;
-#X obj 586 362 get bez-array p3x;
+#X obj 480 236 set \$0-bez-array p3x;
+#X obj 480 256 set \$0-bez-array p3y;
+#X obj 340 236 set \$0-bez-array p2x;
+#X obj 340 256 set \$0-bez-array p2y;
+#X obj 199 236 set \$0-bez-array p1x;
+#X obj 200 256 set \$0-bez-array p1y;
+#X obj 60 236 set \$0-bez-array p0x;
+#X obj 60 256 set \$0-bez-array p0y;
+#X obj 47 362 get \$0-bez-array p0x;
+#X obj 57 402 set \$0-bez-array p0x.;
+#X obj 77 432 get \$0-bez-array p0y;
+#X obj 87 472 set \$0-bez-array p0y.;
+#X obj 267 472 set \$0-bez-array p1y.;
+#X obj 257 432 get \$0-bez-array p1y;
+#X obj 237 402 set \$0-bez-array p1x.;
+#X obj 227 362 get \$0-bez-array p1x;
+#X obj 407 362 get \$0-bez-array p2x;
+#X obj 417 402 set \$0-bez-array p2x.;
+#X obj 437 433 get \$0-bez-array p2y;
+#X obj 447 472 set \$0-bez-array p2y.;
+#X obj 626 472 set \$0-bez-array p3y.;
+#X obj 616 432 get \$0-bez-array p3y;
+#X obj 596 402 set \$0-bez-array p3x.;
+#X obj 586 362 get \$0-bez-array p3x;
 #X connect 0 0 16 0;
 #X connect 1 0 43 0;
 #X connect 1 1 29 0;
@@ -530,8 +503,8 @@ a escalonar tudo? talvez nao;
 #X connect 71 0 21 0;
 #X restore 89 342 pd point-befehle;
 #X obj 182 362 outlet;
-#X obj 110 222 s \$0-dump;
-#X obj 110 202 0;
+#X obj 110 152 s \$0-dump;
+#X obj 110 132 0;
 #N canvas 0 0 450 300 size-init 0;
 #X obj 154 93 inlet;
 #X obj 154 133 sel 0;
@@ -545,7 +518,7 @@ a escalonar tudo? talvez nao;
 #X connect 2 0 1 0;
 #X connect 3 0 5 0;
 #X connect 5 0 4 0;
-#X restore 334 82 pd size-init;
+#X restore 334 72 pd size-init;
 #N canvas 0 0 450 300 create-init 0;
 #X obj 129 118 pointer;
 #X obj 129 78 symbol \$0-bezier-a;
@@ -554,7 +527,7 @@ a escalonar tudo? talvez nao;
 #X msg 129 98 traverse \$1 \, bang;
 #X obj 129 138 t b p;
 #X obj 129 58 inlet;
-#X obj 129 178 append bez-array x y;
+#X obj 129 178 append \$0-bez-array x y;
 #X connect 0 0 5 0;
 #X connect 1 0 4 0;
 #X connect 3 0 7 0;
@@ -563,7 +536,7 @@ a escalonar tudo? talvez nao;
 #X connect 5 1 7 2;
 #X connect 6 0 1 0;
 #X connect 7 0 2 0;
-#X restore 351 62 pd create-init;
+#X restore 351 52 pd create-init;
 #X obj 310 212 t f f;
 #X obj 310 232 pack;
 #X obj 300 152 route float list;
@@ -584,7 +557,6 @@ dann muss man nicht die Grafik clicken.;
 #X restore 20 252 pd get-pointer;
 #X obj 20 212 t b f;
 #X msg 89 312 p0 0 0 \, p1 0.1 0.6 \, p2 0.9 0.4 \, p3 1 1;
-#X obj 300 32 t b b b b;
 #N canvas 0 0 403 272 canvas-init 0;
 #X obj 68 104 sel 0;
 #X obj 68 124 110;
@@ -620,62 +592,61 @@ und vielleicht y zu ber
 #X restore 300 132 pd canvas-init;
 #X obj 300 172 moses 20;
 #X msg 300 192 20;
-#X obj 160 162 s \$0-read-point-view;
+#X obj 200 262 s \$0-read-point-view;
 #X obj 20 112 route size float dump canvas readpoint;
 #X obj 245 132 t b a;
 #X obj 300 12 lbang;
-#X obj 433 136 pointer;
-#X obj 433 96 symbol \$0-bezier-a;
-#X obj 433 156 s \$0-arrpoint;
-#X msg 433 116 traverse \$1 \, next \, bang;
-#X obj 469 63 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 377 24 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X text 330 357 ha demasiada accao a passar no patch \, optimizar;
-#X text 366 43 depois apagar?;
+#X obj 417 132 pointer;
+#X obj 417 92 symbol \$0-bezier-a;
+#X obj 417 152 s \$0-arrpoint;
+#X msg 417 112 traverse \$1 \, next \, bang;
+#X text 321 362 ha demasiada accao a passar no patch \, optimizar;
 #X text 323 386 botao para adicionar x curvas (p3 da anterior == p0
 da seguinte) \, criando uma mega-curva \; tornar tudo variavel \, nr
 pontos do array... \; ajustar tamanha dos pontos kr de acordo com o
 tamanho do display;
-#X connect 0 0 26 0;
-#X connect 3 0 4 0;
+#X obj 300 32 t b b b b;
+#X obj 20 342 t b b;
+#X obj 110 202 outlet;
+#X connect 0 0 25 0;
+#X connect 3 0 35 0;
 #X connect 6 0 5 0;
+#X connect 6 1 36 0;
 #X connect 8 0 4 1;
 #X connect 8 1 9 0;
 #X connect 11 0 10 0;
-#X connect 12 0 26 0;
+#X connect 12 0 25 0;
 #X connect 14 0 15 0;
 #X connect 14 1 15 1;
 #X connect 15 0 17 0;
-#X connect 16 0 23 0;
+#X connect 16 0 22 0;
 #X connect 16 1 17 0;
 #X connect 17 0 1 0;
 #X connect 19 0 18 0;
 #X connect 19 1 7 0;
 #X connect 20 0 8 0;
-#X connect 21 0 22 0;
-#X connect 21 1 20 0;
-#X connect 21 2 12 0;
-#X connect 21 3 30 0;
-#X connect 22 0 16 0;
-#X connect 23 0 24 0;
-#X connect 23 1 14 0;
-#X connect 24 0 14 0;
-#X connect 26 0 19 0;
-#X connect 26 1 6 0;
-#X connect 26 2 11 0;
-#X connect 26 3 16 0;
-#X connect 26 4 25 0;
-#X connect 26 5 27 0;
-#X connect 27 0 6 1;
-#X connect 27 1 8 0;
-#X connect 28 0 21 0;
+#X connect 21 0 16 0;
+#X connect 22 0 23 0;
+#X connect 22 1 14 0;
+#X connect 23 0 14 0;
+#X connect 25 0 19 0;
+#X connect 25 1 6 0;
+#X connect 25 2 11 0;
+#X connect 25 3 16 0;
+#X connect 25 4 24 0;
+#X connect 25 5 26 0;
+#X connect 26 0 6 1;
+#X connect 26 1 8 0;
+#X connect 27 0 34 0;
+#X connect 28 0 30 0;
 #X connect 29 0 31 0;
-#X connect 30 0 32 0;
-#X connect 32 0 29 0;
-#X connect 33 0 30 0;
-#X connect 34 0 13 0;
+#X connect 31 0 28 0;
+#X connect 34 0 21 0;
+#X connect 34 1 20 0;
+#X connect 34 2 12 0;
+#X connect 34 3 13 0;
+#X connect 35 0 4 0;
+#X connect 35 1 6 2;
 #X restore 217 30 pd inside;
 #X obj 287 10 namecanvas \$0-bezier-a;
 #X obj 217 50 outlet;
@@ -707,7 +678,9 @@ in the documentation and/or other materials provided with the distribution.
 #X text 8 7 Copyright 2010 \, João Pais;
 #X restore 11 721 pd license;
 #X text 8 703 (C) 2010 João Pais - jmmmpais@googlemail.com;
-#X connect 1 0 2 0;
-#X connect 2 0 4 0;
-#X connect 2 1 5 0;
+#X obj 242 70 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 1 1 7 0;
+#X connect 1 2 4 0;
 #X coords -20 120 120 -20 110 110 2 0 0;
diff --git a/abstractions/jmmmp/bezier~-help.pd b/abstractions/jmmmp/bezier~-help.pd
new file mode 100644
index 000000000..b6c60a25d
--- /dev/null
+++ b/abstractions/jmmmp/bezier~-help.pd
@@ -0,0 +1,146 @@
+#N struct 1118-bez-array float x float y array 1118-bez-c-arr 1118-bez-c
+float p0x float p0y float p0x. float p0y. float p1x float p1y float
+p1x. float p1y. float p2x float p2y float p2x. float p2y. float p3x
+float p3y float p3x. float p3y. float rpx float rpy float rpx. float
+rpy.;
+#N struct 1118-bez-c float x float y;
+#N struct 1113-bez-array float x float y array 1113-bez-c-arr 1113-bez-c
+float p0x float p0y float p0x. float p0y. float p1x float p1y float
+p1x. float p1y. float p2x float p2y float p2x. float p2y. float p3x
+float p3y float p3x. float p3y. float rpx float rpy float rpx. float
+rpy.;
+#N struct 1113-bez-c float x float y;
+#N canvas 88 5 921 704 10;
+#X floatatom 415 751 5 0 0 0 - - -;
+#X obj 418 737 hsl 50 10 0 1 0 0 empty empty empty -2 -8 0 10 -228856
+-1 -1 0 0;
+#X floatatom 135 205 5 0 0 0 - - -;
+#X msg 125 144 canvas \$1;
+#X floatatom 135 124 5 0 0 0 - - -;
+#X obj 415 717 line;
+#X msg 415 697 0 \, 1 3000;
+#X obj 135 514 pack;
+#X obj 145 494 t b f;
+#X msg 258 830 p0 0.25 0.34 \, p1 0.34 0.88 \, p2 0.9 0.4 \, p3 0.85
+0.73;
+#X text 543 94 Arguments;
+#X obj 148 467 hsl 50 10 0 1 0 0 empty empty X -16 6 0 12 -228856 -1
+-1 0 1;
+#X obj 148 481 hsl 50 10 0 1 0 0 empty empty Y -16 6 0 12 -228856 -1
+-1 0 1;
+#X obj 128 870 hsl 50 10 0 1 0 0 empty empty X -16 6 0 12 -228856 -1
+-1 0 1;
+#X obj 128 884 hsl 50 10 0 1 0 0 empty empty Y -16 6 0 12 -228856 -1
+-1 0 1;
+#X text 135 307 default values;
+#X text 135 347 also first and last points can take any value;
+#X text 222 164 Two values define x and y coordinates;
+#X text 131 275 p[0-3] \$1 \$2 - Control one handle point's coordinates
+between 0 and 1 Send either a message with all points...;
+#X text 115 90 canvas \$1 [\$2] - Change canvas size. One value creates
+a square ...;
+#X text 172 204 size \$1 - Define array size (minimum 2 points);
+#X text 260 799 Dump outlet: connect to a message box \, which you
+can later copy-paste.;
+#X text 545 173 If no arguments are given \, the default values are
+110 100 100 When no y argument is present \, a square with dimensions
+of x is created.;
+#X text 542 395 But \, even with the points outside of the box \, the
+calculations will still work. You only loose mouse control of the graphic
+handles.;
+#X obj 135 574 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 125 707 bezier~;
+#X text 165 634 dump - Dump the coordinates of the control points through
+the right outlet. Connect the outlet to a message box \, and it will
+get formatted.;
+#X text 541 475 Released under the BSD License;
+#X text 541 455 (C) 2010 João Pais - jmmmpais@googlemail.com;
+#X text 20 94 Object size:;
+#X text 20 204 Array size:;
+#X text 20 274 Control points:;
+#X text 20 574 Readpoint:;
+#X text 20 634 Dump parameters:;
+#X text 546 112 - Array size;
+#X text 546 132 - Canvas size x (+ y);
+#X text 546 152 - Canvas size y;
+#X text 543 224 Inlets;
+#X text 543 264 Outlets;
+#X text 546 282 - float pair with x / y values;
+#X text 546 302 - control point dump;
+#X text 153 564 readpoint \$1 - Turn readpoint (red) display on or
+off. Readpoint shows the curent place in the buffer.;
+#X text 22 39 Create a transfer function between 0 and 1 \, using the
+four control points of a cubic bézier curve.;
+#X text 546 242 - floats [0 to 1] / commands (with parameters);
+#X text 542 336 BUG ALERT: if the control points get out of the GOP
+box \, these won't react when you click on them. You'll have to right-click
+\, open \, and then inside the abstraction place the points again inside
+the red boundaries. Or send pX coordinates.;
+#X text 20 74 CONTROL OPTIONS;
+#X text 70 704 INPUT;
+#X text 70 864 OUTPUT;
+#X obj 415 771 s \$0-input;
+#X obj 135 687 r \$0-input;
+#X text 415 677 Send your input values between 0 and 1 here:;
+#X msg 125 327 p0 0 0 \, p1 0.1 0.6 \, p2 0.9 0.4 \, p3 1 1;
+#X msg 125 367 p0 0.25 0.34 \, p1 0.34 0.88 \, p2 0.9 0.4 \, p3 0.85
+0.73;
+#X msg 125 427 p0 0 0 \, p1 0.34 1.3 \, p2 1.4 0.4 \, p3 1 1;
+#X msg 125 534 p0 \$1 \$2;
+#X text 144 446 Or move the points separately:;
+#X msg 125 224 size \$1;
+#X msg 125 245 size 100;
+#X msg 125 164 canvas 300 100;
+#X text 135 387 values outside the 0-1 boundaries will be outside of
+the box - you won't be able to grab the graphic (see bug description)
+;
+#X msg 125 593 readpoint \$1;
+#X msg 125 634 dump;
+#X text 65 899 Outputs: scaled x and y values;
+#X obj 125 830 snaps~;
+#X obj 135 850 snaps~;
+#N canvas 176 128 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 12 35 KEYWORDS bezier data structures;
+#X text 12 135 VERSION 2010;
+#X text 12 165 INLET_0 - all instructions;
+#X text 12 5 DESCRIPTION Transfer function GUI with one cubic bézier
+curve at audio rate;
+#X text 12 225 OUTLET_2 - dump current parameters;
+#X text 12 185 OUTLET_0 - x values;
+#X text 12 205 OUTLET_1 - y values;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X restore 542 496 pd META;
+#X text 21 9 [bezier~] - Transfer function GUI with one cubic bézier
+curve at audio rate;
+#X connect 0 0 48 0;
+#X connect 1 0 0 0;
+#X connect 2 0 56 0;
+#X connect 3 0 25 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 54 0;
+#X connect 8 0 7 0;
+#X connect 8 1 7 1;
+#X connect 11 0 7 0;
+#X connect 12 0 8 0;
+#X connect 24 0 60 0;
+#X connect 25 0 63 0;
+#X connect 25 1 64 0;
+#X connect 25 2 9 0;
+#X connect 49 0 25 0;
+#X connect 51 0 25 0;
+#X connect 52 0 25 0;
+#X connect 53 0 25 0;
+#X connect 54 0 25 0;
+#X connect 56 0 25 0;
+#X connect 57 0 25 0;
+#X connect 58 0 25 0;
+#X connect 60 0 25 0;
+#X connect 61 0 25 0;
+#X connect 63 0 13 0;
+#X connect 64 0 14 0;
diff --git a/abstractions/jmmmp/bezier~.pd b/abstractions/jmmmp/bezier~.pd
new file mode 100644
index 000000000..913e236ad
--- /dev/null
+++ b/abstractions/jmmmp/bezier~.pd
@@ -0,0 +1,730 @@
+#N struct 1113-bez-array float x float y array 1113-bez-c-arr 1113-bez-c
+float p0x float p0y float p0x. float p0y. float p1x float p1y float
+p1x. float p1y. float p2x float p2y float p2x. float p2y. float p3x
+float p3y float p3x. float p3y. float rpx float rpy float rpx. float
+rpy.;
+#N struct 1113-bez-c float x float y;
+#N canvas 1 48 855 690 10;
+#X scalar 1113-bez-array 0 0 -2 -2 3 3 9.27273 60.5454 14.2727 65.5454
+88 38 93 43 98 98 103 103 98 98 103 103 \; 0 0 \; 0.298882 1.7916 \;
+0.63862 3.53436 \; 1.0184 5.22927 \; 1.43739 6.87734 \; 1.8948 8.47959
+\; 2.38979 10.037 \; 2.92155 11.5506 \; 3.48926 13.0214 \; 4.09211
+14.4504 \; 4.72927 15.8385 \; 5.39994 17.1869 \; 6.1033 18.4965 \;
+6.83852 19.7683 \; 7.60479 21.0033 \; 8.4013 22.2026 \; 9.22722 23.3671
+\; 10.0817 24.4978 \; 10.964 25.5958 \; 11.8733 26.662 \; 12.8087 27.6974
+\; 13.7695 28.7032 \; 14.7547 29.6802 \; 15.7637 30.6295 \; 16.7955
+31.552 \; 17.8494 32.4488 \; 18.9246 33.321 \; 20.0202 34.1694 \; 21.1353
+34.9951 \; 22.2693 35.7992 \; 23.4213 36.5825 \; 24.5904 37.3462 \;
+25.7759 38.0912 \; 26.9768 38.8185 \; 28.1925 39.5292 \; 29.4221 40.2242
+\; 30.6648 40.9046 \; 31.9197 41.5713 \; 33.1861 42.2254 \; 34.463
+42.8678 \; 35.7498 43.4996 \; 37.0456 44.1218 \; 38.3495 44.7354 \;
+39.6609 45.3414 \; 40.9787 45.9407 \; 42.3022 46.5345 \; 43.6307 47.1237
+\; 44.9633 47.7092 \; 46.2991 48.2922 \; 47.6374 48.8737 \; 48.9773
+49.4545 \; 50.318 50.0358 \; 51.6587 50.6186 \; 52.9986 51.2037 \;
+54.3369 51.7924 \; 55.6728 52.3855 \; 57.0053 52.9841 \; 58.3338 53.5891
+\; 59.6574 54.2016 \; 60.9752 54.8226 \; 62.2865 55.4531 \; 63.5905
+56.0941 \; 64.8863 56.7465 \; 66.1731 57.4115 \; 67.4501 58.09 \; 68.7165
+58.783 \; 69.9715 59.4916 \; 71.2142 60.2166 \; 72.4438 60.9592 \;
+73.6595 61.7204 \; 74.8605 62.5011 \; 76.0461 63.3023 \; 77.2152 64.1251
+\; 78.3672 64.9705 \; 79.5013 65.8394 \; 80.6165 66.733 \; 81.7121
+67.652 \; 82.7873 68.5977 \; 83.8413 69.571 \; 84.8732 70.5729 \; 85.8822
+71.6044 \; 86.8675 72.6665 \; 87.8283 73.7602 \; 88.7638 74.8865 \;
+89.6731 76.0464 \; 90.5555 77.241 \; 91.4101 78.4713 \; 92.2361 79.7381
+\; 93.0327 81.0427 \; 93.7991 82.3859 \; 94.5344 83.7687 \; 95.2378
+85.1922 \; 95.9086 86.6574 \; 96.5458 88.1653 \; 97.1488 89.7169 \;
+97.7166 91.3131 \; 98.2484 92.9551 \; 98.7435 94.6437 \; 99.201 96.3801
+\; 100 100 \; \;;
+#X obj 217 10 inlet;
+#N canvas 627 482 718 464 inside 0;
+#X obj 20 82 inlet;
+#X obj 346 282 s \$0-bezier-a;
+#N canvas 0 0 450 300 element 0;
+#X obj 52 46 struct \$0-bez-c float x float y;
+#X restore 20 302 pd element;
+#N canvas 665 149 542 409 array 0;
+#X obj 11 87 route change click;
+#X obj 31 121 unpack p f;
+#X obj 31 141 t b p;
+#X obj 31 201 outlet;
+#X obj 58 161 s \$0-arrpoint;
+#X obj 31 181 speedlim 150;
+#X obj 166 141 drawpolygon 0 1 0 0 0 100 100 100 100 0 0 0;
+#X text 14 233 4 control points \, 2 extremos nao saem da caixa. fronteiras
+desfazadas em 2pt \, para desenhar o quadrado;
+#X obj 11 333 filledpolygon 0 0 1 p2x p2y p2x. p2y p2x. p2y. p2x p2y.
+p2x p2y;
+#X obj 11 300 filledpolygon 0 0 1 p1x p1y p1x. p1y p1x. p1y. p1x p1y.
+p1x p1y;
+#X obj 11 267 filledpolygon 0 0 1 p0x(-2:98)(-2:98) p0y(-2:98)(-2:98)
+p0x. p0y p0x. p0y. p0x p0y. p0x p0y;
+#X obj 11 366 filledpolygon 0 0 1 p3x(-2:98)(-2:98) p3y(-2:98)(-2:98)
+p3x. p3y p3x. p3y. p3x p3y. p3x p3y;
+#X obj 166 171 r \$0-read-point-view;
+#X text 297 171 read point;
+#X obj 11 15 struct \$0-bez-array float x float y array \$0-bez-c-arr
+\$0-bez-c float p0x float p0y float p0x. float p0y. float p1x float
+p1y float p1x. float p1y. float p2x float p2y float p2x. float p2y.
+float p3x float p3y float p3x. float p3y. float rpx float rpy float
+rpx. float rpy.;
+#X obj 166 111 plot \$0-bez-c-arr 9 2 0 0;
+#X obj 166 191 filledpolygon 900 900 1 rpx rpy rpx. rpy rpx. rpy. rpx
+rpy. rpx rpy;
+#X connect 0 0 1 0;
+#X connect 0 1 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
+#X connect 2 1 4 0;
+#X connect 5 0 3 0;
+#X connect 12 0 16 0;
+#X connect 14 0 0 0;
+#X restore 20 322 pd array;
+#N canvas 257 223 482 660 calculate 0;
+#X obj 27 42 inlet;
+#X obj 27 202 until;
+#X obj 27 222 f+ 0;
+#X obj 27 352 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1
+\, 2) + (3*$f3-3*$f2)*$f1 + $f2;
+#X obj 46 425 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1
+\, 2) + (3*$f3-3*$f2)*$f1 + $f2;
+#X obj 27 332 pack f f f f f;
+#X obj 46 405 pack f f f f f;
+#X obj 228 468 r \$0-arrpoint;
+#X obj 108 518 t p p;
+#X obj 27 242 t f f f;
+#X text 142 11 array com 100 pontos. fazer 200? \; e necessario estar
+a escalonar tudo? talvez nao;
+#X obj 27 72 t b b;
+#X obj 77 32 inlet;
+#X obj 141 80 r \$0-arrpoint;
+#X obj 141 150 pointer;
+#X obj 77 52 t b b;
+#X obj 141 270 + 2;
+#X obj 171 270 + 2;
+#X obj 311 270 + 2;
+#X obj 341 270 + 2;
+#X obj 47 102 r \$0-size;
+#X obj 42 162 + 1;
+#X obj 27 182 f;
+#X obj 86 242 inv;
+#X obj 47 122 t b f f;
+#X obj 27 272 *;
+#X obj 46 292 *;
+#X obj 141 190 get \$0-bez-array p0x;
+#X obj 151 210 get \$0-bez-array p1x;
+#X obj 161 230 get \$0-bez-array p2x;
+#X obj 171 250 get \$0-bez-array p3x;
+#X obj 311 190 get \$0-bez-array p0y;
+#X obj 320 210 get \$0-bez-array p1y;
+#X obj 331 230 get \$0-bez-array p2y;
+#X obj 341 250 get \$0-bez-array p3y;
+#X obj 108 498 element \$0-bez-array \$0-bez-c-arr;
+#X obj 27 538 set \$0-bez-c x;
+#X obj 46 558 set \$0-bez-c y;
+#X connect 0 0 11 0;
+#X connect 1 0 2 0;
+#X connect 2 0 9 0;
+#X connect 3 0 36 0;
+#X connect 4 0 37 0;
+#X connect 5 0 3 0;
+#X connect 6 0 4 0;
+#X connect 7 0 35 1;
+#X connect 8 0 36 1;
+#X connect 8 1 37 1;
+#X connect 9 0 25 0;
+#X connect 9 1 26 0;
+#X connect 9 2 35 0;
+#X connect 11 0 22 0;
+#X connect 11 1 2 1;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 27 0;
+#X connect 14 0 28 0;
+#X connect 14 0 29 0;
+#X connect 14 0 30 0;
+#X connect 14 0 31 0;
+#X connect 14 0 32 0;
+#X connect 14 0 33 0;
+#X connect 14 0 34 0;
+#X connect 15 0 11 0;
+#X connect 15 1 14 0;
+#X connect 16 0 5 1;
+#X connect 17 0 5 4;
+#X connect 18 0 6 1;
+#X connect 19 0 6 4;
+#X connect 20 0 24 0;
+#X connect 21 0 22 1;
+#X connect 22 0 1 0;
+#X connect 23 0 25 1;
+#X connect 23 0 26 1;
+#X connect 24 0 11 0;
+#X connect 24 1 21 0;
+#X connect 24 2 23 0;
+#X connect 25 0 5 0;
+#X connect 26 0 6 0;
+#X connect 27 0 16 0;
+#X connect 28 0 5 2;
+#X connect 29 0 5 3;
+#X connect 30 0 17 0;
+#X connect 31 0 18 0;
+#X connect 32 0 6 2;
+#X connect 33 0 6 3;
+#X connect 34 0 19 0;
+#X connect 35 0 8 0;
+#X restore 20 362 pd calculate;
+#N canvas 159 106 333 632 index 0;
+#X obj 208 142 r \$0-arrpoint;
+#X obj 13 62 inlet;
+#X obj 106 62 r \$0-arrpoint;
+#X obj 106 102 - 1;
+#X obj 13 202 * 0.01;
+#X obj 106 202 * 0.01;
+#X obj 156 332 unpack;
+#X obj 246 282 r \$0-arrpoint;
+#X obj 143 312 pointer;
+#X obj 143 452 t p p p p;
+#X obj 143 502 + 5;
+#X obj 173 572 + 5;
+#X obj 246 382 t p p;
+#X obj 199 372 - 2;
+#X obj 156 372 - 2;
+#X obj 143 262 pack;
+#X obj 156 352 * 1;
+#X obj 199 352 * 1;
+#X obj 143 282 t b l;
+#X text 205 256 read point;
+#X obj 53 32 inlet;
+#X text 94 31 update read point;
+#X obj 53 52 t b b b;
+#X obj 13 282 spigot 1;
+#X obj 88 242 0;
+#X obj 58 242 1;
+#X obj 13 102 f;
+#X obj 106 82 getsize \$0-bez-array \$0-bez-c-arr;
+#X obj 13 162 element \$0-bez-array \$0-bez-c-arr;
+#X obj 13 182 get \$0-bez-c x y;
+#X obj 156 402 set \$0-bez-array rpx;
+#X obj 155 422 set \$0-bez-array rpy;
+#X obj 143 482 get \$0-bez-array rpx;
+#X obj 153 522 set \$0-bez-array rpx.;
+#X obj 173 552 get \$0-bez-array rpy;
+#X obj 183 592 set \$0-bez-array rpy.;
+#X obj 233 217 inlet;
+#X obj 73 282 spigot 1;
+#X obj 13 332 line~;
+#X obj 13 352 outlet~;
+#X obj 73 332 line~;
+#X obj 73 352 outlet~;
+#X msg 13 312 \$1 5;
+#X msg 73 312 \$1 5;
+#X obj 13 122 expr (($f1 - $f2) * (($f5 - $f4) / (1 - $f2))) + $f4
+;
+#X connect 0 0 28 1;
+#X connect 1 0 26 0;
+#X connect 2 0 27 0;
+#X connect 3 0 44 4;
+#X connect 4 0 23 0;
+#X connect 5 0 37 0;
+#X connect 6 0 16 0;
+#X connect 6 1 17 0;
+#X connect 7 0 8 0;
+#X connect 7 0 12 0;
+#X connect 8 0 9 0;
+#X connect 9 0 32 0;
+#X connect 9 1 33 1;
+#X connect 9 2 34 0;
+#X connect 9 3 35 1;
+#X connect 10 0 33 0;
+#X connect 11 0 35 0;
+#X connect 12 0 31 1;
+#X connect 12 1 30 1;
+#X connect 13 0 31 0;
+#X connect 14 0 30 0;
+#X connect 15 0 18 0;
+#X connect 16 0 14 0;
+#X connect 17 0 13 0;
+#X connect 18 0 8 0;
+#X connect 18 1 6 0;
+#X connect 20 0 22 0;
+#X connect 22 0 25 0;
+#X connect 22 1 26 0;
+#X connect 22 2 24 0;
+#X connect 23 0 42 0;
+#X connect 24 0 23 1;
+#X connect 24 0 37 1;
+#X connect 25 0 23 1;
+#X connect 25 0 37 1;
+#X connect 26 0 44 0;
+#X connect 27 0 3 0;
+#X connect 28 0 29 0;
+#X connect 29 0 4 0;
+#X connect 29 0 15 0;
+#X connect 29 1 5 0;
+#X connect 29 1 15 1;
+#X connect 32 0 10 0;
+#X connect 34 0 11 0;
+#X connect 36 0 26 0;
+#X connect 37 0 43 0;
+#X connect 38 0 39 0;
+#X connect 40 0 41 0;
+#X connect 42 0 38 0;
+#X connect 43 0 40 0;
+#X connect 44 0 28 0;
+#X restore 65 182 pd index;
+#N canvas 0 0 332 180 size 0;
+#X obj 18 17 inlet;
+#X obj 213 117 r \$0-arrpoint;
+#X obj 57 77 s \$0-size;
+#X obj 18 117 r \$0-size;
+#X obj 18 37 moses 2;
+#X msg 18 57 2;
+#X text 111 16 size \, wenigstens 2 Punkte;
+#X obj 18 137 setsize \$0-bez-array \$0-bez-c-arr;
+#X connect 0 0 4 0;
+#X connect 1 0 7 1;
+#X connect 3 0 7 0;
+#X connect 4 0 5 0;
+#X connect 4 1 2 0;
+#X connect 5 0 2 0;
+#X restore 47 232 pd size;
+#N canvas 498 34 773 605 point-befehle 0;
+#X obj 189 18 inlet;
+#X obj 60 166 unpack;
+#X obj 150 86 r \$0-arrpoint;
+#X obj 150 116 t p p p p;
+#X obj 47 116 pointer;
+#X obj 47 332 t p p p p;
+#X obj 47 292 t p p p p;
+#X obj 227 332 t p p p p;
+#X obj 407 332 t p p p p;
+#X obj 586 332 t p p p p;
+#X obj 47 382 + 5;
+#X obj 77 452 + 5;
+#X obj 200 166 unpack;
+#X obj 340 166 unpack;
+#X obj 480 166 unpack;
+#X obj 23 82 outlet;
+#X obj 189 38 t b b a;
+#X obj 227 382 + 5;
+#X obj 257 452 + 5;
+#X obj 437 452 + 5;
+#X obj 407 382 + 5;
+#X obj 586 382 + 5;
+#X obj 616 452 + 5;
+#X obj 150 216 t p p;
+#X obj 291 216 t p p;
+#X obj 430 216 t p p;
+#X obj 570 216 t p p;
+#X obj 52 566 outlet;
+#X obj 243 186 * 100;
+#X obj 103 186 * 100;
+#X obj 383 186 * 100;
+#X obj 523 186 * 100;
+#X obj 523 206 - 2;
+#X obj 383 206 - 2;
+#X obj 243 206 - 2;
+#X obj 103 206 - 2;
+#X obj 60 206 - 2;
+#X obj 200 206 - 2;
+#X obj 340 206 - 2;
+#X obj 480 206 - 2;
+#X obj 480 186 * 100;
+#X obj 340 186 * 100;
+#X obj 200 186 * 100;
+#X obj 60 186 * 100;
+#X obj 491 61 r \$0-size;
+#X obj 52 516 r \$0-dump;
+#N canvas 118 276 501 312 convert-to-dump 0;
+#X obj 81 57 inlet;
+#X obj 116 230 outlet;
+#X obj 81 97 - 5;
+#X obj 81 117 * 0.01;
+#X obj 81 77 + 2;
+#X obj 131 57 inlet;
+#X obj 131 97 - 5;
+#X obj 131 117 * 0.01;
+#X obj 131 77 + 2;
+#X obj 171 17 r \$0-size;
+#X obj 171 37 inv;
+#X obj 31 117 inlet;
+#X obj 117 157 pack f f f f f f f f f;
+#X obj 181 57 inlet;
+#X obj 181 97 - 5;
+#X obj 181 117 * 0.01;
+#X obj 181 77 + 2;
+#X obj 231 57 inlet;
+#X obj 231 97 - 5;
+#X obj 231 117 * 0.01;
+#X obj 231 77 + 2;
+#X obj 281 57 inlet;
+#X obj 281 97 - 5;
+#X obj 281 117 * 0.01;
+#X obj 281 77 + 2;
+#X obj 331 57 inlet;
+#X obj 331 97 - 5;
+#X obj 331 117 * 0.01;
+#X obj 331 77 + 2;
+#X obj 381 57 inlet;
+#X obj 381 97 - 5;
+#X obj 381 117 * 0.01;
+#X obj 381 77 + 2;
+#X obj 431 57 inlet;
+#X obj 431 97 - 5;
+#X obj 431 117 * 0.01;
+#X obj 431 77 + 2;
+#X msg 116 177 set \, add2 p0 \$2 \$3 \, addcomma \, add2 p1 \$4 \$5
+\, addcomma \, add2 p2 \$6 \$7 \, addcomma \, add2 p3 \$8 \$9;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 12 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 12 2;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 7 1;
+#X connect 10 0 3 1;
+#X connect 10 0 15 1;
+#X connect 10 0 19 1;
+#X connect 10 0 23 1;
+#X connect 10 0 27 1;
+#X connect 10 0 31 1;
+#X connect 10 0 35 1;
+#X connect 11 0 12 0;
+#X connect 12 0 37 0;
+#X connect 13 0 16 0;
+#X connect 14 0 15 0;
+#X connect 15 0 12 3;
+#X connect 16 0 14 0;
+#X connect 17 0 20 0;
+#X connect 18 0 19 0;
+#X connect 19 0 12 4;
+#X connect 20 0 18 0;
+#X connect 21 0 24 0;
+#X connect 22 0 23 0;
+#X connect 23 0 12 5;
+#X connect 24 0 22 0;
+#X connect 25 0 28 0;
+#X connect 26 0 27 0;
+#X connect 27 0 12 6;
+#X connect 28 0 26 0;
+#X connect 29 0 32 0;
+#X connect 30 0 31 0;
+#X connect 31 0 12 7;
+#X connect 32 0 30 0;
+#X connect 33 0 36 0;
+#X connect 34 0 35 0;
+#X connect 35 0 12 8;
+#X connect 36 0 34 0;
+#X connect 37 0 1 0;
+#X restore 52 546 pd convert-to-dump;
+#X obj 228 58 route p0 p1 p2 p3;
+#X obj 480 236 set \$0-bez-array p3x;
+#X obj 480 256 set \$0-bez-array p3y;
+#X obj 340 236 set \$0-bez-array p2x;
+#X obj 340 256 set \$0-bez-array p2y;
+#X obj 199 236 set \$0-bez-array p1x;
+#X obj 200 256 set \$0-bez-array p1y;
+#X obj 60 236 set \$0-bez-array p0x;
+#X obj 60 256 set \$0-bez-array p0y;
+#X obj 47 362 get \$0-bez-array p0x;
+#X obj 57 402 set \$0-bez-array p0x.;
+#X obj 77 432 get \$0-bez-array p0y;
+#X obj 87 472 set \$0-bez-array p0y.;
+#X obj 267 472 set \$0-bez-array p1y.;
+#X obj 257 432 get \$0-bez-array p1y;
+#X obj 237 402 set \$0-bez-array p1x.;
+#X obj 227 362 get \$0-bez-array p1x;
+#X obj 407 362 get \$0-bez-array p2x;
+#X obj 417 402 set \$0-bez-array p2x.;
+#X obj 437 433 get \$0-bez-array p2y;
+#X obj 447 472 set \$0-bez-array p2y.;
+#X obj 626 472 set \$0-bez-array p3y.;
+#X obj 616 432 get \$0-bez-array p3y;
+#X obj 596 402 set \$0-bez-array p3x.;
+#X obj 586 362 get \$0-bez-array p3x;
+#X connect 0 0 16 0;
+#X connect 1 0 43 0;
+#X connect 1 1 29 0;
+#X connect 2 0 3 0;
+#X connect 2 0 4 0;
+#X connect 3 0 23 0;
+#X connect 3 1 24 0;
+#X connect 3 2 25 0;
+#X connect 3 3 26 0;
+#X connect 4 0 6 0;
+#X connect 5 0 56 0;
+#X connect 5 1 57 1;
+#X connect 5 2 58 0;
+#X connect 5 3 59 1;
+#X connect 6 0 5 0;
+#X connect 6 1 7 0;
+#X connect 6 2 8 0;
+#X connect 6 3 9 0;
+#X connect 7 0 63 0;
+#X connect 7 1 62 1;
+#X connect 7 2 61 0;
+#X connect 7 3 60 1;
+#X connect 8 0 64 0;
+#X connect 8 1 65 1;
+#X connect 8 2 66 0;
+#X connect 8 3 67 1;
+#X connect 9 0 71 0;
+#X connect 9 1 70 1;
+#X connect 9 2 69 0;
+#X connect 9 3 68 1;
+#X connect 10 0 46 1;
+#X connect 10 0 57 0;
+#X connect 11 0 46 2;
+#X connect 11 0 59 0;
+#X connect 12 0 42 0;
+#X connect 12 1 28 0;
+#X connect 13 0 41 0;
+#X connect 13 1 30 0;
+#X connect 14 0 40 0;
+#X connect 14 1 31 0;
+#X connect 16 0 15 0;
+#X connect 16 1 4 0;
+#X connect 16 2 47 0;
+#X connect 17 0 46 3;
+#X connect 17 0 62 0;
+#X connect 18 0 46 4;
+#X connect 18 0 60 0;
+#X connect 19 0 46 6;
+#X connect 19 0 67 0;
+#X connect 20 0 46 5;
+#X connect 20 0 65 0;
+#X connect 21 0 46 7;
+#X connect 21 0 70 0;
+#X connect 22 0 46 8;
+#X connect 22 0 68 0;
+#X connect 23 0 55 1;
+#X connect 23 1 54 1;
+#X connect 24 0 53 1;
+#X connect 24 1 52 1;
+#X connect 25 0 51 1;
+#X connect 25 1 50 1;
+#X connect 26 0 49 1;
+#X connect 26 1 48 1;
+#X connect 28 0 34 0;
+#X connect 29 0 35 0;
+#X connect 30 0 33 0;
+#X connect 31 0 32 0;
+#X connect 32 0 49 0;
+#X connect 33 0 51 0;
+#X connect 34 0 53 0;
+#X connect 35 0 55 0;
+#X connect 36 0 54 0;
+#X connect 37 0 52 0;
+#X connect 38 0 50 0;
+#X connect 39 0 48 0;
+#X connect 40 0 39 0;
+#X connect 41 0 38 0;
+#X connect 42 0 37 0;
+#X connect 43 0 36 0;
+#X connect 44 0 31 1;
+#X connect 44 0 40 1;
+#X connect 44 0 30 1;
+#X connect 44 0 41 1;
+#X connect 44 0 28 1;
+#X connect 44 0 42 1;
+#X connect 44 0 29 1;
+#X connect 44 0 43 1;
+#X connect 45 0 46 0;
+#X connect 46 0 27 0;
+#X connect 47 0 1 0;
+#X connect 47 1 12 0;
+#X connect 47 2 13 0;
+#X connect 47 3 14 0;
+#X connect 56 0 10 0;
+#X connect 58 0 11 0;
+#X connect 61 0 18 0;
+#X connect 63 0 17 0;
+#X connect 64 0 20 0;
+#X connect 66 0 19 0;
+#X connect 69 0 22 0;
+#X connect 71 0 21 0;
+#X restore 89 342 pd point-befehle;
+#X obj 182 362 outlet;
+#X obj 110 152 s \$0-dump;
+#X obj 110 132 0;
+#N canvas 0 0 450 300 size-init 0;
+#X obj 154 93 inlet;
+#X obj 154 133 sel 0;
+#X obj 154 113 \$1;
+#X obj 154 153 100;
+#X obj 154 203 outlet;
+#X msg 154 183 size \$1;
+#X connect 0 0 2 0;
+#X connect 1 0 3 0;
+#X connect 1 1 5 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 5 0 4 0;
+#X restore 334 72 pd size-init;
+#N canvas 0 0 450 300 create-init 0;
+#X obj 129 118 pointer;
+#X obj 129 78 symbol \$0-bezier-a;
+#X obj 129 198 s \$0-arrpoint;
+#X msg 129 158 0 0;
+#X msg 129 98 traverse \$1 \, bang;
+#X obj 129 138 t b p;
+#X obj 129 58 inlet;
+#X obj 129 178 append \$0-bez-array x y;
+#X connect 0 0 5 0;
+#X connect 1 0 4 0;
+#X connect 3 0 7 0;
+#X connect 4 0 0 0;
+#X connect 5 0 3 0;
+#X connect 5 1 7 2;
+#X connect 6 0 1 0;
+#X connect 7 0 2 0;
+#X restore 351 52 pd create-init;
+#X obj 310 212 t f f;
+#X obj 310 232 pack;
+#X obj 300 152 route float list;
+#X msg 346 262 donecanvasdialog 1 -1 2 -20 120 120 -20 \$1 \$2 0 0
+\, dirty 0;
+#N canvas 0 0 390 188 get-pointer 0;
+#X obj 39 82 pointer;
+#X obj 39 42 symbol \$0-bezier-a;
+#X obj 39 102 s \$0-arrpoint;
+#X msg 39 62 traverse \$1 \, next \, bang;
+#X obj 39 22 inlet;
+#X text 27 128 extra Schaltung um das Pointer in Focus zu bekommen.
+dann muss man nicht die Grafik clicken.;
+#X connect 0 0 2 0;
+#X connect 1 0 3 0;
+#X connect 3 0 0 0;
+#X connect 4 0 1 0;
+#X restore 20 252 pd get-pointer;
+#X obj 20 212 t b f;
+#X msg 89 312 p0 0 0 \, p1 0.1 0.6 \, p2 0.9 0.4 \, p3 1 1;
+#N canvas 0 0 403 272 canvas-init 0;
+#X obj 68 104 sel 0;
+#X obj 68 124 110;
+#X obj 18 64 t b b;
+#X obj 18 124 sel 0;
+#X obj 73 194 pack;
+#X msg 73 214 \$2 \$1;
+#X obj 68 84 \$2;
+#X obj 18 104 \$3;
+#X obj 115 164 f;
+#X obj 88 144 t f f;
+#X obj 73 164 f;
+#X obj 18 44 inlet;
+#X obj 73 234 outlet;
+#X text 21 8 canvas init (etwa komplex \, um die Anwesenheit von x
+und vielleicht y zu berücksichtigen);
+#X connect 0 0 1 0;
+#X connect 0 1 9 0;
+#X connect 1 0 9 0;
+#X connect 2 0 7 0;
+#X connect 2 1 6 0;
+#X connect 3 0 10 0;
+#X connect 3 1 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 12 0;
+#X connect 6 0 0 0;
+#X connect 7 0 3 0;
+#X connect 8 0 4 1;
+#X connect 9 0 10 1;
+#X connect 9 1 8 0;
+#X connect 10 0 4 0;
+#X connect 11 0 2 0;
+#X restore 300 132 pd canvas-init;
+#X obj 300 172 moses 20;
+#X msg 300 192 20;
+#X obj 200 262 s \$0-read-point-view;
+#X obj 20 112 route size float dump canvas readpoint;
+#X obj 245 132 t b a;
+#X obj 300 12 lbang;
+#X obj 417 132 pointer;
+#X obj 417 92 symbol \$0-bezier-a;
+#X obj 417 152 s \$0-arrpoint;
+#X msg 417 112 traverse \$1 \, next \, bang;
+#X text 321 362 ha demasiada accao a passar no patch \, optimizar;
+#X text 323 386 botao para adicionar x curvas (p3 da anterior == p0
+da seguinte) \, criando uma mega-curva \; tornar tudo variavel \, nr
+pontos do array... \; ajustar tamanha dos pontos kr de acordo com o
+tamanho do display;
+#X obj 300 32 t b b b b;
+#X obj 20 342 t b b;
+#X obj 65 202 outlet~;
+#X obj 120 202 outlet~;
+#X connect 0 0 24 0;
+#X connect 3 0 34 0;
+#X connect 5 0 35 0;
+#X connect 5 1 36 0;
+#X connect 7 0 4 1;
+#X connect 7 1 8 0;
+#X connect 10 0 9 0;
+#X connect 11 0 24 0;
+#X connect 13 0 14 0;
+#X connect 13 1 14 1;
+#X connect 14 0 16 0;
+#X connect 15 0 21 0;
+#X connect 15 1 16 0;
+#X connect 16 0 1 0;
+#X connect 18 0 17 0;
+#X connect 18 1 6 0;
+#X connect 19 0 7 0;
+#X connect 20 0 15 0;
+#X connect 21 0 22 0;
+#X connect 21 1 13 0;
+#X connect 22 0 13 0;
+#X connect 24 0 18 0;
+#X connect 24 1 5 0;
+#X connect 24 2 10 0;
+#X connect 24 3 15 0;
+#X connect 24 4 23 0;
+#X connect 24 5 25 0;
+#X connect 25 0 5 1;
+#X connect 25 1 7 0;
+#X connect 26 0 33 0;
+#X connect 27 0 29 0;
+#X connect 28 0 30 0;
+#X connect 30 0 27 0;
+#X connect 33 0 20 0;
+#X connect 33 1 19 0;
+#X connect 33 2 11 0;
+#X connect 33 3 12 0;
+#X connect 34 0 4 0;
+#X connect 34 1 5 2;
+#X restore 217 30 pd inside;
+#X obj 287 10 namecanvas \$0-bezier-a;
+#X obj 268 50 outlet;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2010 \, João Pais;
+#X restore 11 721 pd license;
+#X obj 217 50 outlet~;
+#X obj 242 70 outlet~;
+#X text 8 703 (C) 2011 João Pais - jmmmpais@googlemail.com;
+#X connect 1 0 2 0;
+#X connect 2 0 6 0;
+#X connect 2 1 7 0;
+#X connect 2 2 4 0;
+#X coords -20 120 120 -20 110 110 2 0 0;
diff --git a/abstractions/jmmmp/but-help.pd b/abstractions/jmmmp/but-help.pd
index 4c1ada804..d79051055 100644
--- a/abstractions/jmmmp/but-help.pd
+++ b/abstractions/jmmmp/but-help.pd
@@ -1,4 +1,4 @@
-#N struct 1431-color float x float y float farbe float ynpos;
+#N struct 1036-color float x float y float farbe float ynpos;
 #N canvas 188 69 399 419 10;
 #X text 12 387 Released under the BSD License;
 #X text 198 160 Inlets;
@@ -27,6 +27,17 @@ serves only to have a different graphic presentation.;
 #X text 12 288 Unfortunately \, until Pd gets a "clean" flag \, everytime
 you use this abstraction you'll be asked to save the patch (which you
 can if you want).;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 5 DESCRIPTION Monochrome Bang Button;
+#X text 12 35 KEYWORDS bang GOP;
+#X text 12 165 INLET_0 - bang;
+#X text 12 185 OUTLET_0 - bang;
+#X text 12 135 VERSION 2008;
+#X restore 342 386 pd META;
 #X connect 8 0 9 0;
 #X connect 12 0 9 0;
 #X connect 13 0 9 0;
diff --git a/abstractions/jmmmp/butt-help.pd b/abstractions/jmmmp/butt-help.pd
index 29a1f2d2b..adb1f467f 100644
--- a/abstractions/jmmmp/butt-help.pd
+++ b/abstractions/jmmmp/butt-help.pd
@@ -1,4 +1,4 @@
-#N struct 1431-color float x float y float farbe float ynpos;
+#N struct 1036-color float x float y float farbe float ynpos;
 #N canvas 188 69 481 385 10;
 #X text 12 357 Released under the BSD License;
 #X text 198 160 Inlets;
@@ -24,6 +24,17 @@ to have a different graphic presentation.;
 #X text 198 240 - 0 \, 1 (like a toggle);
 #X obj 22 122 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
 1;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 5 DESCRIPTION Color-changing Toggle Button;
+#X text 12 35 KEYWORDS toggle GOP;
+#X text 12 135 VERSION 2010;
+#X text 12 165 INLET_0 - bang or float;
+#X text 12 185 OUTLET_0 - 0 or 1;
+#X restore 422 356 pd META;
 #X connect 6 0 4 0;
 #X connect 7 0 4 0;
 #X connect 8 0 4 0;
diff --git a/abstractions/jmmmp/clock-help.pd b/abstractions/jmmmp/clock-help.pd
index 37063bc36..907cd8c6b 100644
--- a/abstractions/jmmmp/clock-help.pd
+++ b/abstractions/jmmmp/clock-help.pd
@@ -19,11 +19,27 @@
 #X text 46 78 On / Off;
 #X text 104 136 <- On / Off;
 #X text 104 146 <- Reset to 0;
-#X text 64 169 Seconds;
+#X text 26 189 Seconds;
 #X text 260 140 - Second count (Float);
 #X text 12 247 Related objects: [stoppuhr] [uhr];
-#X text 260 159 - GUI output;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 5 DESCRIPTION Chronometer with display in seconds;
+#X text 12 135 VERSION 2006;
+#X text 12 35 KEYWORDS chronometer time;
+#X text 12 165 INLET_0 - 0/1 - on/off;
+#X text 12 205 OUTLET_0 - Second count (Float);
+#X text 12 225 OUTLET_1 - GUI output (Symbol);
+#X text 12 185 INLET_1 - set + reset;
+#X restore 362 296 pd META;
+#X symbolatom 92 170 10 0 0 0 - - -;
+#X text 91 189 GUI output;
+#X text 260 159 - GUI output (Symbol);
 #X connect 1 0 15 0;
 #X connect 2 0 15 1;
 #X connect 3 0 15 1;
 #X connect 15 0 0 0;
+#X connect 15 1 23 0;
diff --git a/abstractions/jmmmp/dacc~-help.pd b/abstractions/jmmmp/dacc~-help.pd
new file mode 100644
index 000000000..da462452a
--- /dev/null
+++ b/abstractions/jmmmp/dacc~-help.pd
@@ -0,0 +1,77 @@
+#N struct 1449-color float x float y float farbe;
+#N struct 1449-color-display float x float y float farbe;
+#N struct 1452-color float x float y float farbe;
+#N struct 1452-color-display float x float y float farbe;
+#N struct 1446-matrixctrl float x float y float size float color float
+state;
+#N struct 1467-color float x float y float farbe;
+#N struct 1467-color-display float x float y float farbe;
+#N struct 1470-color float x float y float farbe;
+#N struct 1470-color-display float x float y float farbe;
+#N struct 1464-matrixctrl float x float y float size float color float
+state;
+#N canvas 215 34 779 344 10;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@gmail.com;
+#X text 8 7 Copyright 2016 \, João Pais;
+#X restore 14 315 pd license;
+#N canvas 564 268 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION dynamic dac~ outlet;
+#X text 12 36 KEYWORDS dac dac~ output;
+#X text 12 135 VERSION 2016;
+#X restore 104 315 pd META;
+#X text 10 295 (C) 2016 João Pais - jmmmpais@gmail.com;
+#X text 11 11 [dacc~] - dynamic dac~ outlet up to 32 channels;
+#X obj 14 91 osc~ 440;
+#X obj 14 111 mat-~;
+#X floatatom 27 175 5 0 0 0 - - -;
+#X floatatom 41 245 5 0 0 0 - - -;
+#X text 41 225 Fade time;
+#X text 28 155 List of channels. Send as an integer or a list of integers.
+;
+#X text 12 41 This abstraction is a dynamic version of the [dac~] object.
+The output channel(s) can be set anytime. To set the output channel(s)
+\, send an integer or a list to the middle input.;
+#X text 412 91 Inlets;
+#X text 412 151 - Fade time (ms). Default is 20ms.;
+#X text 412 41 Arguments;
+#X text 412 61 - list with channel(s). If not present \, there won't
+be any output until the channels are set.;
+#X text 412 111 - Audio signal;
+#X msg 37 195 1 3 8 16 25 32;
+#X obj 194 265 dacc~ 1 3 8 16 25 32;
+#X text 412 131 - Output channel(s) - integer or list of integers (max
+32);
+#X obj 14 265 dacc~;
+#X text 192 245 You can initiate the channels as arguments.;
+#X connect 4 0 5 0;
+#X connect 5 0 19 0;
+#X connect 6 0 19 1;
+#X connect 7 0 19 2;
+#X connect 16 0 19 1;
diff --git a/abstractions/jmmmp/dacc~.pd b/abstractions/jmmmp/dacc~.pd
new file mode 100644
index 000000000..9d579672c
--- /dev/null
+++ b/abstractions/jmmmp/dacc~.pd
@@ -0,0 +1,126 @@
+#N struct 1449-color float x float y float farbe;
+#N struct 1449-color-display float x float y float farbe;
+#N struct 1452-color float x float y float farbe;
+#N struct 1452-color-display float x float y float farbe;
+#N struct 1446-matrixctrl float x float y float size float color float
+state;
+#N canvas 40 394 580 447 10;
+#X obj 98 284 inlet~;
+#X text 213 94 Inlets;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2016 \, João Pais;
+#X restore 16 417 pd license;
+#X text 12 397 (C) 2016 João Pais - jmmmpais@googlemail.com;
+#X obj 106 44 inlet;
+#X obj 16 354 dac~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+20 21 22 23 24 25 26 27 28 29 30 31 32;
+#X obj 16 264 matrixctrl 32 1;
+#X obj 145 214 - 1;
+#X msg 145 234 \$1 0 1;
+#X obj 106 124 list split 1;
+#X obj 140 144 t l;
+#X obj 106 84 t a b;
+#X msg 133 104 reset;
+#X obj 361 284 inlet;
+#X obj 16 314 iemmatrix/mtx_mul~ 32 1 20 ----------------------------------------------------------
+;
+#X text 213 154 - Fade time (ms). Default is 20ms.;
+#X obj 106 164 moses 33;
+#X obj 201 214 print dacmm~;
+#X msg 201 194 ERROR: chanel \$1 over the limit of 32 channels.;
+#X text 213 44 Arguments;
+#X text 213 64 - list with channel(s). If not present \, there won't
+be any output until the channels are set.;
+#X text 12 14 [dacc~] - dynamic dac~ outlet up to 32 channels;
+#N canvas 441 633 394 196 init 0;
+#X obj 15 104 list \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 \$10 \$11 \$12
+\$13 \$14 \$15 \$16 \$17 \$18 \$19 \$20 \$21 \$22 \$23 \$24 \$25 \$26
+\$27 \$28 \$29 \$30 \$31 \$32;
+#X obj 15 44 loadbang;
+#X obj 15 64 expr \$1 != 0;
+#X obj 15 84 sel 1;
+#X text 12 14 Checks if initiation values are present. If yes \, list
+is sent.;
+#X obj 15 150 outlet;
+#X connect 0 0 5 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X restore 116 64 pd init;
+#X obj 106 194 moses 1;
+#X text 213 114 - Audio signal;
+#X text 213 134 - Output channel(s) - integer or list of integers (max
+32);
+#X connect 0 0 14 1;
+#X connect 4 0 11 0;
+#X connect 6 0 14 0;
+#X connect 7 0 8 0;
+#X connect 8 0 6 0;
+#X connect 9 0 16 0;
+#X connect 9 1 10 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 0;
+#X connect 11 1 12 0;
+#X connect 12 0 6 0;
+#X connect 13 0 14 2;
+#X connect 14 0 5 0;
+#X connect 14 1 5 1;
+#X connect 14 2 5 2;
+#X connect 14 3 5 3;
+#X connect 14 4 5 4;
+#X connect 14 5 5 5;
+#X connect 14 6 5 6;
+#X connect 14 7 5 7;
+#X connect 14 8 5 8;
+#X connect 14 9 5 9;
+#X connect 14 10 5 10;
+#X connect 14 11 5 11;
+#X connect 14 12 5 12;
+#X connect 14 13 5 13;
+#X connect 14 14 5 14;
+#X connect 14 15 5 15;
+#X connect 14 16 5 16;
+#X connect 14 17 5 17;
+#X connect 14 18 5 18;
+#X connect 14 19 5 19;
+#X connect 14 20 5 20;
+#X connect 14 21 5 21;
+#X connect 14 22 5 22;
+#X connect 14 23 5 23;
+#X connect 14 24 5 24;
+#X connect 14 25 5 25;
+#X connect 14 26 5 26;
+#X connect 14 27 5 27;
+#X connect 14 28 5 28;
+#X connect 14 29 5 29;
+#X connect 14 30 5 30;
+#X connect 14 31 5 31;
+#X connect 16 0 23 0;
+#X connect 16 1 18 0;
+#X connect 18 0 17 0;
+#X connect 22 0 11 0;
+#X connect 23 1 7 0;
+#X coords 0 0 1 1 143 17 0;
diff --git a/abstractions/jmmmp/dacm~-help.pd b/abstractions/jmmmp/dacm~-help.pd
index b234c6411..fe9bc41cd 100644
--- a/abstractions/jmmmp/dacm~-help.pd
+++ b/abstractions/jmmmp/dacm~-help.pd
@@ -13,4 +13,14 @@ specify \, making a mono output.;
 you work with 2 channels. So \, [dacm~] == [dacm~ 2].;
 #X text 12 267 (C) 2009 João Pais - jmmmpais@googlemail.com;
 #X text 28 131 look inside to make sure;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2009;
+#X text 12 5 DESCRIPTION Mono dac~ for lazy people;
+#X text 12 35 KEYWORDS dac~ dynamic;
+#X text 12 165 INLET_0 - Audio signal;
+#X restore 352 286 pd META;
 #X coords 0 0 1 1 31 130 0;
diff --git a/abstractions/jmmmp/datei-o-help.pd b/abstractions/jmmmp/datei-o-help.pd
index a7de9e040..b49bbb937 100644
--- a/abstractions/jmmmp/datei-o-help.pd
+++ b/abstractions/jmmmp/datei-o-help.pd
@@ -17,6 +17,17 @@
 #X text 12 237 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 257 Released under the BSD License;
 #X text 12 207 Related objects: [datei-r] [datei-w];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 12 5 DESCRIPTION Sends the message "open ../../";
+#X text 12 35 KEYWORDS open file;
+#X text 14 165 INLET_0 - Bang / File name;
+#X text 14 185 OUTLET_0 - Message;
+#X restore 392 266 pd META;
 #X connect 6 0 12 0;
 #X connect 8 0 12 0;
 #X connect 12 0 14 0;
diff --git a/abstractions/jmmmp/datei-r-help.pd b/abstractions/jmmmp/datei-r-help.pd
index f69d96a0c..d9b5fa7ae 100644
--- a/abstractions/jmmmp/datei-r-help.pd
+++ b/abstractions/jmmmp/datei-r-help.pd
@@ -17,6 +17,17 @@
 #X text 12 237 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 257 Released under the BSD License;
 #X text 12 208 Related objects: [datei-o] [datei-w];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 14 165 INLET_0 - Bang / File name;
+#X text 14 185 OUTLET_0 - Message;
+#X text 12 5 DESCRIPTION Sends the message "read ../../";
+#X text 12 35 KEYWORDS read file;
+#X restore 402 266 pd META;
 #X connect 0 0 1 0;
 #X connect 1 0 2 0;
 #X connect 3 0 1 0;
diff --git a/abstractions/jmmmp/datei-w-help.pd b/abstractions/jmmmp/datei-w-help.pd
index dd4c9df40..9ae1008cb 100644
--- a/abstractions/jmmmp/datei-w-help.pd
+++ b/abstractions/jmmmp/datei-w-help.pd
@@ -17,6 +17,17 @@
 #X text 12 237 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 257 Released under the BSD License;
 #X text 12 207 Related objects: [datei-o] [datei-r];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 14 165 INLET_0 - Bang / File name;
+#X text 14 185 OUTLET_0 - Message;
+#X text 12 5 DESCRIPTION Sends the message "write ../../";
+#X text 12 35 KEYWORDS wrote file;
+#X restore 402 266 pd META;
 #X connect 6 0 12 0;
 #X connect 8 0 12 0;
 #X connect 12 0 14 0;
diff --git a/abstractions/jmmmp/debian/changelog b/abstractions/jmmmp/debian/changelog
deleted file mode 100644
index e26f6e56a..000000000
--- a/abstractions/jmmmp/debian/changelog
+++ /dev/null
@@ -1,5 +0,0 @@
-pd-jmmmp (0.2-1) unstable; urgency=low
-
-  * Initial release (Closes: #591840)
-
- -- Hans-Christoph Steiner <hans@eds.org>  Thu, 21 Jan 2010 23:27:04 -0500
diff --git a/abstractions/jmmmp/debian/compat b/abstractions/jmmmp/debian/compat
deleted file mode 100644
index 7f8f011eb..000000000
--- a/abstractions/jmmmp/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/abstractions/jmmmp/debian/control b/abstractions/jmmmp/debian/control
deleted file mode 100644
index a5eaa6648..000000000
--- a/abstractions/jmmmp/debian/control
+++ /dev/null
@@ -1,18 +0,0 @@
-Source: pd-jmmmp
-Section: sound
-Priority: optional
-Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
-Uploaders: Hans-Christoph Steiner <hans@eds.org>
-Build-Depends: debhelper (>= 7.0.50~)
-Standards-Version: 3.9.1
-Homepage: http://puredata.info
-
-Package: pd-jmmmp
-Architecture: all
-Depends: ${shlibs:Depends},
-         pd,
-         ${misc:Depends},
-         pd-libdir
-Description: a collection of Pd GUI objects for musical performance
- jmmmp is a collection of GUI objects for musical performance, including
- controlling the DAC, volume, debugging, linking up with other programs, etc.
diff --git a/abstractions/jmmmp/debian/copyright b/abstractions/jmmmp/debian/copyright
deleted file mode 100644
index 661216f50..000000000
--- a/abstractions/jmmmp/debian/copyright
+++ /dev/null
@@ -1,49 +0,0 @@
-Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?rev=135
-Name: jmmmmp
-Maintainer: João Pais <jmmmpais@googlemail.com>
-Source: http://sourceforge.net/projects/pure-data/files/libraries/jmmmp
-
-Files: *
-Copyright: 2005-2009, João Pais <jmmmpais@googlemail.com>
-License: BSD
-
-Files: examples/*.gif examples/*.png
-Copyright: 1999-2010, Paul Davis and others
-License: GPL-2+
-
-License: BSD
- Copyright (c) João Pais
- All rights reserved.
- .
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
- 3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
- . 
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-License: GPL-2+
- This package is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- .
- On Debian systems, the complete text of the GNU General Public License
- version 2 can be found in file "/usr/share/common-licenses/GPL-2".
diff --git a/abstractions/jmmmp/debian/gbp.conf b/abstractions/jmmmp/debian/gbp.conf
deleted file mode 100644
index ae1dc367f..000000000
--- a/abstractions/jmmmp/debian/gbp.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-[DEFAULT]
-upstream-branch = upstream
-debian-branch = master
-upstream-tag = upstream/%(version)s
-debian-tag = debian/%(version)s
-pristine-tar = True
-sign-tags = True
diff --git a/abstractions/jmmmp/debian/links b/abstractions/jmmmp/debian/links
deleted file mode 100644
index 5e0a1e15c..000000000
--- a/abstractions/jmmmp/debian/links
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/pd/extra/jmmmp/README.txt        usr/share/doc/pd-jmmmp/README
-usr/share/common-licenses/BSD            usr/lib/pd/extra/jmmmp/LICENSE.txt
diff --git a/abstractions/jmmmp/debian/rules b/abstractions/jmmmp/debian/rules
deleted file mode 100755
index 0026b2a84..000000000
--- a/abstractions/jmmmp/debian/rules
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/make -f
-
-LIBRARY_NAME = jmmmp
-PACKAGE = pd-$(LIBRARY_NAME)
-pkglibdir = /usr/lib/pd/extra
-
-%:
-	dh $@ --buildsystem=makefile
-
-override_dh_auto_install:
-	dh_auto_install -- prefix=/usr pkglibdir=$(pkglibdir)
-# replace license file with link to the Debian license file
-	rm -f -- $(CURDIR)/debian/$(PACKAGE)/$(pkglibdir)/$(LIBRARY_NAME)/LICENSE.txt
-
-override_dh_shlibdeps:
-	dpkg-shlibdeps $(CURDIR)/debian/$(PACKAGE)$(pkglibdir)/$(LIBRARY_NAME)/*.pd_linux \
-		-T$(CURDIR)/debian/$(PACKAGE).substvars
diff --git a/abstractions/jmmmp/debian/source/format b/abstractions/jmmmp/debian/source/format
deleted file mode 100644
index 163aaf8d8..000000000
--- a/abstractions/jmmmp/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/abstractions/jmmmp/debian/watch b/abstractions/jmmmp/debian/watch
deleted file mode 100644
index 1c2e0f232..000000000
--- a/abstractions/jmmmp/debian/watch
+++ /dev/null
@@ -1,2 +0,0 @@
-version=3
-http://sf.net/pure-data/jmmmp-(.*)\.tar\.gz
diff --git a/abstractions/jmmmp/ds-color-sel-help.pd b/abstractions/jmmmp/ds-color-sel-help.pd
new file mode 100644
index 000000000..7f76c626d
--- /dev/null
+++ b/abstractions/jmmmp/ds-color-sel-help.pd
@@ -0,0 +1,56 @@
+#N struct 1036-color float x float y float farbe float ynpos;
+#N struct 1508-color float x float y float farbe;
+#N struct 1508-color-display float x float y float farbe;
+#N canvas 369 163 531 325 10;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2006 \, João Pais;
+#X restore 16 299 pd license;
+#X text 13 281 (C) 2013 João Pais - jmmmpais@googlemail.com;
+#X text 11 11 [ds-color-sel] - color selector for data structures;
+#X text 13 221 Arguments;
+#X text 113 221 Inlets;
+#X text 203 221 Outlets;
+#X text 203 242 - selected color number;
+#X text 13 241 (none);
+#X text 113 241 (none);
+#X floatatom 14 164 5 0 0 0 - - -;
+#X obj 137 191 pd-colors;
+#X obj 14 89 ds-color-sel;
+#X text 13 191 Also take a look at;
+#X text 201 191 for the color pallettes in Pure Data.;
+#X text 12 39 Click in one of the colors or change the number box.
+You'll get the color number displayed and as output. Connect it to
+your patch.;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 36 KEYWORDS color tcl/tk data structures;
+#X text 12 6 DESCRIPTION color selector for data structures;
+#X text 12 135 VERSION 2013;
+#X restore 106 299 pd META;
+#X connect 11 0 9 0;
diff --git a/abstractions/jmmmp/ds-color-sel.pd b/abstractions/jmmmp/ds-color-sel.pd
new file mode 100644
index 000000000..218aa39b5
--- /dev/null
+++ b/abstractions/jmmmp/ds-color-sel.pd
@@ -0,0 +1,1125 @@
+#N struct 1299-color float x float y float farbe;
+#N canvas 108 425 541 288 10;
+#N canvas 739 612 318 143 farben 0;
+#X obj 10 101 filledpolygon farbe farbe 0 0 0 0 5 5 5 5 0 0 0;
+#X obj 10 51 get \$0-color farbe;
+#X obj 10 31 route click;
+#X obj 10 71 outlet;
+#X obj 10 11 struct \$0-color float x float y float farbe;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 4 0 2 0;
+#X restore 15 134 pd farben;
+#N canvas 402 527 765 182 \$0-farben-datas 0;
+#X scalar 1299-color 1 1 0 \;;
+#X scalar 1299-color 6 1 1 \;;
+#X scalar 1299-color 11 1 2 \;;
+#X scalar 1299-color 16 1 3 \;;
+#X scalar 1299-color 21 1 4 \;;
+#X scalar 1299-color 26 1 5 \;;
+#X scalar 1299-color 31 1 6 \;;
+#X scalar 1299-color 36 1 7 \;;
+#X scalar 1299-color 41 1 8 \;;
+#X scalar 1299-color 46 1 9 \;;
+#X scalar 1299-color 51 1 10 \;;
+#X scalar 1299-color 56 1 11 \;;
+#X scalar 1299-color 61 1 12 \;;
+#X scalar 1299-color 66 1 13 \;;
+#X scalar 1299-color 71 1 14 \;;
+#X scalar 1299-color 76 1 15 \;;
+#X scalar 1299-color 81 1 16 \;;
+#X scalar 1299-color 86 1 17 \;;
+#X scalar 1299-color 91 1 18 \;;
+#X scalar 1299-color 96 1 19 \;;
+#X scalar 1299-color 101 1 20 \;;
+#X scalar 1299-color 106 1 21 \;;
+#X scalar 1299-color 111 1 22 \;;
+#X scalar 1299-color 116 1 23 \;;
+#X scalar 1299-color 121 1 24 \;;
+#X scalar 1299-color 126 1 25 \;;
+#X scalar 1299-color 131 1 26 \;;
+#X scalar 1299-color 136 1 27 \;;
+#X scalar 1299-color 141 1 28 \;;
+#X scalar 1299-color 146 1 29 \;;
+#X scalar 1299-color 151 1 30 \;;
+#X scalar 1299-color 156 1 31 \;;
+#X scalar 1299-color 161 1 32 \;;
+#X scalar 1299-color 166 1 33 \;;
+#X scalar 1299-color 171 1 34 \;;
+#X scalar 1299-color 176 1 35 \;;
+#X scalar 1299-color 181 1 36 \;;
+#X scalar 1299-color 186 1 37 \;;
+#X scalar 1299-color 191 1 38 \;;
+#X scalar 1299-color 196 1 39 \;;
+#X scalar 1299-color 201 1 40 \;;
+#X scalar 1299-color 206 1 41 \;;
+#X scalar 1299-color 211 1 42 \;;
+#X scalar 1299-color 216 1 43 \;;
+#X scalar 1299-color 221 1 44 \;;
+#X scalar 1299-color 226 1 45 \;;
+#X scalar 1299-color 231 1 46 \;;
+#X scalar 1299-color 236 1 47 \;;
+#X scalar 1299-color 241 1 48 \;;
+#X scalar 1299-color 246 1 49 \;;
+#X scalar 1299-color 251 1 50 \;;
+#X scalar 1299-color 256 1 51 \;;
+#X scalar 1299-color 261 1 52 \;;
+#X scalar 1299-color 266 1 53 \;;
+#X scalar 1299-color 271 1 54 \;;
+#X scalar 1299-color 276 1 55 \;;
+#X scalar 1299-color 281 1 56 \;;
+#X scalar 1299-color 286 1 57 \;;
+#X scalar 1299-color 291 1 58 \;;
+#X scalar 1299-color 296 1 59 \;;
+#X scalar 1299-color 301 1 60 \;;
+#X scalar 1299-color 306 1 61 \;;
+#X scalar 1299-color 311 1 62 \;;
+#X scalar 1299-color 316 1 63 \;;
+#X scalar 1299-color 321 1 64 \;;
+#X scalar 1299-color 326 1 65 \;;
+#X scalar 1299-color 331 1 66 \;;
+#X scalar 1299-color 336 1 67 \;;
+#X scalar 1299-color 341 1 68 \;;
+#X scalar 1299-color 346 1 69 \;;
+#X scalar 1299-color 351 1 70 \;;
+#X scalar 1299-color 356 1 71 \;;
+#X scalar 1299-color 361 1 72 \;;
+#X scalar 1299-color 366 1 73 \;;
+#X scalar 1299-color 371 1 74 \;;
+#X scalar 1299-color 376 1 75 \;;
+#X scalar 1299-color 381 1 76 \;;
+#X scalar 1299-color 386 1 77 \;;
+#X scalar 1299-color 391 1 78 \;;
+#X scalar 1299-color 396 1 79 \;;
+#X scalar 1299-color 401 1 80 \;;
+#X scalar 1299-color 406 1 81 \;;
+#X scalar 1299-color 411 1 82 \;;
+#X scalar 1299-color 416 1 83 \;;
+#X scalar 1299-color 421 1 84 \;;
+#X scalar 1299-color 426 1 85 \;;
+#X scalar 1299-color 431 1 86 \;;
+#X scalar 1299-color 436 1 87 \;;
+#X scalar 1299-color 441 1 88 \;;
+#X scalar 1299-color 446 1 89 \;;
+#X scalar 1299-color 451 1 90 \;;
+#X scalar 1299-color 456 1 91 \;;
+#X scalar 1299-color 461 1 92 \;;
+#X scalar 1299-color 466 1 93 \;;
+#X scalar 1299-color 471 1 94 \;;
+#X scalar 1299-color 476 1 95 \;;
+#X scalar 1299-color 481 1 96 \;;
+#X scalar 1299-color 486 1 97 \;;
+#X scalar 1299-color 491 1 98 \;;
+#X scalar 1299-color 496 1 99 \;;
+#X scalar 1299-color 1 6 100 \;;
+#X scalar 1299-color 6 6 101 \;;
+#X scalar 1299-color 11 6 102 \;;
+#X scalar 1299-color 16 6 103 \;;
+#X scalar 1299-color 21 6 104 \;;
+#X scalar 1299-color 26 6 105 \;;
+#X scalar 1299-color 31 6 106 \;;
+#X scalar 1299-color 36 6 107 \;;
+#X scalar 1299-color 41 6 108 \;;
+#X scalar 1299-color 46 6 109 \;;
+#X scalar 1299-color 51 6 110 \;;
+#X scalar 1299-color 56 6 111 \;;
+#X scalar 1299-color 61 6 112 \;;
+#X scalar 1299-color 66 6 113 \;;
+#X scalar 1299-color 71 6 114 \;;
+#X scalar 1299-color 76 6 115 \;;
+#X scalar 1299-color 81 6 116 \;;
+#X scalar 1299-color 86 6 117 \;;
+#X scalar 1299-color 91 6 118 \;;
+#X scalar 1299-color 96 6 119 \;;
+#X scalar 1299-color 101 6 120 \;;
+#X scalar 1299-color 106 6 121 \;;
+#X scalar 1299-color 111 6 122 \;;
+#X scalar 1299-color 116 6 123 \;;
+#X scalar 1299-color 121 6 124 \;;
+#X scalar 1299-color 126 6 125 \;;
+#X scalar 1299-color 131 6 126 \;;
+#X scalar 1299-color 136 6 127 \;;
+#X scalar 1299-color 141 6 128 \;;
+#X scalar 1299-color 146 6 129 \;;
+#X scalar 1299-color 151 6 130 \;;
+#X scalar 1299-color 156 6 131 \;;
+#X scalar 1299-color 161 6 132 \;;
+#X scalar 1299-color 166 6 133 \;;
+#X scalar 1299-color 171 6 134 \;;
+#X scalar 1299-color 176 6 135 \;;
+#X scalar 1299-color 181 6 136 \;;
+#X scalar 1299-color 186 6 137 \;;
+#X scalar 1299-color 191 6 138 \;;
+#X scalar 1299-color 196 6 139 \;;
+#X scalar 1299-color 201 6 140 \;;
+#X scalar 1299-color 206 6 141 \;;
+#X scalar 1299-color 211 6 142 \;;
+#X scalar 1299-color 216 6 143 \;;
+#X scalar 1299-color 221 6 144 \;;
+#X scalar 1299-color 226 6 145 \;;
+#X scalar 1299-color 231 6 146 \;;
+#X scalar 1299-color 236 6 147 \;;
+#X scalar 1299-color 241 6 148 \;;
+#X scalar 1299-color 246 6 149 \;;
+#X scalar 1299-color 251 6 150 \;;
+#X scalar 1299-color 256 6 151 \;;
+#X scalar 1299-color 261 6 152 \;;
+#X scalar 1299-color 266 6 153 \;;
+#X scalar 1299-color 271 6 154 \;;
+#X scalar 1299-color 276 6 155 \;;
+#X scalar 1299-color 281 6 156 \;;
+#X scalar 1299-color 286 6 157 \;;
+#X scalar 1299-color 291 6 158 \;;
+#X scalar 1299-color 296 6 159 \;;
+#X scalar 1299-color 301 6 160 \;;
+#X scalar 1299-color 306 6 161 \;;
+#X scalar 1299-color 311 6 162 \;;
+#X scalar 1299-color 316 6 163 \;;
+#X scalar 1299-color 321 6 164 \;;
+#X scalar 1299-color 326 6 165 \;;
+#X scalar 1299-color 331 6 166 \;;
+#X scalar 1299-color 336 6 167 \;;
+#X scalar 1299-color 341 6 168 \;;
+#X scalar 1299-color 346 6 169 \;;
+#X scalar 1299-color 351 6 170 \;;
+#X scalar 1299-color 356 6 171 \;;
+#X scalar 1299-color 361 6 172 \;;
+#X scalar 1299-color 366 6 173 \;;
+#X scalar 1299-color 371 6 174 \;;
+#X scalar 1299-color 376 6 175 \;;
+#X scalar 1299-color 381 6 176 \;;
+#X scalar 1299-color 386 6 177 \;;
+#X scalar 1299-color 391 6 178 \;;
+#X scalar 1299-color 396 6 179 \;;
+#X scalar 1299-color 401 6 180 \;;
+#X scalar 1299-color 406 6 181 \;;
+#X scalar 1299-color 411 6 182 \;;
+#X scalar 1299-color 416 6 183 \;;
+#X scalar 1299-color 421 6 184 \;;
+#X scalar 1299-color 426 6 185 \;;
+#X scalar 1299-color 431 6 186 \;;
+#X scalar 1299-color 436 6 187 \;;
+#X scalar 1299-color 441 6 188 \;;
+#X scalar 1299-color 446 6 189 \;;
+#X scalar 1299-color 451 6 190 \;;
+#X scalar 1299-color 456 6 191 \;;
+#X scalar 1299-color 461 6 192 \;;
+#X scalar 1299-color 466 6 193 \;;
+#X scalar 1299-color 471 6 194 \;;
+#X scalar 1299-color 476 6 195 \;;
+#X scalar 1299-color 481 6 196 \;;
+#X scalar 1299-color 486 6 197 \;;
+#X scalar 1299-color 491 6 198 \;;
+#X scalar 1299-color 496 6 199 \;;
+#X scalar 1299-color 1 11 200 \;;
+#X scalar 1299-color 6 11 201 \;;
+#X scalar 1299-color 11 11 202 \;;
+#X scalar 1299-color 16 11 203 \;;
+#X scalar 1299-color 21 11 204 \;;
+#X scalar 1299-color 26 11 205 \;;
+#X scalar 1299-color 31 11 206 \;;
+#X scalar 1299-color 36 11 207 \;;
+#X scalar 1299-color 41 11 208 \;;
+#X scalar 1299-color 46 11 209 \;;
+#X scalar 1299-color 51 11 210 \;;
+#X scalar 1299-color 56 11 211 \;;
+#X scalar 1299-color 61 11 212 \;;
+#X scalar 1299-color 66 11 213 \;;
+#X scalar 1299-color 71 11 214 \;;
+#X scalar 1299-color 76 11 215 \;;
+#X scalar 1299-color 81 11 216 \;;
+#X scalar 1299-color 86 11 217 \;;
+#X scalar 1299-color 91 11 218 \;;
+#X scalar 1299-color 96 11 219 \;;
+#X scalar 1299-color 101 11 220 \;;
+#X scalar 1299-color 106 11 221 \;;
+#X scalar 1299-color 111 11 222 \;;
+#X scalar 1299-color 116 11 223 \;;
+#X scalar 1299-color 121 11 224 \;;
+#X scalar 1299-color 126 11 225 \;;
+#X scalar 1299-color 131 11 226 \;;
+#X scalar 1299-color 136 11 227 \;;
+#X scalar 1299-color 141 11 228 \;;
+#X scalar 1299-color 146 11 229 \;;
+#X scalar 1299-color 151 11 230 \;;
+#X scalar 1299-color 156 11 231 \;;
+#X scalar 1299-color 161 11 232 \;;
+#X scalar 1299-color 166 11 233 \;;
+#X scalar 1299-color 171 11 234 \;;
+#X scalar 1299-color 176 11 235 \;;
+#X scalar 1299-color 181 11 236 \;;
+#X scalar 1299-color 186 11 237 \;;
+#X scalar 1299-color 191 11 238 \;;
+#X scalar 1299-color 196 11 239 \;;
+#X scalar 1299-color 201 11 240 \;;
+#X scalar 1299-color 206 11 241 \;;
+#X scalar 1299-color 211 11 242 \;;
+#X scalar 1299-color 216 11 243 \;;
+#X scalar 1299-color 221 11 244 \;;
+#X scalar 1299-color 226 11 245 \;;
+#X scalar 1299-color 231 11 246 \;;
+#X scalar 1299-color 236 11 247 \;;
+#X scalar 1299-color 241 11 248 \;;
+#X scalar 1299-color 246 11 249 \;;
+#X scalar 1299-color 251 11 250 \;;
+#X scalar 1299-color 256 11 251 \;;
+#X scalar 1299-color 261 11 252 \;;
+#X scalar 1299-color 266 11 253 \;;
+#X scalar 1299-color 271 11 254 \;;
+#X scalar 1299-color 276 11 255 \;;
+#X scalar 1299-color 281 11 256 \;;
+#X scalar 1299-color 286 11 257 \;;
+#X scalar 1299-color 291 11 258 \;;
+#X scalar 1299-color 296 11 259 \;;
+#X scalar 1299-color 301 11 260 \;;
+#X scalar 1299-color 306 11 261 \;;
+#X scalar 1299-color 311 11 262 \;;
+#X scalar 1299-color 316 11 263 \;;
+#X scalar 1299-color 321 11 264 \;;
+#X scalar 1299-color 326 11 265 \;;
+#X scalar 1299-color 331 11 266 \;;
+#X scalar 1299-color 336 11 267 \;;
+#X scalar 1299-color 341 11 268 \;;
+#X scalar 1299-color 346 11 269 \;;
+#X scalar 1299-color 351 11 270 \;;
+#X scalar 1299-color 356 11 271 \;;
+#X scalar 1299-color 361 11 272 \;;
+#X scalar 1299-color 366 11 273 \;;
+#X scalar 1299-color 371 11 274 \;;
+#X scalar 1299-color 376 11 275 \;;
+#X scalar 1299-color 381 11 276 \;;
+#X scalar 1299-color 386 11 277 \;;
+#X scalar 1299-color 391 11 278 \;;
+#X scalar 1299-color 396 11 279 \;;
+#X scalar 1299-color 401 11 280 \;;
+#X scalar 1299-color 406 11 281 \;;
+#X scalar 1299-color 411 11 282 \;;
+#X scalar 1299-color 416 11 283 \;;
+#X scalar 1299-color 421 11 284 \;;
+#X scalar 1299-color 426 11 285 \;;
+#X scalar 1299-color 431 11 286 \;;
+#X scalar 1299-color 436 11 287 \;;
+#X scalar 1299-color 441 11 288 \;;
+#X scalar 1299-color 446 11 289 \;;
+#X scalar 1299-color 451 11 290 \;;
+#X scalar 1299-color 456 11 291 \;;
+#X scalar 1299-color 461 11 292 \;;
+#X scalar 1299-color 466 11 293 \;;
+#X scalar 1299-color 471 11 294 \;;
+#X scalar 1299-color 476 11 295 \;;
+#X scalar 1299-color 481 11 296 \;;
+#X scalar 1299-color 486 11 297 \;;
+#X scalar 1299-color 491 11 298 \;;
+#X scalar 1299-color 496 11 299 \;;
+#X scalar 1299-color 1 16 300 \;;
+#X scalar 1299-color 6 16 301 \;;
+#X scalar 1299-color 11 16 302 \;;
+#X scalar 1299-color 16 16 303 \;;
+#X scalar 1299-color 21 16 304 \;;
+#X scalar 1299-color 26 16 305 \;;
+#X scalar 1299-color 31 16 306 \;;
+#X scalar 1299-color 36 16 307 \;;
+#X scalar 1299-color 41 16 308 \;;
+#X scalar 1299-color 46 16 309 \;;
+#X scalar 1299-color 51 16 310 \;;
+#X scalar 1299-color 56 16 311 \;;
+#X scalar 1299-color 61 16 312 \;;
+#X scalar 1299-color 66 16 313 \;;
+#X scalar 1299-color 71 16 314 \;;
+#X scalar 1299-color 76 16 315 \;;
+#X scalar 1299-color 81 16 316 \;;
+#X scalar 1299-color 86 16 317 \;;
+#X scalar 1299-color 91 16 318 \;;
+#X scalar 1299-color 96 16 319 \;;
+#X scalar 1299-color 101 16 320 \;;
+#X scalar 1299-color 106 16 321 \;;
+#X scalar 1299-color 111 16 322 \;;
+#X scalar 1299-color 116 16 323 \;;
+#X scalar 1299-color 121 16 324 \;;
+#X scalar 1299-color 126 16 325 \;;
+#X scalar 1299-color 131 16 326 \;;
+#X scalar 1299-color 136 16 327 \;;
+#X scalar 1299-color 141 16 328 \;;
+#X scalar 1299-color 146 16 329 \;;
+#X scalar 1299-color 151 16 330 \;;
+#X scalar 1299-color 156 16 331 \;;
+#X scalar 1299-color 161 16 332 \;;
+#X scalar 1299-color 166 16 333 \;;
+#X scalar 1299-color 171 16 334 \;;
+#X scalar 1299-color 176 16 335 \;;
+#X scalar 1299-color 181 16 336 \;;
+#X scalar 1299-color 186 16 337 \;;
+#X scalar 1299-color 191 16 338 \;;
+#X scalar 1299-color 196 16 339 \;;
+#X scalar 1299-color 201 16 340 \;;
+#X scalar 1299-color 206 16 341 \;;
+#X scalar 1299-color 211 16 342 \;;
+#X scalar 1299-color 216 16 343 \;;
+#X scalar 1299-color 221 16 344 \;;
+#X scalar 1299-color 226 16 345 \;;
+#X scalar 1299-color 231 16 346 \;;
+#X scalar 1299-color 236 16 347 \;;
+#X scalar 1299-color 241 16 348 \;;
+#X scalar 1299-color 246 16 349 \;;
+#X scalar 1299-color 251 16 350 \;;
+#X scalar 1299-color 256 16 351 \;;
+#X scalar 1299-color 261 16 352 \;;
+#X scalar 1299-color 266 16 353 \;;
+#X scalar 1299-color 271 16 354 \;;
+#X scalar 1299-color 276 16 355 \;;
+#X scalar 1299-color 281 16 356 \;;
+#X scalar 1299-color 286 16 357 \;;
+#X scalar 1299-color 291 16 358 \;;
+#X scalar 1299-color 296 16 359 \;;
+#X scalar 1299-color 301 16 360 \;;
+#X scalar 1299-color 306 16 361 \;;
+#X scalar 1299-color 311 16 362 \;;
+#X scalar 1299-color 316 16 363 \;;
+#X scalar 1299-color 321 16 364 \;;
+#X scalar 1299-color 326 16 365 \;;
+#X scalar 1299-color 331 16 366 \;;
+#X scalar 1299-color 336 16 367 \;;
+#X scalar 1299-color 341 16 368 \;;
+#X scalar 1299-color 346 16 369 \;;
+#X scalar 1299-color 351 16 370 \;;
+#X scalar 1299-color 356 16 371 \;;
+#X scalar 1299-color 361 16 372 \;;
+#X scalar 1299-color 366 16 373 \;;
+#X scalar 1299-color 371 16 374 \;;
+#X scalar 1299-color 376 16 375 \;;
+#X scalar 1299-color 381 16 376 \;;
+#X scalar 1299-color 386 16 377 \;;
+#X scalar 1299-color 391 16 378 \;;
+#X scalar 1299-color 396 16 379 \;;
+#X scalar 1299-color 401 16 380 \;;
+#X scalar 1299-color 406 16 381 \;;
+#X scalar 1299-color 411 16 382 \;;
+#X scalar 1299-color 416 16 383 \;;
+#X scalar 1299-color 421 16 384 \;;
+#X scalar 1299-color 426 16 385 \;;
+#X scalar 1299-color 431 16 386 \;;
+#X scalar 1299-color 436 16 387 \;;
+#X scalar 1299-color 441 16 388 \;;
+#X scalar 1299-color 446 16 389 \;;
+#X scalar 1299-color 451 16 390 \;;
+#X scalar 1299-color 456 16 391 \;;
+#X scalar 1299-color 461 16 392 \;;
+#X scalar 1299-color 466 16 393 \;;
+#X scalar 1299-color 471 16 394 \;;
+#X scalar 1299-color 476 16 395 \;;
+#X scalar 1299-color 481 16 396 \;;
+#X scalar 1299-color 486 16 397 \;;
+#X scalar 1299-color 491 16 398 \;;
+#X scalar 1299-color 496 16 399 \;;
+#X scalar 1299-color 1 21 400 \;;
+#X scalar 1299-color 6 21 401 \;;
+#X scalar 1299-color 11 21 402 \;;
+#X scalar 1299-color 16 21 403 \;;
+#X scalar 1299-color 21 21 404 \;;
+#X scalar 1299-color 26 21 405 \;;
+#X scalar 1299-color 31 21 406 \;;
+#X scalar 1299-color 36 21 407 \;;
+#X scalar 1299-color 41 21 408 \;;
+#X scalar 1299-color 46 21 409 \;;
+#X scalar 1299-color 51 21 410 \;;
+#X scalar 1299-color 56 21 411 \;;
+#X scalar 1299-color 61 21 412 \;;
+#X scalar 1299-color 66 21 413 \;;
+#X scalar 1299-color 71 21 414 \;;
+#X scalar 1299-color 76 21 415 \;;
+#X scalar 1299-color 81 21 416 \;;
+#X scalar 1299-color 86 21 417 \;;
+#X scalar 1299-color 91 21 418 \;;
+#X scalar 1299-color 96 21 419 \;;
+#X scalar 1299-color 101 21 420 \;;
+#X scalar 1299-color 106 21 421 \;;
+#X scalar 1299-color 111 21 422 \;;
+#X scalar 1299-color 116 21 423 \;;
+#X scalar 1299-color 121 21 424 \;;
+#X scalar 1299-color 126 21 425 \;;
+#X scalar 1299-color 131 21 426 \;;
+#X scalar 1299-color 136 21 427 \;;
+#X scalar 1299-color 141 21 428 \;;
+#X scalar 1299-color 146 21 429 \;;
+#X scalar 1299-color 151 21 430 \;;
+#X scalar 1299-color 156 21 431 \;;
+#X scalar 1299-color 161 21 432 \;;
+#X scalar 1299-color 166 21 433 \;;
+#X scalar 1299-color 171 21 434 \;;
+#X scalar 1299-color 176 21 435 \;;
+#X scalar 1299-color 181 21 436 \;;
+#X scalar 1299-color 186 21 437 \;;
+#X scalar 1299-color 191 21 438 \;;
+#X scalar 1299-color 196 21 439 \;;
+#X scalar 1299-color 201 21 440 \;;
+#X scalar 1299-color 206 21 441 \;;
+#X scalar 1299-color 211 21 442 \;;
+#X scalar 1299-color 216 21 443 \;;
+#X scalar 1299-color 221 21 444 \;;
+#X scalar 1299-color 226 21 445 \;;
+#X scalar 1299-color 231 21 446 \;;
+#X scalar 1299-color 236 21 447 \;;
+#X scalar 1299-color 241 21 448 \;;
+#X scalar 1299-color 246 21 449 \;;
+#X scalar 1299-color 251 21 450 \;;
+#X scalar 1299-color 256 21 451 \;;
+#X scalar 1299-color 261 21 452 \;;
+#X scalar 1299-color 266 21 453 \;;
+#X scalar 1299-color 271 21 454 \;;
+#X scalar 1299-color 276 21 455 \;;
+#X scalar 1299-color 281 21 456 \;;
+#X scalar 1299-color 286 21 457 \;;
+#X scalar 1299-color 291 21 458 \;;
+#X scalar 1299-color 296 21 459 \;;
+#X scalar 1299-color 301 21 460 \;;
+#X scalar 1299-color 306 21 461 \;;
+#X scalar 1299-color 311 21 462 \;;
+#X scalar 1299-color 316 21 463 \;;
+#X scalar 1299-color 321 21 464 \;;
+#X scalar 1299-color 326 21 465 \;;
+#X scalar 1299-color 331 21 466 \;;
+#X scalar 1299-color 336 21 467 \;;
+#X scalar 1299-color 341 21 468 \;;
+#X scalar 1299-color 346 21 469 \;;
+#X scalar 1299-color 351 21 470 \;;
+#X scalar 1299-color 356 21 471 \;;
+#X scalar 1299-color 361 21 472 \;;
+#X scalar 1299-color 366 21 473 \;;
+#X scalar 1299-color 371 21 474 \;;
+#X scalar 1299-color 376 21 475 \;;
+#X scalar 1299-color 381 21 476 \;;
+#X scalar 1299-color 386 21 477 \;;
+#X scalar 1299-color 391 21 478 \;;
+#X scalar 1299-color 396 21 479 \;;
+#X scalar 1299-color 401 21 480 \;;
+#X scalar 1299-color 406 21 481 \;;
+#X scalar 1299-color 411 21 482 \;;
+#X scalar 1299-color 416 21 483 \;;
+#X scalar 1299-color 421 21 484 \;;
+#X scalar 1299-color 426 21 485 \;;
+#X scalar 1299-color 431 21 486 \;;
+#X scalar 1299-color 436 21 487 \;;
+#X scalar 1299-color 441 21 488 \;;
+#X scalar 1299-color 446 21 489 \;;
+#X scalar 1299-color 451 21 490 \;;
+#X scalar 1299-color 456 21 491 \;;
+#X scalar 1299-color 461 21 492 \;;
+#X scalar 1299-color 466 21 493 \;;
+#X scalar 1299-color 471 21 494 \;;
+#X scalar 1299-color 476 21 495 \;;
+#X scalar 1299-color 481 21 496 \;;
+#X scalar 1299-color 486 21 497 \;;
+#X scalar 1299-color 491 21 498 \;;
+#X scalar 1299-color 496 21 499 \;;
+#X scalar 1299-color 1 26 500 \;;
+#X scalar 1299-color 6 26 501 \;;
+#X scalar 1299-color 11 26 502 \;;
+#X scalar 1299-color 16 26 503 \;;
+#X scalar 1299-color 21 26 504 \;;
+#X scalar 1299-color 26 26 505 \;;
+#X scalar 1299-color 31 26 506 \;;
+#X scalar 1299-color 36 26 507 \;;
+#X scalar 1299-color 41 26 508 \;;
+#X scalar 1299-color 46 26 509 \;;
+#X scalar 1299-color 51 26 510 \;;
+#X scalar 1299-color 56 26 511 \;;
+#X scalar 1299-color 61 26 512 \;;
+#X scalar 1299-color 66 26 513 \;;
+#X scalar 1299-color 71 26 514 \;;
+#X scalar 1299-color 76 26 515 \;;
+#X scalar 1299-color 81 26 516 \;;
+#X scalar 1299-color 86 26 517 \;;
+#X scalar 1299-color 91 26 518 \;;
+#X scalar 1299-color 96 26 519 \;;
+#X scalar 1299-color 101 26 520 \;;
+#X scalar 1299-color 106 26 521 \;;
+#X scalar 1299-color 111 26 522 \;;
+#X scalar 1299-color 116 26 523 \;;
+#X scalar 1299-color 121 26 524 \;;
+#X scalar 1299-color 126 26 525 \;;
+#X scalar 1299-color 131 26 526 \;;
+#X scalar 1299-color 136 26 527 \;;
+#X scalar 1299-color 141 26 528 \;;
+#X scalar 1299-color 146 26 529 \;;
+#X scalar 1299-color 151 26 530 \;;
+#X scalar 1299-color 156 26 531 \;;
+#X scalar 1299-color 161 26 532 \;;
+#X scalar 1299-color 166 26 533 \;;
+#X scalar 1299-color 171 26 534 \;;
+#X scalar 1299-color 176 26 535 \;;
+#X scalar 1299-color 181 26 536 \;;
+#X scalar 1299-color 186 26 537 \;;
+#X scalar 1299-color 191 26 538 \;;
+#X scalar 1299-color 196 26 539 \;;
+#X scalar 1299-color 201 26 540 \;;
+#X scalar 1299-color 206 26 541 \;;
+#X scalar 1299-color 211 26 542 \;;
+#X scalar 1299-color 216 26 543 \;;
+#X scalar 1299-color 221 26 544 \;;
+#X scalar 1299-color 226 26 545 \;;
+#X scalar 1299-color 231 26 546 \;;
+#X scalar 1299-color 236 26 547 \;;
+#X scalar 1299-color 241 26 548 \;;
+#X scalar 1299-color 246 26 549 \;;
+#X scalar 1299-color 251 26 550 \;;
+#X scalar 1299-color 256 26 551 \;;
+#X scalar 1299-color 261 26 552 \;;
+#X scalar 1299-color 266 26 553 \;;
+#X scalar 1299-color 271 26 554 \;;
+#X scalar 1299-color 276 26 555 \;;
+#X scalar 1299-color 281 26 556 \;;
+#X scalar 1299-color 286 26 557 \;;
+#X scalar 1299-color 291 26 558 \;;
+#X scalar 1299-color 296 26 559 \;;
+#X scalar 1299-color 301 26 560 \;;
+#X scalar 1299-color 306 26 561 \;;
+#X scalar 1299-color 311 26 562 \;;
+#X scalar 1299-color 316 26 563 \;;
+#X scalar 1299-color 321 26 564 \;;
+#X scalar 1299-color 326 26 565 \;;
+#X scalar 1299-color 331 26 566 \;;
+#X scalar 1299-color 336 26 567 \;;
+#X scalar 1299-color 341 26 568 \;;
+#X scalar 1299-color 346 26 569 \;;
+#X scalar 1299-color 351 26 570 \;;
+#X scalar 1299-color 356 26 571 \;;
+#X scalar 1299-color 361 26 572 \;;
+#X scalar 1299-color 366 26 573 \;;
+#X scalar 1299-color 371 26 574 \;;
+#X scalar 1299-color 376 26 575 \;;
+#X scalar 1299-color 381 26 576 \;;
+#X scalar 1299-color 386 26 577 \;;
+#X scalar 1299-color 391 26 578 \;;
+#X scalar 1299-color 396 26 579 \;;
+#X scalar 1299-color 401 26 580 \;;
+#X scalar 1299-color 406 26 581 \;;
+#X scalar 1299-color 411 26 582 \;;
+#X scalar 1299-color 416 26 583 \;;
+#X scalar 1299-color 421 26 584 \;;
+#X scalar 1299-color 426 26 585 \;;
+#X scalar 1299-color 431 26 586 \;;
+#X scalar 1299-color 436 26 587 \;;
+#X scalar 1299-color 441 26 588 \;;
+#X scalar 1299-color 446 26 589 \;;
+#X scalar 1299-color 451 26 590 \;;
+#X scalar 1299-color 456 26 591 \;;
+#X scalar 1299-color 461 26 592 \;;
+#X scalar 1299-color 466 26 593 \;;
+#X scalar 1299-color 471 26 594 \;;
+#X scalar 1299-color 476 26 595 \;;
+#X scalar 1299-color 481 26 596 \;;
+#X scalar 1299-color 486 26 597 \;;
+#X scalar 1299-color 491 26 598 \;;
+#X scalar 1299-color 496 26 599 \;;
+#X scalar 1299-color 1 31 600 \;;
+#X scalar 1299-color 6 31 601 \;;
+#X scalar 1299-color 11 31 602 \;;
+#X scalar 1299-color 16 31 603 \;;
+#X scalar 1299-color 21 31 604 \;;
+#X scalar 1299-color 26 31 605 \;;
+#X scalar 1299-color 31 31 606 \;;
+#X scalar 1299-color 36 31 607 \;;
+#X scalar 1299-color 41 31 608 \;;
+#X scalar 1299-color 46 31 609 \;;
+#X scalar 1299-color 51 31 610 \;;
+#X scalar 1299-color 56 31 611 \;;
+#X scalar 1299-color 61 31 612 \;;
+#X scalar 1299-color 66 31 613 \;;
+#X scalar 1299-color 71 31 614 \;;
+#X scalar 1299-color 76 31 615 \;;
+#X scalar 1299-color 81 31 616 \;;
+#X scalar 1299-color 86 31 617 \;;
+#X scalar 1299-color 91 31 618 \;;
+#X scalar 1299-color 96 31 619 \;;
+#X scalar 1299-color 101 31 620 \;;
+#X scalar 1299-color 106 31 621 \;;
+#X scalar 1299-color 111 31 622 \;;
+#X scalar 1299-color 116 31 623 \;;
+#X scalar 1299-color 121 31 624 \;;
+#X scalar 1299-color 126 31 625 \;;
+#X scalar 1299-color 131 31 626 \;;
+#X scalar 1299-color 136 31 627 \;;
+#X scalar 1299-color 141 31 628 \;;
+#X scalar 1299-color 146 31 629 \;;
+#X scalar 1299-color 151 31 630 \;;
+#X scalar 1299-color 156 31 631 \;;
+#X scalar 1299-color 161 31 632 \;;
+#X scalar 1299-color 166 31 633 \;;
+#X scalar 1299-color 171 31 634 \;;
+#X scalar 1299-color 176 31 635 \;;
+#X scalar 1299-color 181 31 636 \;;
+#X scalar 1299-color 186 31 637 \;;
+#X scalar 1299-color 191 31 638 \;;
+#X scalar 1299-color 196 31 639 \;;
+#X scalar 1299-color 201 31 640 \;;
+#X scalar 1299-color 206 31 641 \;;
+#X scalar 1299-color 211 31 642 \;;
+#X scalar 1299-color 216 31 643 \;;
+#X scalar 1299-color 221 31 644 \;;
+#X scalar 1299-color 226 31 645 \;;
+#X scalar 1299-color 231 31 646 \;;
+#X scalar 1299-color 236 31 647 \;;
+#X scalar 1299-color 241 31 648 \;;
+#X scalar 1299-color 246 31 649 \;;
+#X scalar 1299-color 251 31 650 \;;
+#X scalar 1299-color 256 31 651 \;;
+#X scalar 1299-color 261 31 652 \;;
+#X scalar 1299-color 266 31 653 \;;
+#X scalar 1299-color 271 31 654 \;;
+#X scalar 1299-color 276 31 655 \;;
+#X scalar 1299-color 281 31 656 \;;
+#X scalar 1299-color 286 31 657 \;;
+#X scalar 1299-color 291 31 658 \;;
+#X scalar 1299-color 296 31 659 \;;
+#X scalar 1299-color 301 31 660 \;;
+#X scalar 1299-color 306 31 661 \;;
+#X scalar 1299-color 311 31 662 \;;
+#X scalar 1299-color 316 31 663 \;;
+#X scalar 1299-color 321 31 664 \;;
+#X scalar 1299-color 326 31 665 \;;
+#X scalar 1299-color 331 31 666 \;;
+#X scalar 1299-color 336 31 667 \;;
+#X scalar 1299-color 341 31 668 \;;
+#X scalar 1299-color 346 31 669 \;;
+#X scalar 1299-color 351 31 670 \;;
+#X scalar 1299-color 356 31 671 \;;
+#X scalar 1299-color 361 31 672 \;;
+#X scalar 1299-color 366 31 673 \;;
+#X scalar 1299-color 371 31 674 \;;
+#X scalar 1299-color 376 31 675 \;;
+#X scalar 1299-color 381 31 676 \;;
+#X scalar 1299-color 386 31 677 \;;
+#X scalar 1299-color 391 31 678 \;;
+#X scalar 1299-color 396 31 679 \;;
+#X scalar 1299-color 401 31 680 \;;
+#X scalar 1299-color 406 31 681 \;;
+#X scalar 1299-color 411 31 682 \;;
+#X scalar 1299-color 416 31 683 \;;
+#X scalar 1299-color 421 31 684 \;;
+#X scalar 1299-color 426 31 685 \;;
+#X scalar 1299-color 431 31 686 \;;
+#X scalar 1299-color 436 31 687 \;;
+#X scalar 1299-color 441 31 688 \;;
+#X scalar 1299-color 446 31 689 \;;
+#X scalar 1299-color 451 31 690 \;;
+#X scalar 1299-color 456 31 691 \;;
+#X scalar 1299-color 461 31 692 \;;
+#X scalar 1299-color 466 31 693 \;;
+#X scalar 1299-color 471 31 694 \;;
+#X scalar 1299-color 476 31 695 \;;
+#X scalar 1299-color 481 31 696 \;;
+#X scalar 1299-color 486 31 697 \;;
+#X scalar 1299-color 491 31 698 \;;
+#X scalar 1299-color 496 31 699 \;;
+#X scalar 1299-color 1 36 700 \;;
+#X scalar 1299-color 6 36 701 \;;
+#X scalar 1299-color 11 36 702 \;;
+#X scalar 1299-color 16 36 703 \;;
+#X scalar 1299-color 21 36 704 \;;
+#X scalar 1299-color 26 36 705 \;;
+#X scalar 1299-color 31 36 706 \;;
+#X scalar 1299-color 36 36 707 \;;
+#X scalar 1299-color 41 36 708 \;;
+#X scalar 1299-color 46 36 709 \;;
+#X scalar 1299-color 51 36 710 \;;
+#X scalar 1299-color 56 36 711 \;;
+#X scalar 1299-color 61 36 712 \;;
+#X scalar 1299-color 66 36 713 \;;
+#X scalar 1299-color 71 36 714 \;;
+#X scalar 1299-color 76 36 715 \;;
+#X scalar 1299-color 81 36 716 \;;
+#X scalar 1299-color 86 36 717 \;;
+#X scalar 1299-color 91 36 718 \;;
+#X scalar 1299-color 96 36 719 \;;
+#X scalar 1299-color 101 36 720 \;;
+#X scalar 1299-color 106 36 721 \;;
+#X scalar 1299-color 111 36 722 \;;
+#X scalar 1299-color 116 36 723 \;;
+#X scalar 1299-color 121 36 724 \;;
+#X scalar 1299-color 126 36 725 \;;
+#X scalar 1299-color 131 36 726 \;;
+#X scalar 1299-color 136 36 727 \;;
+#X scalar 1299-color 141 36 728 \;;
+#X scalar 1299-color 146 36 729 \;;
+#X scalar 1299-color 151 36 730 \;;
+#X scalar 1299-color 156 36 731 \;;
+#X scalar 1299-color 161 36 732 \;;
+#X scalar 1299-color 166 36 733 \;;
+#X scalar 1299-color 171 36 734 \;;
+#X scalar 1299-color 176 36 735 \;;
+#X scalar 1299-color 181 36 736 \;;
+#X scalar 1299-color 186 36 737 \;;
+#X scalar 1299-color 191 36 738 \;;
+#X scalar 1299-color 196 36 739 \;;
+#X scalar 1299-color 201 36 740 \;;
+#X scalar 1299-color 206 36 741 \;;
+#X scalar 1299-color 211 36 742 \;;
+#X scalar 1299-color 216 36 743 \;;
+#X scalar 1299-color 221 36 744 \;;
+#X scalar 1299-color 226 36 745 \;;
+#X scalar 1299-color 231 36 746 \;;
+#X scalar 1299-color 236 36 747 \;;
+#X scalar 1299-color 241 36 748 \;;
+#X scalar 1299-color 246 36 749 \;;
+#X scalar 1299-color 251 36 750 \;;
+#X scalar 1299-color 256 36 751 \;;
+#X scalar 1299-color 261 36 752 \;;
+#X scalar 1299-color 266 36 753 \;;
+#X scalar 1299-color 271 36 754 \;;
+#X scalar 1299-color 276 36 755 \;;
+#X scalar 1299-color 281 36 756 \;;
+#X scalar 1299-color 286 36 757 \;;
+#X scalar 1299-color 291 36 758 \;;
+#X scalar 1299-color 296 36 759 \;;
+#X scalar 1299-color 301 36 760 \;;
+#X scalar 1299-color 306 36 761 \;;
+#X scalar 1299-color 311 36 762 \;;
+#X scalar 1299-color 316 36 763 \;;
+#X scalar 1299-color 321 36 764 \;;
+#X scalar 1299-color 326 36 765 \;;
+#X scalar 1299-color 331 36 766 \;;
+#X scalar 1299-color 336 36 767 \;;
+#X scalar 1299-color 341 36 768 \;;
+#X scalar 1299-color 346 36 769 \;;
+#X scalar 1299-color 351 36 770 \;;
+#X scalar 1299-color 356 36 771 \;;
+#X scalar 1299-color 361 36 772 \;;
+#X scalar 1299-color 366 36 773 \;;
+#X scalar 1299-color 371 36 774 \;;
+#X scalar 1299-color 376 36 775 \;;
+#X scalar 1299-color 381 36 776 \;;
+#X scalar 1299-color 386 36 777 \;;
+#X scalar 1299-color 391 36 778 \;;
+#X scalar 1299-color 396 36 779 \;;
+#X scalar 1299-color 401 36 780 \;;
+#X scalar 1299-color 406 36 781 \;;
+#X scalar 1299-color 411 36 782 \;;
+#X scalar 1299-color 416 36 783 \;;
+#X scalar 1299-color 421 36 784 \;;
+#X scalar 1299-color 426 36 785 \;;
+#X scalar 1299-color 431 36 786 \;;
+#X scalar 1299-color 436 36 787 \;;
+#X scalar 1299-color 441 36 788 \;;
+#X scalar 1299-color 446 36 789 \;;
+#X scalar 1299-color 451 36 790 \;;
+#X scalar 1299-color 456 36 791 \;;
+#X scalar 1299-color 461 36 792 \;;
+#X scalar 1299-color 466 36 793 \;;
+#X scalar 1299-color 471 36 794 \;;
+#X scalar 1299-color 476 36 795 \;;
+#X scalar 1299-color 481 36 796 \;;
+#X scalar 1299-color 486 36 797 \;;
+#X scalar 1299-color 491 36 798 \;;
+#X scalar 1299-color 496 36 799 \;;
+#X scalar 1299-color 1 41 800 \;;
+#X scalar 1299-color 6 41 801 \;;
+#X scalar 1299-color 11 41 802 \;;
+#X scalar 1299-color 16 41 803 \;;
+#X scalar 1299-color 21 41 804 \;;
+#X scalar 1299-color 26 41 805 \;;
+#X scalar 1299-color 31 41 806 \;;
+#X scalar 1299-color 36 41 807 \;;
+#X scalar 1299-color 41 41 808 \;;
+#X scalar 1299-color 46 41 809 \;;
+#X scalar 1299-color 51 41 810 \;;
+#X scalar 1299-color 56 41 811 \;;
+#X scalar 1299-color 61 41 812 \;;
+#X scalar 1299-color 66 41 813 \;;
+#X scalar 1299-color 71 41 814 \;;
+#X scalar 1299-color 76 41 815 \;;
+#X scalar 1299-color 81 41 816 \;;
+#X scalar 1299-color 86 41 817 \;;
+#X scalar 1299-color 91 41 818 \;;
+#X scalar 1299-color 96 41 819 \;;
+#X scalar 1299-color 101 41 820 \;;
+#X scalar 1299-color 106 41 821 \;;
+#X scalar 1299-color 111 41 822 \;;
+#X scalar 1299-color 116 41 823 \;;
+#X scalar 1299-color 121 41 824 \;;
+#X scalar 1299-color 126 41 825 \;;
+#X scalar 1299-color 131 41 826 \;;
+#X scalar 1299-color 136 41 827 \;;
+#X scalar 1299-color 141 41 828 \;;
+#X scalar 1299-color 146 41 829 \;;
+#X scalar 1299-color 151 41 830 \;;
+#X scalar 1299-color 156 41 831 \;;
+#X scalar 1299-color 161 41 832 \;;
+#X scalar 1299-color 166 41 833 \;;
+#X scalar 1299-color 171 41 834 \;;
+#X scalar 1299-color 176 41 835 \;;
+#X scalar 1299-color 181 41 836 \;;
+#X scalar 1299-color 186 41 837 \;;
+#X scalar 1299-color 191 41 838 \;;
+#X scalar 1299-color 196 41 839 \;;
+#X scalar 1299-color 201 41 840 \;;
+#X scalar 1299-color 206 41 841 \;;
+#X scalar 1299-color 211 41 842 \;;
+#X scalar 1299-color 216 41 843 \;;
+#X scalar 1299-color 221 41 844 \;;
+#X scalar 1299-color 226 41 845 \;;
+#X scalar 1299-color 231 41 846 \;;
+#X scalar 1299-color 236 41 847 \;;
+#X scalar 1299-color 241 41 848 \;;
+#X scalar 1299-color 246 41 849 \;;
+#X scalar 1299-color 251 41 850 \;;
+#X scalar 1299-color 256 41 851 \;;
+#X scalar 1299-color 261 41 852 \;;
+#X scalar 1299-color 266 41 853 \;;
+#X scalar 1299-color 271 41 854 \;;
+#X scalar 1299-color 276 41 855 \;;
+#X scalar 1299-color 281 41 856 \;;
+#X scalar 1299-color 286 41 857 \;;
+#X scalar 1299-color 291 41 858 \;;
+#X scalar 1299-color 296 41 859 \;;
+#X scalar 1299-color 301 41 860 \;;
+#X scalar 1299-color 306 41 861 \;;
+#X scalar 1299-color 311 41 862 \;;
+#X scalar 1299-color 316 41 863 \;;
+#X scalar 1299-color 321 41 864 \;;
+#X scalar 1299-color 326 41 865 \;;
+#X scalar 1299-color 331 41 866 \;;
+#X scalar 1299-color 336 41 867 \;;
+#X scalar 1299-color 341 41 868 \;;
+#X scalar 1299-color 346 41 869 \;;
+#X scalar 1299-color 351 41 870 \;;
+#X scalar 1299-color 356 41 871 \;;
+#X scalar 1299-color 361 41 872 \;;
+#X scalar 1299-color 366 41 873 \;;
+#X scalar 1299-color 371 41 874 \;;
+#X scalar 1299-color 376 41 875 \;;
+#X scalar 1299-color 381 41 876 \;;
+#X scalar 1299-color 386 41 877 \;;
+#X scalar 1299-color 391 41 878 \;;
+#X scalar 1299-color 396 41 879 \;;
+#X scalar 1299-color 401 41 880 \;;
+#X scalar 1299-color 406 41 881 \;;
+#X scalar 1299-color 411 41 882 \;;
+#X scalar 1299-color 416 41 883 \;;
+#X scalar 1299-color 421 41 884 \;;
+#X scalar 1299-color 426 41 885 \;;
+#X scalar 1299-color 431 41 886 \;;
+#X scalar 1299-color 436 41 887 \;;
+#X scalar 1299-color 441 41 888 \;;
+#X scalar 1299-color 446 41 889 \;;
+#X scalar 1299-color 451 41 890 \;;
+#X scalar 1299-color 456 41 891 \;;
+#X scalar 1299-color 461 41 892 \;;
+#X scalar 1299-color 466 41 893 \;;
+#X scalar 1299-color 471 41 894 \;;
+#X scalar 1299-color 476 41 895 \;;
+#X scalar 1299-color 481 41 896 \;;
+#X scalar 1299-color 486 41 897 \;;
+#X scalar 1299-color 491 41 898 \;;
+#X scalar 1299-color 496 41 899 \;;
+#X scalar 1299-color 1 46 900 \;;
+#X scalar 1299-color 6 46 901 \;;
+#X scalar 1299-color 11 46 902 \;;
+#X scalar 1299-color 16 46 903 \;;
+#X scalar 1299-color 21 46 904 \;;
+#X scalar 1299-color 26 46 905 \;;
+#X scalar 1299-color 31 46 906 \;;
+#X scalar 1299-color 36 46 907 \;;
+#X scalar 1299-color 41 46 908 \;;
+#X scalar 1299-color 46 46 909 \;;
+#X scalar 1299-color 51 46 910 \;;
+#X scalar 1299-color 56 46 911 \;;
+#X scalar 1299-color 61 46 912 \;;
+#X scalar 1299-color 66 46 913 \;;
+#X scalar 1299-color 71 46 914 \;;
+#X scalar 1299-color 76 46 915 \;;
+#X scalar 1299-color 81 46 916 \;;
+#X scalar 1299-color 86 46 917 \;;
+#X scalar 1299-color 91 46 918 \;;
+#X scalar 1299-color 96 46 919 \;;
+#X scalar 1299-color 101 46 920 \;;
+#X scalar 1299-color 106 46 921 \;;
+#X scalar 1299-color 111 46 922 \;;
+#X scalar 1299-color 116 46 923 \;;
+#X scalar 1299-color 121 46 924 \;;
+#X scalar 1299-color 126 46 925 \;;
+#X scalar 1299-color 131 46 926 \;;
+#X scalar 1299-color 136 46 927 \;;
+#X scalar 1299-color 141 46 928 \;;
+#X scalar 1299-color 146 46 929 \;;
+#X scalar 1299-color 151 46 930 \;;
+#X scalar 1299-color 156 46 931 \;;
+#X scalar 1299-color 161 46 932 \;;
+#X scalar 1299-color 166 46 933 \;;
+#X scalar 1299-color 171 46 934 \;;
+#X scalar 1299-color 176 46 935 \;;
+#X scalar 1299-color 181 46 936 \;;
+#X scalar 1299-color 186 46 937 \;;
+#X scalar 1299-color 191 46 938 \;;
+#X scalar 1299-color 196 46 939 \;;
+#X scalar 1299-color 201 46 940 \;;
+#X scalar 1299-color 206 46 941 \;;
+#X scalar 1299-color 211 46 942 \;;
+#X scalar 1299-color 216 46 943 \;;
+#X scalar 1299-color 221 46 944 \;;
+#X scalar 1299-color 226 46 945 \;;
+#X scalar 1299-color 231 46 946 \;;
+#X scalar 1299-color 236 46 947 \;;
+#X scalar 1299-color 241 46 948 \;;
+#X scalar 1299-color 246 46 949 \;;
+#X scalar 1299-color 251 46 950 \;;
+#X scalar 1299-color 256 46 951 \;;
+#X scalar 1299-color 261 46 952 \;;
+#X scalar 1299-color 266 46 953 \;;
+#X scalar 1299-color 271 46 954 \;;
+#X scalar 1299-color 276 46 955 \;;
+#X scalar 1299-color 281 46 956 \;;
+#X scalar 1299-color 286 46 957 \;;
+#X scalar 1299-color 291 46 958 \;;
+#X scalar 1299-color 296 46 959 \;;
+#X scalar 1299-color 301 46 960 \;;
+#X scalar 1299-color 306 46 961 \;;
+#X scalar 1299-color 311 46 962 \;;
+#X scalar 1299-color 316 46 963 \;;
+#X scalar 1299-color 321 46 964 \;;
+#X scalar 1299-color 326 46 965 \;;
+#X scalar 1299-color 331 46 966 \;;
+#X scalar 1299-color 336 46 967 \;;
+#X scalar 1299-color 341 46 968 \;;
+#X scalar 1299-color 346 46 969 \;;
+#X scalar 1299-color 351 46 970 \;;
+#X scalar 1299-color 356 46 971 \;;
+#X scalar 1299-color 361 46 972 \;;
+#X scalar 1299-color 366 46 973 \;;
+#X scalar 1299-color 371 46 974 \;;
+#X scalar 1299-color 376 46 975 \;;
+#X scalar 1299-color 381 46 976 \;;
+#X scalar 1299-color 386 46 977 \;;
+#X scalar 1299-color 391 46 978 \;;
+#X scalar 1299-color 396 46 979 \;;
+#X scalar 1299-color 401 46 980 \;;
+#X scalar 1299-color 406 46 981 \;;
+#X scalar 1299-color 411 46 982 \;;
+#X scalar 1299-color 416 46 983 \;;
+#X scalar 1299-color 421 46 984 \;;
+#X scalar 1299-color 426 46 985 \;;
+#X scalar 1299-color 431 46 986 \;;
+#X scalar 1299-color 436 46 987 \;;
+#X scalar 1299-color 441 46 988 \;;
+#X scalar 1299-color 446 46 989 \;;
+#X scalar 1299-color 451 46 990 \;;
+#X scalar 1299-color 456 46 991 \;;
+#X scalar 1299-color 461 46 992 \;;
+#X scalar 1299-color 466 46 993 \;;
+#X scalar 1299-color 471 46 994 \;;
+#X scalar 1299-color 476 46 995 \;;
+#X scalar 1299-color 481 46 996 \;;
+#X scalar 1299-color 486 46 997 \;;
+#X scalar 1299-color 491 46 998 \;;
+#X scalar 1299-color 496 46 999 \;;
+#X coords 0 0 502 52 502 52 2 0 0;
+#X restore 10 10 pd \$0-farben-datas;
+#X obj 15 164 outlet;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2006 \, Joã Pais;
+#X restore 225 175 pd license;
+#X text 369 91 Outlets;
+#X text 222 157 (C) 2013 João Pais - jmmmpais@googlemail.com;
+#X text 11 91 [ds-color-sel] - color selector for data structures;
+#X text 369 112 - selected color number;
+#N canvas 693 562 286 304 generate 0;
+#X obj 20 135 f;
+#X obj 45 135 + 1;
+#X obj 20 85 until;
+#X msg 35 115 0;
+#X msg 20 65 1000;
+#X msg 101 65 clear;
+#X obj 101 85 s pd-\$0-farben-datas;
+#X obj 20 276 s pd-\$0-farben-datas;
+#X obj 89 215 symbol \$0-color;
+#X obj 20 195 expr ($f1 * 5) % 500 + 1;
+#X obj 20 235 pack f f f s;
+#X msg 20 256 scalar \$4 \$1 \$2 \$3;
+#X obj 20 155 t f f f;
+#X obj 39 175 expr ($f1 - ($f1 % 100)) * 0.05 + 1;
+#X obj 20 35 t b b b b;
+#X obj 20 15 lbang;
+#X connect 0 0 1 0;
+#X connect 0 0 12 0;
+#X connect 1 0 0 1;
+#X connect 2 0 0 0;
+#X connect 3 0 0 1;
+#X connect 4 0 2 0;
+#X connect 5 0 6 0;
+#X connect 8 0 10 3;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 7 0;
+#X connect 12 0 9 0;
+#X connect 12 1 13 0;
+#X connect 12 2 10 2;
+#X connect 13 0 10 1;
+#X connect 14 0 4 0;
+#X connect 14 1 3 0;
+#X connect 14 2 8 0;
+#X connect 14 3 5 0;
+#X connect 15 0 14 0;
+#X restore 15 114 pd generate;
+#N canvas 742 414 357 396 farben-display 0;
+#X obj 10 11 struct \$0-color-display float x float y float farbe;
+#X obj 129 181 pack f f f s;
+#X msg 129 202 scalar \$4 \$1 \$2 \$3;
+#X obj 198 161 symbol \$0-color-display;
+#X obj 198 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 129 222 s \$0-ds-color-sel;
+#X obj 110 302 pointer \$0-color-display;
+#X obj 110 262 symbol \$0-ds-color-sel;
+#X msg 110 282 traverse \$1 \, bang \, next;
+#X obj 110 71 lbang;
+#X obj 10 332 set \$0-color-display farbe;
+#X obj 10 312 inlet;
+#X obj 110 91 t b b b;
+#X text 11 356 apagar o struct antes de gravar o patch. nao mudar o
+tamanho da janela;
+#X obj 10 41 filledpolygon farbe farbe 0 0 0 0 16 458 16 458 0 0 0
+;
+#X msg 129 121 42.5675 53.25 999;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
+#X connect 3 0 1 3;
+#X connect 4 0 3 0;
+#X connect 6 0 10 1;
+#X connect 7 0 8 0;
+#X connect 8 0 6 0;
+#X connect 9 0 12 0;
+#X connect 11 0 10 0;
+#X connect 12 0 7 0;
+#X connect 12 1 15 0;
+#X connect 12 2 4 0;
+#X connect 15 0 1 0;
+#X restore 65 164 pd farben-display;
+#X obj 155 114 namecanvas \$0-ds-color-sel;
+#X obj 13 65 nbx 3 14 -1e+037 1e+037 0 0 \$0-color-label \$0-color-label-i
+empty 0 -8 0 10 -228856 -1 -1 340 256;
+#X connect 0 0 11 0;
+#X connect 11 0 2 0;
+#X connect 11 0 9 0;
+#X coords 0 0 502 71 502 72 2 10 10;
diff --git a/abstractions/jmmmp/dsp01-help.pd b/abstractions/jmmmp/dsp01-help.pd
index 6a49d05c0..2047425ac 100644
--- a/abstractions/jmmmp/dsp01-help.pd
+++ b/abstractions/jmmmp/dsp01-help.pd
@@ -1,19 +1,35 @@
 #N canvas 101 86 422 283 10;
 #X obj 36 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
 ;
-#X text 12 207 (C) 2006 João Pais - jmmmpais@googlemail.com;
+#X text 12 217 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X msg 56 89 bang;
-#X text 16 227 Adapted from H-C Steiner's dsp abstraction;
-#X text 260 100 Inlets;
-#X text 260 150 GUI;
-#X text 260 170 - Click on it;
-#X text 260 120 - Bang / Number;
-#X text 260 50 Arguments;
-#X text 260 70 - DSP state (1/0);
+#X text 16 237 Adapted from H-C Steiner's dsp abstraction;
+#X text 260 80 Inlets;
+#X text 260 160 GUI;
+#X text 260 180 - Click on it;
+#X text 260 100 - Bang / Number;
+#X text 260 30 Arguments;
+#X text 260 50 - DSP state (1/0);
 #X text 92 89 On / Off;
 #X text 107 118 <- Or click on it;
 #X obj 36 119 dsp01;
 #X text 12 10 [dsp01] - DSP switch;
-#X text 16 247 Released under the BSD License;
+#X text 16 257 Released under the BSD License;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 12 5 DESCRIPTION DSP switch;
+#X text 12 35 KEYWORDS DSP;
+#X text 14 165 INLET_0 - Bang / Number;
+#X text 14 185 OUTLET_0 - Number (0 / x);
+#X restore 362 256 pd META;
+#X obj 36 149 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 260 120 Outlets;
+#X text 260 140 - Number (0 / x);
 #X connect 0 0 12 0;
 #X connect 2 0 12 0;
+#X connect 12 0 16 0;
diff --git a/abstractions/jmmmp/dsp01.pd b/abstractions/jmmmp/dsp01.pd
index 45abac3ea..82669fde5 100644
--- a/abstractions/jmmmp/dsp01.pd
+++ b/abstractions/jmmmp/dsp01.pd
@@ -42,7 +42,6 @@ in the documentation and/or other materials provided with the distribution.
 #X restore 15 298 pd license;
 #X obj 136 111 init \$1;
 #X text 350 100 Inlets;
-#X text 350 120 - Bang / Number;
 #X text 350 50 Arguments;
 #X text 350 70 - DSP state (1/0);
 #X obj 14 131 bang;
@@ -55,20 +54,21 @@ in the documentation and/or other materials provided with the distribution.
 #X text 350 220 - Click on it;
 #X text 350 150 Outlets;
 #X text 350 170 - Number (0 / x);
+#X text 350 120 - Bang / Number;
 #X connect 1 0 0 0;
 #X connect 2 0 3 0;
 #X connect 3 0 7 0;
 #X connect 3 0 9 0;
 #X connect 4 0 1 0;
 #X connect 4 0 9 0;
-#X connect 4 0 23 0;
-#X connect 5 0 18 0;
+#X connect 4 0 22 0;
+#X connect 5 0 17 0;
 #X connect 7 0 4 0;
-#X connect 9 0 21 0;
-#X connect 9 1 22 0;
+#X connect 9 0 20 0;
+#X connect 9 1 21 0;
 #X connect 10 0 4 0;
 #X connect 13 0 4 0;
-#X connect 18 0 4 0;
+#X connect 17 0 4 0;
+#X connect 20 0 8 0;
 #X connect 21 0 8 0;
-#X connect 22 0 8 0;
 #X coords 0 -1 1 1 62 17 1 13 110;
diff --git a/abstractions/jmmmp/examples/rgb.ppm b/abstractions/jmmmp/examples/rgb.ppm
new file mode 100644
index 000000000..e56132ce6
--- /dev/null
+++ b/abstractions/jmmmp/examples/rgb.ppm
@@ -0,0 +1,636 @@
+P6
+# CREATOR: GIMP PNM Filter Version 1.1
+258 65
+255
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûÿûûÿûûÿûûÿûûÿûûÿúûÿûûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿûûÿüûÿýûÿýûÿýûÿýûÿýûÿýûÿüûÿýûÿþûÿþûÿþûÿþûÿþûÿþûÿþûÿýûÿþûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûþÿûýÿûþÿûþÿûþÿûþÿûþÿûþÿûþÿûþÿûýÿûüÿûýÿûýÿûýÿûýÿûýÿûýÿûüÿûûÿûüÿûüÿûüÿûüÿûüÿûüÿûüÿûüÿûûÿûúÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿúûÿûûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿûûÿüûÿýûÿýûÿýûÿýûÿýûÿýûÿýûÿüûÿýûÿþûÿþûÿþûÿþûÿþûÿþûÿþûÿþûÿþûÿýûÿþûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûþÿûýÿûþÿûþÿûþÿûþÿûþÿûþÿûþÿûþÿûýÿûüÿûýÿûýÿûýÿûýÿûýÿûýÿûüÿûûÿûüÿûüÿûüÿûüÿûüÿûüÿûüÿûûÿûúÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿûûÿúûÿûûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿüûÿûûÿüûÿýûÿýûÿýûÿýûÿýûÿýûÿýûÿüûÿýûÿþûÿþûÿþûÿþûÿþûÿþûÿþûÿþûÿýûÿþûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûÿÿûþÿûýÿûþÿûþÿûþÿûþÿûþÿûþÿûýÿûüÿûýÿûýÿûýÿûýÿûýÿûýÿûüÿûûÿûüÿûüÿûüÿûüÿûüÿûüÿûüÿûûÿûúÿûûÿûûÿûûÿûûÿûûÿûûÿõõÿõõÿõõÿôõÿõõÿöõÿöõÿöõÿõõÿöõÿ÷õÿöõÿ÷õÿøõÿøõÿ÷õÿøõÿùõÿøõÿùõÿúõÿúõÿùõÿúõÿûõÿúõÿûõÿüõÿûõÿüõÿýõÿýõÿüõÿýõÿþõÿþõÿþõÿýõÿþõÿÿõÿÿõÿÿõÿÿõÿÿõÿÿõþÿõýÿõþÿõþÿõþÿõýÿõüÿõýÿõýÿõüÿõûÿõüÿõüÿõûÿõúÿõûÿõúÿõùÿõúÿõúÿõùÿõøÿõùÿõøÿõ÷ÿõøÿõøÿõ÷ÿõöÿõ÷ÿõ÷ÿõöÿõõÿõöÿõöÿõöÿõõÿõôÿõõÿõõÿõõÿõõÿõõÿôõÿõõÿöõÿöõÿöõÿöõÿõõÿöõÿ÷õÿ÷õÿöõÿ÷õÿøõÿøõÿ÷õÿøõÿùõÿùõÿøõÿùõÿúõÿùõÿúõÿûõÿûõÿúõÿûõÿüõÿüõÿûõÿüõÿýõÿýõÿüõÿýõÿþõÿþõÿþõÿþõÿýõÿþõÿÿõÿÿõÿÿõÿÿõÿÿõÿÿõÿÿõþÿõýÿõþÿõþÿõþÿõýÿõüÿõýÿõüÿõûÿõüÿõüÿõûÿõúÿõûÿõúÿõùÿõúÿõúÿõùÿõøÿõùÿõøÿõ÷ÿõøÿõ÷ÿõöÿõ÷ÿõ÷ÿõöÿõõÿõöÿõöÿõöÿõõÿõôÿõõÿõõÿõõÿõõÿôõÿõõÿöõÿöõÿöõÿõõÿöõÿ÷õÿ÷õÿ÷õÿöõÿ÷õÿøõÿøõÿ÷õÿøõÿùõÿøõÿùõÿúõÿúõÿùõÿúõÿûõÿûõÿúõÿûõÿüõÿüõÿûõÿüõÿýõÿýõÿüõÿýõÿþõÿþõÿþõÿþõÿýõÿþõÿÿõÿÿõÿÿõÿÿõÿÿõÿÿõþÿõýÿõþÿõþÿõþÿõýÿõüÿõýÿõüÿõûÿõüÿõüÿõûÿõúÿõûÿõúÿõùÿõúÿõùÿõøÿõùÿõøÿõ÷ÿõøÿõ÷ÿõöÿõ÷ÿõ÷ÿõöÿõõÿõöÿõöÿõõÿõôÿõõÿõõÿõõÿïïÿïïÿîïÿïïÿðïÿïïÿðïÿñïÿðïÿñïÿñïÿòïÿóïÿòïÿóïÿóïÿôïÿôïÿõïÿõïÿöïÿöïÿ÷ïÿ÷ïÿøïÿøïÿùïÿùïÿúïÿûïÿúïÿûïÿûïÿüïÿýïÿüïÿýïÿþïÿýïÿþïÿÿïÿÿïÿÿïþÿïýÿïþÿïþÿïýÿïüÿïýÿïüÿïûÿïüÿïûÿïûÿïúÿïúÿïùÿïøÿïùÿïøÿïøÿï÷ÿï÷ÿïöÿïõÿïõÿïôÿïôÿïóÿïôÿïóÿïòÿïòÿïñÿïòÿïñÿïðÿïñÿïðÿïïÿïðÿïïÿïîÿïïÿïïÿïïÿîïÿïïÿðïÿðïÿïïÿðïÿñïÿðïÿñïÿòïÿñïÿòïÿóïÿóïÿôïÿóïÿôïÿõïÿõïÿöïÿöïÿ÷ïÿöïÿ÷ïÿøïÿøïÿùïÿùïÿúïÿùïÿúïÿûïÿûïÿüïÿûïÿüïÿýïÿüïÿýïÿþïÿþïÿýïÿþïÿþïÿÿïÿÿïÿÿïÿÿïþÿïýÿïþÿïýÿïüÿïýÿïüÿïüÿïûÿïúÿïûÿïúÿïúÿïùÿïùÿïøÿïøÿï÷ÿï÷ÿïöÿïöÿïõÿïõÿïôÿïôÿïóÿïòÿïóÿïòÿïòÿïñÿïðÿïñÿïðÿïïÿïðÿïïÿïîÿïïÿïïÿîïÿïïÿðïÿðïÿïïÿðïÿñïÿðïÿñïÿñïÿòïÿóïÿòïÿóïÿóïÿôïÿõïÿôïÿõïÿöïÿöïÿ÷ïÿ÷ïÿøïÿ÷ïÿøïÿùïÿùïÿúïÿùïÿúïÿûïÿûïÿüïÿûïÿüïÿýïÿüïÿýïÿþïÿþïÿýïÿþïÿÿïÿÿïÿÿïÿÿïþÿïýÿïþÿïýÿïüÿïýÿïüÿïûÿïûÿïúÿïûÿïúÿïùÿïùÿïøÿï÷ÿï÷ÿïöÿïöÿïõÿïõÿïôÿïôÿïóÿïóÿïòÿïòÿïñÿïòÿïñÿïðÿïðÿïïÿïðÿïðÿïïÿïîÿïïÿèéÿèéÿééÿêéÿééÿêéÿêéÿëéÿëéÿìéÿìéÿíéÿîéÿîéÿïéÿïéÿðéÿñéÿñéÿòéÿóéÿóéÿôéÿõéÿõéÿöéÿ÷éÿ÷éÿøéÿùéÿùéÿúéÿúéÿûéÿûéÿüéÿüéÿýéÿþéÿýéÿþéÿÿéÿÿéþÿéýÿéþÿéýÿéýÿéüÿéüÿéûÿéûÿéúÿéúÿéùÿéùÿéøÿé÷ÿé÷ÿéöÿéöÿéõÿéôÿéôÿéóÿéòÿéñÿéñÿéðÿéðÿéïÿéîÿéîÿéíÿéíÿéìÿéìÿéëÿéëÿéêÿéêÿééÿéêÿééÿéèÿééÿèéÿééÿêéÿééÿêéÿëéÿêéÿëéÿìéÿìéÿíéÿíéÿîéÿîéÿïéÿïéÿðéÿðéÿñéÿòéÿòéÿóéÿóéÿôéÿõéÿõéÿöéÿöéÿ÷éÿ÷éÿøéÿùéÿùéÿúéÿúéÿûéÿûéÿüéÿüéÿýéÿüéÿýéÿþéÿýéÿýéÿþéÿÿéÿÿéþÿéýÿéþÿéýÿéýÿéüÿéüÿéûÿéûÿéúÿéùÿéùÿéøÿéøÿé÷ÿéöÿéöÿéõÿéôÿéôÿéóÿéòÿéòÿéñÿéðÿéðÿéïÿéîÿéîÿéíÿéíÿéìÿéìÿéëÿéëÿéêÿééÿéêÿééÿéèÿèéÿééÿêéÿééÿêéÿëéÿêéÿëéÿëéÿìéÿìéÿíéÿíéÿîéÿîéÿïéÿðéÿðéÿñéÿñéÿòéÿóéÿôéÿôéÿõéÿõéÿöéÿöéÿ÷éÿøéÿøéÿùéÿùéÿúéÿúéÿûéÿûéÿüéÿüéÿýéÿýéÿþéÿþéÿýéÿþéÿÿéÿÿéÿÿéþÿéýÿéýÿéüÿéüÿéûÿéûÿéúÿéúÿéùÿéøÿéøÿé÷ÿéöÿéöÿéõÿéôÿéôÿéóÿéòÿéñÿéñÿéðÿéïÿéïÿéîÿéíÿéíÿéìÿéìÿéëÿéêÿéêÿééÿéêÿééÿéèÿééÿáâÿáâÿââÿââÿãâÿãâÿäâÿåâÿåâÿæâÿçâÿçâÿèâÿéâÿêâÿëâÿìâÿìâÿíâÿîâÿïâÿðâÿñâÿòâÿóâÿôâÿôâÿõâÿöâÿ÷âÿøâÿøâÿùâÿúâÿúâÿûâÿüâÿüâÿýâÿýâÿþâÿÿâÿÿâþÿâþÿâýÿâýÿâüÿâûÿâûÿâúÿâúÿâùÿâøÿâ÷ÿâ÷ÿâöÿâõÿâôÿâóÿâòÿâòÿâñÿâðÿâïÿâîÿâíÿâíÿâìÿâëÿâêÿâéÿâéÿâèÿâçÿâæÿâæÿâåÿâäÿâäÿâãÿâãÿââÿââÿâáÿââÿáâÿââÿãâÿââÿãâÿäâÿåâÿåâÿæâÿæâÿçâÿçâÿèâÿéâÿêâÿêâÿëâÿìâÿìâÿíâÿîâÿïâÿðâÿðâÿñâÿòâÿóâÿôâÿôâÿõâÿöâÿ÷âÿ÷âÿøâÿùâÿùâÿúâÿûâÿûâÿüâÿüâÿýâÿýâÿþâÿýâÿþâÿÿâÿÿâþÿâþÿâýÿâýÿâüÿâûÿâûÿâúÿâùÿâùÿâøÿâ÷ÿâöÿâõÿâôÿâôÿâóÿâòÿâñÿâðÿâïÿâîÿâíÿâìÿâìÿâëÿâêÿâéÿâèÿâèÿâçÿâæÿâæÿâåÿâäÿâäÿâãÿâãÿââÿâáÿáâÿââÿââÿãâÿãâÿäâÿäâÿåâÿåâÿæâÿçâÿçâÿèâÿéâÿêâÿêâÿëâÿìâÿìâÿíâÿîâÿïâÿðâÿñâÿñâÿòâÿóâÿôâÿõâÿõâÿöâÿ÷âÿ÷âÿøâÿùâÿúâÿúâÿûâÿûâÿüâÿüâÿýâÿþâÿýâÿþâÿÿâÿÿâþÿâýÿâþÿâýÿâüÿâûÿâûÿâúÿâùÿâøÿâøÿâ÷ÿâöÿâõÿâôÿâóÿâòÿâñÿâðÿâïÿâîÿâîÿâíÿâìÿâëÿâêÿâéÿâèÿâçÿâæÿâæÿâåÿâäÿâäÿâãÿââÿââÿâáÿââÿÙÚÿÙÚÿÚÚÿÛÚÿÛÚÿÜÚÿÝÚÿÞÚÿßÚÿßÚÿàÚÿáÚÿâÚÿãÚÿäÚÿåÚÿçÚÿèÚÿéÚÿêÚÿëÚÿìÚÿíÚÿîÚÿðÚÿñÚÿòÚÿóÚÿôÚÿõÚÿöÚÿ÷ÚÿøÚÿùÚÿúÚÿúÚÿûÚÿüÚÿýÚÿýÚÿþÚÿÿÚþÿÚþÿÚýÿÚýÿÚüÿÚûÿÚûÿÚúÿÚùÿÚøÿÚ÷ÿÚöÿÚõÿÚôÿÚóÿÚòÿÚñÿÚðÿÚïÿÚîÿÚíÿÚìÿÚëÿÚêÿÚéÿÚèÿÚçÿÚæÿÚåÿÚäÿÚãÿÚâÿÚáÿÚàÿÚßÿÚÞÿÚÝÿÚÝÿÚÜÿÚÛÿÚÛÿÚÚÿÚÚÿÚÙÿÙÚÿÚÚÿÛÚÿÛÚÿÜÚÿÝÚÿÝÚÿÞÚÿßÚÿßÚÿàÚÿáÚÿâÚÿãÚÿäÚÿåÚÿåÚÿæÚÿçÚÿèÚÿéÚÿêÚÿëÚÿìÚÿíÚÿîÚÿïÚÿðÚÿñÚÿòÚÿóÚÿôÚÿõÚÿöÚÿ÷ÚÿøÚÿùÚÿùÚÿúÚÿûÚÿüÚÿüÚÿýÚÿþÚÿýÚÿþÚÿÿÚÿÿÚþÿÚýÿÚýÿÚüÿÚûÿÚúÿÚùÿÚùÿÚøÿÚ÷ÿÚöÿÚõÿÚôÿÚóÿÚòÿÚðÿÚïÿÚîÿÚíÿÚìÿÚëÿÚêÿÚèÿÚçÿÚæÿÚåÿÚäÿÚãÿÚâÿÚáÿÚàÿÚßÿÚÞÿÚÞÿÚÝÿÚÜÿÚÛÿÚÛÿÚÚÿÙÙÿÚÚÿÚÚÿÛÚÿÛÚÿÜÚÿÜÚÿÝÚÿÞÚÿßÚÿßÚÿàÚÿáÚÿâÚÿãÚÿäÚÿåÚÿæÚÿçÚÿèÚÿéÚÿêÚÿëÚÿìÚÿíÚÿîÚÿïÚÿðÚÿñÚÿòÚÿóÚÿôÚÿõÚÿõÚÿöÚÿ÷ÚÿøÚÿùÚÿúÚÿûÚÿûÚÿüÚÿýÚÿýÚÿþÚÿþÚÿÿÚÿÿÚþÿÚýÿÚýÿÚüÿÚûÿÚûÿÚúÿÚùÿÚøÿÚ÷ÿÚöÿÚõÿÚôÿÚóÿÚñÿÚðÿÚïÿÚîÿÚíÿÚëÿÚêÿÚéÿÚèÿÚçÿÚåÿÚäÿÚãÿÚâÿÚáÿÚàÿÚßÿÚÞÿÚÝÿÚÜÿÚÛÿÚÛÿÚÚÿÚÚÿÚÙÿÑÒÿÒÒÿÒÒÿÓÒÿÔÒÿÕÒÿÖÒÿ×ÒÿØÒÿÙÒÿÚÒÿÛÒÿÜÒÿÞÒÿßÒÿàÒÿâÒÿãÒÿäÒÿæÒÿçÒÿèÒÿêÒÿëÒÿíÒÿîÒÿïÒÿðÒÿòÒÿóÒÿôÒÿõÒÿöÒÿøÒÿùÒÿúÒÿúÒÿûÒÿüÒÿýÒÿþÒÿÿÒþÿÒþÿÒýÿÒüÿÒûÿÒûÿÒúÿÒùÿÒøÿÒ÷ÿÒõÿÒôÿÒóÿÒòÿÒñÿÒïÿÒîÿÒíÿÒìÿÒêÿÒéÿÒèÿÒçÿÒåÿÒäÿÒãÿÒâÿÒàÿÒßÿÒÞÿÒÝÿÒÜÿÒÛÿÒÙÿÒØÿÒ×ÿÒÖÿÒÕÿÒÕÿÒÔÿÒÓÿÒÒÿÒÒÿÒÑÿÑÒÿÒÒÿÓÒÿÔÒÿÔÒÿÕÒÿÖÒÿ×ÒÿØÒÿÙÒÿÙÒÿÚÒÿÜÒÿÝÒÿÞÒÿßÒÿàÒÿáÒÿâÒÿãÒÿåÒÿæÒÿçÒÿèÒÿêÒÿëÒÿìÒÿíÒÿîÒÿðÒÿñÒÿòÒÿóÒÿôÒÿõÒÿöÒÿ÷ÒÿøÒÿùÒÿúÒÿûÒÿüÒÿýÒÿýÒÿýÒÿýÒÿþÒþÿÒþÿÒýÿÒüÿÒûÿÒúÿÒùÿÒøÿÒ÷ÿÒöÿÒõÿÒôÿÒòÿÒñÿÒðÿÒïÿÒíÿÒìÿÒëÿÒéÿÒèÿÒæÿÒåÿÒãÿÒâÿÒáÿÒàÿÒÞÿÒÝÿÒÜÿÒÛÿÒÚÿÒÙÿÒ×ÿÒÖÿÒÖÿÒÕÿÒÔÿÒÓÿÒÓÿÑÒÿÒÑÿÒÒÿÓÒÿÔÒÿÔÒÿÕÒÿÖÒÿ×ÒÿØÒÿÙÒÿÚÒÿÛÒÿÜÒÿÝÒÿÞÒÿßÒÿáÒÿâÒÿãÒÿäÒÿåÒÿæÒÿèÒÿéÒÿêÒÿëÒÿìÒÿîÒÿïÒÿðÒÿñÒÿòÒÿóÒÿõÒÿöÒÿ÷Òÿ÷ÒÿøÒÿúÒÿúÒÿûÒÿüÒÿýÒÿýÒÿþÒÿÿÒÿÿÒþÿÒýÿÒüÿÒüÿÒûÿÒúÿÒùÿÒøÿÒöÿÒõÿÒôÿÒóÿÒñÿÒðÿÒïÿÒíÿÒìÿÒêÿÒéÿÒçÿÒæÿÒäÿÒãÿÒâÿÒàÿÒßÿÒÝÿÒÜÿÒÛÿÒÙÿÒØÿÒ×ÿÒÖÿÒÕÿÒÔÿÒÓÿÒÒÿÒÒÿÒÑÿÈÉÿÉÉÿÉÉÿÊÉÿËÉÿÌÉÿÎÉÿÏÉÿÐÉÿÑÉÿÓÉÿÔÉÿÖÉÿ×ÉÿÙÉÿÚÉÿÜÉÿÝÉÿßÉÿáÉÿâÉÿäÉÿæÉÿçÉÿéÉÿëÉÿìÉÿîÉÿïÉÿñÉÿòÉÿôÉÿõÉÿöÉÿ÷ÉÿùÉÿúÉÿûÉÿüÉÿýÉÿþÉÿÿÉþÿÉýÿÉüÿÉüÿÉûÿÉúÿÉøÿÉ÷ÿÉöÿÉõÿÉôÿÉòÿÉñÿÉïÿÉîÿÉìÿÉëÿÉéÿÉèÿÉæÿÉåÿÉãÿÉâÿÉáÿÉßÿÉÞÿÉÜÿÉÚÿÉÙÿÉØÿÉÖÿÉÕÿÉÓÿÉÒÿÉÑÿÉÐÿÉÎÿÉÍÿÉÌÿÉËÿÉÊÿÉÉÿÉÉÿÉÈÿÈÉÿÉÉÿÊÉÿËÉÿÌÉÿÍÉÿÎÉÿÏÉÿÐÉÿÑÉÿÒÉÿÓÉÿÔÉÿÖÉÿ×ÉÿØÉÿÚÉÿÛÉÿÜÉÿÞÉÿßÉÿáÉÿâÉÿäÉÿåÉÿçÉÿèÉÿêÉÿëÉÿíÉÿîÉÿïÉÿñÉÿòÉÿóÉÿõÉÿöÉÿ÷ÉÿøÉÿùÉÿúÉÿûÉÿüÉÿýÉÿýÉÿýÉÿþÉþÿÉþÿÉýÿÉüÿÉûÿÉùÿÉøÿÉ÷ÿÉöÿÉôÿÉóÿÉñÿÉðÿÉîÿÉíÿÉëÿÉêÿÉèÿÉæÿÉåÿÉãÿÉáÿÉàÿÉÞÿÉÜÿÉÛÿÉÙÿÉØÿÉÖÿÉÕÿÉÓÿÉÒÿÉÑÿÉÐÿÉÎÿÉÍÿÉÌÿÉËÿÉÊÿÉÊÿÈÉÿÉÈÿÉÉÿÊÉÿËÉÿÌÉÿÍÉÿÎÉÿÏÉÿÐÉÿÑÉÿÓÉÿÔÉÿÕÉÿÖÉÿØÉÿÙÉÿÛÉÿÜÉÿÝÉÿßÉÿàÉÿáÉÿãÉÿäÉÿæÉÿçÉÿéÉÿêÉÿìÉÿíÉÿîÉÿðÉÿñÉÿóÉÿôÉÿõÉÿöÉÿ÷ÉÿøÉÿùÉÿúÉÿûÉÿüÉÿýÉÿþÉÿÿÉÿÿÉþÿÉýÿÉüÿÉûÿÉúÿÉùÿÉøÿÉöÿÉõÿÉôÿÉòÿÉðÿÉïÿÉíÿÉìÿÉêÿÉèÿÉæÿÉåÿÉãÿÉáÿÉßÿÉÞÿÉÜÿÉÚÿÉÙÿÉ×ÿÉÕÿÉÔÿÉÒÿÉÑÿÉÏÿÉÎÿÉÍÿÉÌÿÉËÿÉÊÿÉÉÿÉÈÿ¿ÀÿÀÀÿÁÀÿÂÀÿÃÀÿÄÀÿÅÀÿÇÀÿÈÀÿÊÀÿÌÀÿÍÀÿÏÀÿÑÀÿÓÀÿÔÀÿÖÀÿØÀÿÚÀÿÜÀÿÞÀÿàÀÿâÀÿäÀÿæÀÿèÀÿéÀÿëÀÿíÀÿïÀÿðÀÿòÀÿóÀÿõÀÿöÀÿøÀÿùÀÿúÀÿüÀÿýÀÿþÀÿÿÀþÿÀýÿÀüÿÀûÿÀúÿÀùÿÀ÷ÿÀöÿÀõÿÀóÿÀòÿÀðÿÀîÿÀíÿÀëÿÀéÿÀèÿÀæÿÀäÿÀâÿÀàÿÀÞÿÀÝÿÀÜÿÀÚÿÀØÿÀÖÿÀÔÿÀÓÿÀÑÿÀÐÿÀÎÿÀÌÿÀËÿÀÉÿÀÈÿÀÆÿÀÅÿÀÄÿÀÃÿÀÂÿÀÁÿÀÀÿÀ¿ÿ¿ÀÿÀÀÿÁÀÿÂÀÿÃÀÿÄÀÿÅÀÿÇÀÿÈÀÿÉÀÿÊÀÿÌÀÿÍÀÿÏÀÿÐÀÿÒÀÿÔÀÿÕÀÿ×ÀÿØÀÿÚÀÿÜÀÿÞÀÿßÀÿáÀÿãÀÿåÀÿæÀÿèÀÿêÀÿëÀÿíÀÿîÀÿðÀÿñÀÿóÀÿôÀÿöÀÿ÷ÀÿøÀÿùÀÿûÀÿüÀÿýÀÿýÀÿýÀÿþÀþÿÀýÿÀüÿÀûÿÀúÿÀùÿÀ÷ÿÀöÿÀôÿÀóÿÀñÿÀïÿÀíÿÀìÿÀêÿÀèÿÀæÿÀäÿÀâÿÀàÿÀÞÿÀÜÿÀÚÿÀØÿÀ×ÿÀÕÿÀÓÿÀÑÿÀÐÿÀÎÿÀÌÿÀËÿÀÉÿÀÈÿÀÆÿÀÅÿÀÄÿÀÂÿÀÁÿÀÁÿ¿ÀÿÀ¿ÿÁÀÿÂÀÿÃÀÿÄÀÿÅÀÿÆÀÿÇÀÿÉÀÿÊÀÿËÀÿÍÀÿÎÀÿÐÀÿÒÀÿÓÀÿÕÀÿÖÀÿ×ÀÿÚÀÿÛÀÿÜÀÿÞÀÿáÀÿâÀÿãÀÿåÀÿçÀÿèÀÿêÀÿìÀÿíÀÿïÀÿðÀÿòÀÿóÀÿõÀÿöÀÿ÷ÀÿùÀÿúÀÿûÀÿüÀÿýÀÿþÀÿÿÀÿÿÀþÿÀýÿÀüÿÀûÿÀúÿÀøÿÀ÷ÿÀõÿÀóÿÀòÿÀðÿÀîÿÀìÿÀêÿÀéÿÀæÿÀäÿÀâÿÀàÿÀÞÿÀÜÿÀÚÿÀØÿÀÖÿÀÔÿÀÒÿÀÐÿÀÎÿÀÍÿÀËÿÀÉÿÀÇÿÀÆÿÀÅÿÀÃÿÀÂÿÀÁÿÀÀÿÀ¿ÿ¶·ÿ··ÿ¸·ÿ¹·ÿ»·ÿ¼·ÿ½·ÿ¿·ÿÁ·ÿ·ÿÄ·ÿÆ·ÿÈ·ÿÊ·ÿÌ·ÿηÿÑ·ÿÓ·ÿÕ·ÿ×·ÿÙ·ÿÛ·ÿÞ·ÿà·ÿâ·ÿä·ÿæ·ÿè·ÿë·ÿì·ÿî·ÿð·ÿò·ÿô·ÿõ·ÿ÷·ÿø·ÿú·ÿû·ÿü·ÿý·ÿþ·þÿ·ýÿ·üÿ·úÿ·ùÿ·øÿ·öÿ·õÿ·óÿ·ñÿ·ðÿ·îÿ·ìÿ·êÿ·èÿ·æÿ·äÿ·âÿ·àÿ·Þÿ·Üÿ·Úÿ·Ùÿ·×ÿ·Õÿ·Óÿ·Ñÿ·Ïÿ·Íÿ·Ëÿ·Éÿ·Çÿ·Åÿ·Ãÿ·Âÿ·Àÿ·¾ÿ·½ÿ·¼ÿ·»ÿ·¹ÿ·¸ÿ··ÿ¶¶ÿ··ÿ¸·ÿ¹·ÿº·ÿ»·ÿ¼·ÿ½·ÿ¿·ÿÀ·ÿÁ·ÿ÷ÿÅ·ÿÆ·ÿÈ·ÿÊ·ÿÌ·ÿÍ·ÿÏ·ÿÑ·ÿÓ·ÿÕ·ÿ×·ÿÙ·ÿÛ·ÿÝ·ÿß·ÿá·ÿã·ÿä·ÿæ·ÿè·ÿê·ÿì·ÿî·ÿï·ÿñ·ÿó·ÿô·ÿö·ÿ÷·ÿù·ÿú·ÿû·ÿü·ÿü·ÿý·ÿþ·þÿ·ýÿ·üÿ·úÿ·ùÿ·øÿ·öÿ·ôÿ·óÿ·ñÿ·ïÿ·íÿ·ëÿ·éÿ·çÿ·åÿ·âÿ·àÿ·Þÿ·Üÿ·Úÿ·×ÿ·Õÿ·Óÿ·Ñÿ·Ïÿ·Íÿ·Ëÿ·Éÿ·Çÿ·Åÿ·Ãÿ·Áÿ·Àÿ·¾ÿ·½ÿ·»ÿ·ºÿ·¹ÿ·¸ÿ¶·ÿ·¶ÿ¸·ÿ¹·ÿº·ÿ»·ÿ¼·ÿ¾·ÿ¿·ÿÁ·ÿ·ÿÄ·ÿÆ·ÿÈ·ÿÉ·ÿË·ÿÍ·ÿÏ·ÿÑ·ÿÓ·ÿÔ·ÿÕ·ÿ×·ÿÙ·ÿÛ·ÿÝ·ÿß·ÿá·ÿã·ÿå·ÿç·ÿé·ÿë·ÿì·ÿî·ÿð·ÿñ·ÿó·ÿõ·ÿö·ÿø·ÿù·ÿú·ÿû·ÿü·ÿý·ÿþ·ÿÿ·þÿ·ýÿ·ûÿ·úÿ·ùÿ·÷ÿ·öÿ·ôÿ·òÿ·ðÿ·îÿ·ìÿ·êÿ·èÿ·åÿ·ãÿ·áÿ·Þÿ·Üÿ·Úÿ·×ÿ·Õÿ·Óÿ·Ñÿ·Îÿ·Ìÿ·Êÿ·Èÿ·Æÿ·Äÿ·Âÿ·Àÿ·¾ÿ·¼ÿ·»ÿ·¹ÿ·¸ÿ··ÿ·¶ÿ¬­ÿ­­ÿ®­ÿ°­ÿ±­ÿ³­ÿ´­ÿ¶­ÿ¸­ÿº­ÿ¼­ÿ¾­ÿÁ­ÿíÿÅ­ÿÈ­ÿÊ­ÿÌ­ÿÏ­ÿÒ­ÿÔ­ÿÖ­ÿÙ­ÿÜ­ÿÞ­ÿá­ÿã­ÿå­ÿè­ÿê­ÿì­ÿî­ÿð­ÿò­ÿô­ÿö­ÿø­ÿù­ÿû­ÿü­ÿý­ÿþ­þÿ­üÿ­ûÿ­úÿ­øÿ­÷ÿ­õÿ­óÿ­ñÿ­ðÿ­îÿ­ìÿ­éÿ­çÿ­åÿ­ãÿ­áÿ­Þÿ­Ýÿ­Úÿ­×ÿ­Öÿ­Óÿ­Ðÿ­Ïÿ­Ìÿ­Éÿ­Èÿ­Æÿ­Äÿ­Áÿ­¿ÿ­½ÿ­»ÿ­¹ÿ­¸ÿ­¶ÿ­´ÿ­²ÿ­±ÿ­°ÿ­®ÿ­­ÿ¬¬ÿ­­ÿ®­ÿ¯­ÿ°­ÿ±­ÿ³­ÿ´­ÿ¶­ÿ·­ÿ¹­ÿ»­ÿ¼­ÿ¾­ÿÀ­ÿ­ÿÄ­ÿÆ­ÿÉ­ÿË­ÿÍ­ÿÏ­ÿÑ­ÿÔ­ÿÖ­ÿØ­ÿÚ­ÿÝ­ÿß­ÿá­ÿã­ÿå­ÿç­ÿé­ÿë­ÿí­ÿï­ÿñ­ÿó­ÿô­ÿö­ÿø­ÿù­ÿú­ÿü­ÿü­ÿý­ÿþ­þÿ­ýÿ­ûÿ­úÿ­øÿ­÷ÿ­õÿ­óÿ­ñÿ­ïÿ­íÿ­êÿ­èÿ­æÿ­ãÿ­áÿ­ßÿ­Üÿ­Úÿ­×ÿ­Õÿ­Òÿ­Ïÿ­Íÿ­Ëÿ­Èÿ­Æÿ­Äÿ­Áÿ­¿ÿ­½ÿ­»ÿ­¹ÿ­·ÿ­µÿ­³ÿ­²ÿ­°ÿ­¯ÿ­®ÿ¬­ÿ­¬ÿ®­ÿ°­ÿ±­ÿ²­ÿ³­ÿµ­ÿ·­ÿ¹­ÿº­ÿ¼­ÿ¾­ÿÀ­ÿ­ÿÄ­ÿÆ­ÿÇ­ÿÊ­ÿÌ­ÿέÿÑ­ÿÒ­ÿÔ­ÿ×­ÿÚ­ÿÛ­ÿÝ­ÿß­ÿâ­ÿä­ÿæ­ÿè­ÿê­ÿì­ÿî­ÿð­ÿñ­ÿó­ÿõ­ÿ÷­ÿø­ÿú­ÿû­ÿü­ÿý­ÿþ­ÿÿ­þÿ­üÿ­ûÿ­úÿ­øÿ­öÿ­ôÿ­òÿ­ðÿ­îÿ­ìÿ­éÿ­çÿ­åÿ­âÿ­ßÿ­Ýÿ­Úÿ­×ÿ­Õÿ­Òÿ­Ïÿ­Íÿ­Êÿ­Èÿ­Åÿ­Ãÿ­Àÿ­¾ÿ­»ÿ­¹ÿ­·ÿ­µÿ­³ÿ­±ÿ­°ÿ­¯ÿ­­ÿ­¬ÿ¢£ÿ££ÿ¥£ÿ¦£ÿ¨£ÿª£ÿ«£ÿ®£ÿ°£ÿ²£ÿ´£ÿ·£ÿ¹£ÿ¼£ÿ¿£ÿÁ£ÿÄ£ÿÆ£ÿÉ£ÿÌ£ÿÏ£ÿÒ£ÿÕ£ÿ×£ÿÚ£ÿÝ£ÿà£ÿâ£ÿå£ÿè£ÿê£ÿì£ÿî£ÿñ£ÿó£ÿõ£ÿ÷£ÿù£ÿú£ÿü£ÿý£ÿþ£þÿ£üÿ£ûÿ£ùÿ£÷ÿ£öÿ£ôÿ£òÿ£ðÿ£îÿ£ìÿ£êÿ£çÿ£åÿ£âÿ£àÿ£Ýÿ£Ûÿ£Øÿ£Õÿ£Óÿ£Ðÿ£Îÿ£Ëÿ£Éÿ£Æÿ£Ãÿ£Áÿ£¿ÿ£¼ÿ£ºÿ£·ÿ£µÿ£³ÿ£±ÿ£¯ÿ£­ÿ£«ÿ£©ÿ£¨ÿ£¦ÿ£¥ÿ££ÿ¢¢ÿ££ÿ¤£ÿ¥£ÿ¦£ÿ¨£ÿ©£ÿ«£ÿ­£ÿ¯£ÿ°£ÿ²£ÿ´£ÿ¶£ÿ¹£ÿ»£ÿ½£ÿÀ£ÿ£ÿÄ£ÿÇ£ÿÉ£ÿÌ£ÿΣÿÑ£ÿÓ£ÿÖ£ÿØ£ÿÛ£ÿÝ£ÿà£ÿâ£ÿä£ÿæ£ÿé£ÿë£ÿí£ÿï£ÿñ£ÿó£ÿõ£ÿ÷£ÿù£ÿú£ÿû£ÿü£ÿý£ÿþ£þÿ£üÿ£ûÿ£ùÿ£÷ÿ£öÿ£óÿ£ñÿ£ïÿ£íÿ£êÿ£èÿ£åÿ£ãÿ£àÿ£Ýÿ£Ûÿ£Øÿ£Õÿ£Òÿ£Ïÿ£Ìÿ£Êÿ£Çÿ£Äÿ£Áÿ£¿ÿ£¼ÿ£ºÿ£·ÿ£µÿ£³ÿ£°ÿ£®ÿ£¬ÿ£ªÿ£¨ÿ£§ÿ£¥ÿ£¤ÿ¢£ÿ£¢ÿ¥£ÿ¦£ÿ§£ÿ©£ÿª£ÿ¬£ÿ®£ÿ°£ÿ²£ÿ´£ÿ¶£ÿ¸£ÿº£ÿ½£ÿ¿£ÿÁ£ÿÄ£ÿÅ£ÿÈ£ÿË£ÿÍ£ÿУÿÒ£ÿÕ£ÿ×£ÿÙ£ÿÜ£ÿÞ£ÿá£ÿã£ÿå£ÿè£ÿê£ÿì£ÿî£ÿð£ÿò£ÿô£ÿö£ÿ÷£ÿù£ÿú£ÿü£ÿý£ÿþ£ÿÿ£þÿ£üÿ£ûÿ£ùÿ£øÿ£õÿ£óÿ£ñÿ£îÿ£ìÿ£êÿ£çÿ£äÿ£áÿ£ßÿ£Ûÿ£Øÿ£Öÿ£Óÿ£Ïÿ£Íÿ£Êÿ£Çÿ£Äÿ£Áÿ£¾ÿ£»ÿ£¸ÿ£¶ÿ£³ÿ£±ÿ£®ÿ£¬ÿ£ªÿ£¨ÿ£¦ÿ£¥ÿ££ÿ£¢ÿ˜™ÿ™™ÿ›™ÿœ™ÿž™ÿ ™ÿ¢™ÿ¥™ÿ§™ÿª™ÿ¬™ÿ¯™ÿ²™ÿ´™ÿ¸™ÿº™ÿ¾™ÿÀ™ÿÄ™ÿÇ™ÿÊ™ÿÍ™ÿЙÿÓ™ÿÖ™ÿÚ™ÿÜ™ÿß™ÿâ™ÿå™ÿè™ÿê™ÿí™ÿð™ÿò™ÿô™ÿö™ÿø™ÿú™ÿü™ÿý™ÿþ™ýÿ™üÿ™úÿ™ùÿ™÷ÿ™õÿ™óÿ™ñÿ™ïÿ™ìÿ™êÿ™çÿ™åÿ™âÿ™ßÿ™Ýÿ™Úÿ™×ÿ™Ôÿ™Ñÿ™Îÿ™Ëÿ™Èÿ™Æÿ™Ãÿ™Àÿ™½ÿ™ºÿ™¸ÿ™µÿ™²ÿ™°ÿ™­ÿ™ªÿ™¨ÿ™¦ÿ™¤ÿ™¢ÿ™ ÿ™žÿ™œÿ™›ÿ™šÿ˜˜ÿ™™ÿš™ÿ›™ÿ™ÿž™ÿ ™ÿ¢™ÿ¤™ÿ¦™ÿ¨™ÿª™ÿ¬™ÿ¯™ÿ±™ÿ³™ÿ¶™ÿ¹™ÿ»™ÿ¾™ÿÁ™ÿÙÿÆ™ÿÉ™ÿÌ™ÿÏ™ÿÑ™ÿÔ™ÿ×™ÿÙ™ÿÜ™ÿß™ÿá™ÿä™ÿç™ÿé™ÿë™ÿî™ÿð™ÿò™ÿô™ÿö™ÿø™ÿù™ÿû™ÿü™ÿý™ÿþ™þÿ™üÿ™ûÿ™ùÿ™÷ÿ™õÿ™òÿ™ðÿ™íÿ™ëÿ™èÿ™åÿ™ãÿ™àÿ™Ýÿ™Úÿ™×ÿ™Óÿ™Ñÿ™Íÿ™Êÿ™Çÿ™Äÿ™Áÿ™¾ÿ™»ÿ™¸ÿ™µÿ™²ÿ™¯ÿ™­ÿ™ªÿ™¨ÿ™¥ÿ™£ÿ™¡ÿ™Ÿÿ™ÿ™›ÿ™šÿ˜™ÿš˜ÿ›™ÿœ™ÿž™ÿ ™ÿ¡™ÿ£™ÿ¥™ÿ§™ÿª™ÿ¬™ÿ®™ÿ°™ÿ³™ÿµ™ÿ¸™ÿº™ÿ½™ÿÀ™ÿ™ÿÅ™ÿÈ™ÿË™ÿÍ™ÿЙÿÓ™ÿÕ™ÿØ™ÿÛ™ÿÞ™ÿà™ÿã™ÿå™ÿè™ÿê™ÿì™ÿî™ÿñ™ÿó™ÿõ™ÿö™ÿø™ÿú™ÿû™ÿý™ÿþ™ÿÿ™þÿ™üÿ™úÿ™ùÿ™÷ÿ™ôÿ™òÿ™ðÿ™íÿ™êÿ™èÿ™äÿ™âÿ™Þÿ™Ûÿ™Øÿ™Ôÿ™Ñÿ™Îÿ™Êÿ™Çÿ™Äÿ™Áÿ™¾ÿ™ºÿ™·ÿ™´ÿ™±ÿ™®ÿ™«ÿ™¨ÿ™¦ÿ™£ÿ™¡ÿ™Ÿÿ™ÿ™›ÿ™šÿ™˜ÿŽÿÿ‘ÿ“ÿ•ÿ—ÿ™ÿœÿŸÿ¡ÿ¤ÿ§ÿªÿ­ÿ±ÿ´ÿ·ÿºÿ¾ÿÁÿŏÿȏÿˏÿϏÿӏÿ֏ÿُÿ܏ÿàÿãÿåÿèÿëÿîÿðÿóÿõÿ÷ÿúÿûÿýÿþýÿûÿúÿøÿöÿôÿòÿïÿíÿëÿèÿåÿâÿßÿÜÿÙÿÖÿÓÿÐÿÍÿÊÿÆÿÃÿÀÿ½ÿºÿ¶ÿ³ÿ±ÿ®ÿªÿ¨ÿ¥ÿ¢ÿ ÿÿ›ÿ™ÿ—ÿ•ÿ“ÿ‘ÿÿŽŽÿÿÿ’ÿ“ÿ•ÿ—ÿ™ÿ›ÿÿŸÿ¡ÿ¤ÿ§ÿ©ÿ¬ÿ¯ÿ²ÿµÿ·ÿºÿ¾ÿÁÿďÿǏÿʏÿ͏ÿЏÿӏÿ֏ÿُÿ܏ÿޏÿáÿäÿçÿéÿìÿîÿñÿóÿõÿ÷ÿùÿûÿûÿýÿþþÿüÿúÿøÿöÿôÿñÿîÿìÿéÿæÿãÿàÿÝÿÙÿÖÿÓÿÏÿÌÿÉÿÅÿÂÿ¾ÿºÿ·ÿ´ÿ±ÿ®ÿ«ÿ¨ÿ¥ÿ¢ÿŸÿÿšÿ˜ÿ–ÿ“ÿ’ÿÿŽÿŽÿ‘ÿ“ÿ•ÿ–ÿ˜ÿšÿœÿžÿ¡ÿ£ÿ¦ÿ©ÿ«ÿ®ÿ±ÿ´ÿ·ÿºÿ¼ÿÀÿÏÿƏÿɏÿ̏ÿΏÿяÿՏÿ؏ÿۏÿݏÿàÿãÿæÿèÿëÿíÿïÿòÿôÿõÿøÿùÿûÿüÿþÿÿþÿüÿúÿøÿöÿóÿñÿîÿëÿèÿåÿâÿßÿÛÿØÿÔÿÐÿÍÿÉÿÅÿÂÿ¾ÿ»ÿ·ÿ´ÿ°ÿ­ÿ©ÿ¦ÿ£ÿ ÿÿšÿ˜ÿ•ÿ“ÿ’ÿÿŽÿ„…ÿ……ÿ‡…ÿ‰…ÿŒ…ÿŽ…ÿ…ÿ“…ÿ–…ÿ™…ÿœ…ÿŸ…ÿ£…ÿ¦…ÿª…ÿ­…ÿ±…ÿ´…ÿ¸…ÿ¼…ÿÀ…ÿÃ…ÿÇ…ÿË…ÿÏ…ÿÒ…ÿÖ…ÿÙ…ÿÝ…ÿà…ÿã…ÿç…ÿé…ÿí…ÿï…ÿò…ÿô…ÿ÷…ÿù…ÿû…ÿý…ÿþ…ýÿ…ûÿ…ùÿ…÷ÿ…õÿ…óÿ…ñÿ…îÿ…ìÿ…éÿ…æÿ…ãÿ…àÿ…Ýÿ…Ùÿ…Öÿ…Óÿ…Ïÿ…Ëÿ…Èÿ…Åÿ…Âÿ…½ÿ…ºÿ…·ÿ…´ÿ…°ÿ…­ÿ…©ÿ…¦ÿ…£ÿ… ÿ…ÿ…šÿ…—ÿ…”ÿ…’ÿ…ÿ…Žÿ…‹ÿ…‰ÿ…‡ÿ…†ÿ„„ÿ……ÿ†…ÿˆ…ÿ‰…ÿ‹…ÿŽ…ÿ…ÿ’…ÿ”…ÿ—…ÿ™…ÿœ…ÿŸ…ÿ¢…ÿ¥…ÿ¨…ÿ«…ÿ®…ÿ±…ÿ´…ÿ¸…ÿ»…ÿ¾…ÿÂ…ÿÅ…ÿÈ…ÿÌ…ÿÏ…ÿÒ…ÿÕ…ÿÙ…ÿÜ…ÿÞ…ÿâ…ÿå…ÿè…ÿê…ÿí…ÿï…ÿò…ÿô…ÿö…ÿø…ÿú…ÿû…ÿý…ÿþ…þÿ…üÿ…úÿ…÷ÿ…õÿ…óÿ…ðÿ…íÿ…êÿ…çÿ…äÿ…àÿ…Ýÿ…Úÿ…Öÿ…Óÿ…Ïÿ…Ëÿ…Èÿ…Äÿ…Àÿ…¼ÿ…¸ÿ…´ÿ…±ÿ…­ÿ…ªÿ…¦ÿ…£ÿ… ÿ…œÿ…šÿ…—ÿ…”ÿ…‘ÿ…ÿ…Œÿ…Šÿ…ˆÿ…†ÿ„…ÿ†„ÿ‡…ÿ‰…ÿ‹…ÿ…ÿ…ÿ‘…ÿ“…ÿ–…ÿ™…ÿ›…ÿž…ÿ¡…ÿ¤…ÿ§…ÿª…ÿ­…ÿ°…ÿ³…ÿ·…ÿº…ÿ½…ÿÀ…ÿÄ…ÿÇ…ÿÊ…ÿÍ…ÿÑ…ÿÔ…ÿ×…ÿÛ…ÿÝ…ÿà…ÿä…ÿæ…ÿé…ÿë…ÿî…ÿñ…ÿó…ÿô…ÿ÷…ÿù…ÿû…ÿü…ÿþ…ÿÿ…þÿ…üÿ…úÿ…øÿ…õÿ…óÿ…ðÿ…íÿ…éÿ…çÿ…ãÿ…ßÿ…Üÿ…Øÿ…Ôÿ…Ðÿ…Ìÿ…Èÿ…Åÿ…Àÿ…¼ÿ…¹ÿ…µÿ…±ÿ…­ÿ…©ÿ…¥ÿ…¢ÿ…žÿ…›ÿ…˜ÿ…”ÿ…‘ÿ…ÿ…Œÿ…Šÿ…ˆÿ…†ÿ…„ÿyzÿ{zÿ}zÿzÿzÿ„zÿ‡zÿŠzÿzÿzÿ”zÿ—zÿšzÿžzÿ¢zÿ¦zÿªzÿ®zÿ²zÿ¶zÿºzÿ¾zÿÂzÿÆzÿÊzÿÏzÿÒzÿÖzÿÚzÿÞzÿázÿäzÿèzÿëzÿîzÿñzÿôzÿözÿùzÿûzÿýzþþzýÿzûÿzùÿz÷ÿzõÿzòÿzðÿzíÿzêÿzçÿzäÿzàÿzÝÿzÙÿzÖÿzÒÿzÎÿzËÿzÇÿzÃÿz¿ÿz»ÿz¸ÿzµÿz±ÿz­ÿz©ÿz¥ÿz¢ÿzŸÿz›ÿz—ÿz”ÿz‘ÿzŽÿz‹ÿzˆÿz…ÿzƒÿzÿzÿz}ÿz{ÿyzÿzyÿ{zÿ}zÿzÿzÿƒzÿ…zÿˆzÿ‹zÿzÿzÿ“zÿ–zÿ™zÿœzÿ zÿ£zÿ§zÿªzÿ®zÿ±zÿµzÿ¹zÿ¼zÿÀzÿÄzÿÇzÿËzÿÎzÿÒzÿÕzÿØzÿÜzÿßzÿâzÿåzÿézÿëzÿîzÿðzÿózÿözÿøzÿúzÿûzÿüzÿþzýÿzûÿzùÿz÷ÿzôÿzñÿzîÿzëÿzèÿzåÿzáÿzÞÿzÚÿzÖÿzÒÿzÎÿzÊÿzÆÿzÂÿz¾ÿzºÿz¶ÿz²ÿz®ÿzªÿz¦ÿz¢ÿzŸÿz›ÿz—ÿz”ÿz‘ÿzÿzŠÿz‡ÿz„ÿz‚ÿzÿz}ÿy|ÿzzÿ{yÿ}zÿzÿzÿƒzÿ…zÿ‡zÿŠzÿŒzÿzÿ’zÿ•zÿ˜zÿ›zÿŸzÿ¢zÿ¦zÿªzÿ­zÿ°zÿ³zÿ¸zÿ»zÿ¾zÿÂzÿÆzÿÉzÿÌzÿÐzÿÔzÿ×zÿÚzÿÞzÿázÿäzÿçzÿêzÿízÿïzÿòzÿôzÿözÿøzÿúzÿüzÿþzþÿzýÿzûÿzùÿz÷ÿzõÿzñÿzîÿzëÿzèÿzäÿzáÿzÝÿzÙÿzÕÿzÑÿzÌÿzÈÿzÄÿz¿ÿz»ÿz·ÿz²ÿz®ÿzªÿz¦ÿz¢ÿzžÿz™ÿz–ÿz’ÿzŽÿz‹ÿzˆÿz…ÿz‚ÿzÿz}ÿz{ÿzyÿopÿqpÿspÿupÿxpÿ{pÿ~pÿpÿ„pÿˆpÿŒpÿpÿ“pÿ—pÿ›pÿŸpÿ¤pÿ¨pÿ¬pÿ±pÿµpÿ¹pÿ¾pÿÂpÿÆpÿËpÿÏpÿÓpÿ×pÿÛpÿßpÿãpÿæpÿêpÿípÿðpÿópÿöpÿøpÿûpÿýpþþpýÿpûÿpøÿpöÿpôÿpñÿpïÿpìÿpèÿpåÿpâÿpÞÿpÚÿp×ÿpÓÿpÏÿpËÿpÇÿpÃÿp¾ÿpºÿp¶ÿp³ÿp¯ÿp«ÿp§ÿp£ÿpŸÿp›ÿp—ÿp”ÿpÿpŒÿpˆÿp…ÿp‚ÿpÿp|ÿpzÿpwÿpuÿpsÿpqÿopÿpoÿqpÿspÿupÿwpÿzpÿ|pÿpÿ‚pÿ…pÿˆpÿ‹pÿŽpÿ’pÿ•pÿ™pÿœpÿ pÿ¤pÿ¨pÿ«pÿ¯pÿ³pÿ·pÿ»pÿ¿pÿÃpÿÇpÿÊpÿÎpÿÒpÿÖpÿÙpÿÝpÿàpÿäpÿçpÿêpÿìpÿïpÿòpÿõpÿ÷pÿùpÿûpÿüpÿþpýÿpûÿpùÿpöÿpóÿpðÿpíÿpêÿpæÿpãÿpßÿpÛÿp×ÿpÓÿpÏÿpËÿpÆÿpÂÿp¾ÿp¹ÿpµÿp°ÿp¬ÿp¨ÿp¤ÿp ÿp›ÿp—ÿp“ÿpÿp‹ÿpˆÿp…ÿp‚ÿp~ÿp{ÿpxÿpvÿpsÿorÿppÿqoÿspÿupÿwpÿypÿ|pÿ~pÿpÿ„pÿ‡pÿŠpÿpÿ‘pÿ”pÿ˜pÿ›pÿŸpÿ£pÿ§pÿ«pÿ®pÿ±pÿµpÿ¹pÿ½pÿÁpÿÅpÿÈpÿÌpÿÐpÿÔpÿØpÿÛpÿßpÿâpÿåpÿèpÿëpÿîpÿñpÿópÿõpÿøpÿúpÿüpÿþpþÿpýÿpûÿpùÿp÷ÿpôÿpñÿpíÿpêÿpæÿpãÿpÞÿpÚÿpÖÿpÒÿpÍÿpÈÿpÄÿp¿ÿp»ÿp¶ÿp±ÿp­ÿp¨ÿp¤ÿpŸÿp›ÿp–ÿp’ÿpŽÿpŠÿp†ÿp‚ÿpÿp|ÿpyÿpvÿpsÿpqÿpoÿefÿgfÿifÿlfÿofÿrfÿufÿxfÿ|fÿfÿ„fÿ‡fÿ‹fÿfÿ”fÿ™fÿfÿ¢fÿ¦fÿ«fÿ°fÿ´fÿ¹fÿ¾fÿÃfÿÇfÿÌfÿÐfÿÔfÿÙfÿÜfÿàfÿäfÿèfÿëfÿîfÿòfÿõfÿøfÿúfÿýfþþfýÿfûÿføÿföÿfóÿfðÿfíÿfêÿfçÿfãÿfàÿfÜÿfØÿfÔÿfÐÿfËÿfÇÿfÃÿf¿ÿfºÿf·ÿf²ÿf®ÿf©ÿf¥ÿf ÿfœÿf˜ÿf”ÿfÿfŒÿfˆÿf„ÿf€ÿf}ÿfzÿfvÿfsÿfqÿfnÿfkÿfiÿfgÿefÿfeÿgfÿjfÿkfÿnfÿqfÿsfÿvfÿyfÿ|fÿfÿƒfÿ†fÿŠfÿŽfÿ’fÿ•fÿšfÿfÿ¡fÿ¦fÿªfÿ®fÿ²fÿ¶fÿ»fÿ¿fÿÃfÿÇfÿËfÿÏfÿÓfÿÖfÿÚfÿÞfÿâfÿåfÿèfÿëfÿîfÿñfÿôfÿ÷fÿùfÿúfÿüfÿþfýÿfûÿføÿfõÿfòÿfïÿfìÿfèÿfåÿfáÿfÝÿfÙÿfÔÿfÐÿfËÿfÇÿfÂÿf¾ÿf¹ÿfµÿf°ÿf«ÿf¦ÿf¡ÿfÿf™ÿf”ÿfÿfŒÿf‰ÿf„ÿf€ÿf}ÿfyÿfvÿfrÿfoÿflÿfjÿehÿffÿgeÿifÿkfÿnfÿpfÿrfÿufÿxfÿ{fÿ~fÿ‚fÿ†fÿ‰fÿfÿ‘fÿ•fÿ™fÿfÿ¡fÿ¥fÿ©fÿ¬fÿ°fÿµfÿºfÿ½fÿÁfÿÅfÿÉfÿÍfÿÑfÿÕfÿØfÿÝfÿàfÿãfÿçfÿêfÿífÿðfÿófÿõfÿ÷fÿúfÿûfÿþfþÿfýÿfûÿfùÿföÿfóÿfðÿfëÿfèÿfäÿfàÿfÜÿf×ÿfÓÿfÏÿfÉÿfÄÿfÀÿf»ÿf¶ÿf±ÿf¬ÿf§ÿf¢ÿfÿf™ÿf”ÿfÿfŠÿf†ÿf‚ÿf~ÿfyÿfvÿfsÿfoÿflÿfjÿfgÿfeÿ[\ÿ]\ÿ_\ÿb\ÿe\ÿh\ÿl\ÿo\ÿs\ÿw\ÿ|\ÿ\ÿ„\ÿˆ\ÿ\ÿ’\ÿ—\ÿœ\ÿ¡\ÿ¦\ÿ«\ÿ¯\ÿ´\ÿ¹\ÿ¿\ÿÄ\ÿÈ\ÿÌ\ÿÑ\ÿÖ\ÿÙ\ÿÞ\ÿã\ÿç\ÿê\ÿí\ÿñ\ÿô\ÿ÷\ÿú\ÿý\þþ\üÿ\úÿ\÷ÿ\õÿ\óÿ\ðÿ\ìÿ\éÿ\åÿ\áÿ\Ýÿ\Ùÿ\Õÿ\Ñÿ\Íÿ\Èÿ\Äÿ\¿ÿ\»ÿ\¶ÿ\±ÿ\­ÿ\¨ÿ\¤ÿ\Ÿÿ\šÿ\–ÿ\‘ÿ\ÿ\‰ÿ\„ÿ\€ÿ\|ÿ\xÿ\tÿ\qÿ\mÿ\jÿ\gÿ\dÿ\aÿ\_ÿ\^ÿ[\ÿ\[ÿ]\ÿ`\ÿb\ÿe\ÿh\ÿj\ÿm\ÿq\ÿt\ÿw\ÿ|\ÿ\ÿ‚\ÿ‡\ÿ‹\ÿŽ\ÿ“\ÿ—\ÿ›\ÿ \ÿ¤\ÿ©\ÿ­\ÿ²\ÿ¶\ÿ»\ÿ¿\ÿÃ\ÿÇ\ÿÌ\ÿÐ\ÿÔ\ÿØ\ÿÜ\ÿà\ÿä\ÿç\ÿê\ÿí\ÿð\ÿó\ÿö\ÿù\ÿú\ÿü\ÿþ\ýÿ\ûÿ\øÿ\õÿ\òÿ\îÿ\ëÿ\çÿ\ãÿ\ßÿ\Ûÿ\Öÿ\Òÿ\Íÿ\Èÿ\Äÿ\¾ÿ\¹ÿ\µÿ\°ÿ\«ÿ\§ÿ\¡ÿ\›ÿ\—ÿ\“ÿ\Žÿ\‰ÿ\…ÿ\ÿ\|ÿ\wÿ\tÿ\qÿ\mÿ\iÿ\fÿ\cÿ\`ÿ[^ÿ\\ÿ^[ÿ_\ÿa\ÿd\ÿg\ÿi\ÿl\ÿo\ÿs\ÿv\ÿz\ÿ~\ÿ‚\ÿ…\ÿ‰\ÿŽ\ÿ’\ÿ–\ÿ›\ÿž\ÿ£\ÿ¨\ÿ«\ÿ°\ÿ´\ÿ¸\ÿ½\ÿÁ\ÿÆ\ÿÊ\ÿÎ\ÿÒ\ÿÖ\ÿÚ\ÿÞ\ÿá\ÿå\ÿè\ÿì\ÿï\ÿò\ÿõ\ÿ÷\ÿù\ÿû\ÿþ\þÿ\ýÿ\ûÿ\øÿ\öÿ\òÿ\ïÿ\êÿ\çÿ\ãÿ\Þÿ\Ùÿ\Õÿ\Ñÿ\Ëÿ\Åÿ\Áÿ\¼ÿ\¶ÿ\±ÿ\¬ÿ\¦ÿ\¡ÿ\œÿ\—ÿ\’ÿ\ÿ\ˆÿ\ƒÿ\~ÿ\zÿ\uÿ\qÿ\mÿ\jÿ\fÿ\cÿ\`ÿ\^ÿ\[ÿQRÿSRÿVRÿXRÿ\Rÿ_RÿcRÿgRÿkRÿoRÿtRÿxRÿ|RÿRÿ‡Rÿ‹Rÿ‘Rÿ–Rÿ›Rÿ Rÿ¦Rÿ«Rÿ°RÿµRÿºRÿÀRÿÄRÿÉRÿÎRÿÓRÿØRÿÜRÿàRÿåRÿéRÿìRÿðRÿóRÿ÷RÿúRÿýRþþRüÿRúÿRøÿRõÿRòÿRïÿRëÿRèÿRäÿRßÿRÛÿR×ÿRÓÿRÏÿRÊÿRÅÿRÀÿR¼ÿR¶ÿR±ÿR­ÿR§ÿR¢ÿRžÿR™ÿR”ÿRÿRŠÿR†ÿRÿR}ÿRyÿRtÿRpÿRlÿRhÿRdÿRaÿR^ÿR[ÿRXÿRVÿRTÿQRÿRQÿSRÿVRÿXRÿ[Rÿ^RÿaRÿeRÿhRÿkRÿoRÿtRÿwRÿ{Rÿ€Rÿ„RÿˆRÿŒRÿRÿ•RÿšRÿŸRÿ£Rÿ¨Rÿ­Rÿ²Rÿ¶Rÿ»Rÿ¿RÿÄRÿÉRÿÍRÿÑRÿÖRÿÚRÿÞRÿâRÿåRÿéRÿìRÿïRÿóRÿöRÿøRÿúRÿüRÿþRýÿRúÿRøÿRôÿRñÿRíÿRéÿRåÿRáÿRÝÿRØÿRÔÿRÏÿRÊÿRÅÿRÀÿRºÿRµÿR°ÿR«ÿR¦ÿR ÿRœÿR–ÿR‘ÿRŒÿR‡ÿR‚ÿR~ÿRyÿRtÿRpÿRlÿRhÿRdÿR`ÿR]ÿRYÿRVÿQTÿRRÿTQÿVRÿXRÿZRÿ]Rÿ`RÿcRÿfRÿjRÿnRÿrRÿvRÿzRÿ~Rÿ‚Rÿ‡Rÿ‹RÿRÿ”Rÿ™RÿRÿ¢Rÿ§Rÿ«Rÿ°Rÿ´Rÿ¹Rÿ¾RÿÂRÿÇRÿËRÿÏRÿÔRÿØRÿÜRÿßRÿäRÿçRÿëRÿîRÿñRÿôRÿ÷RÿùRÿûRÿþRþÿRýÿRûÿRøÿRõÿRòÿRíÿRêÿRåÿRáÿRÜÿR×ÿRÒÿRÍÿRÇÿRÂÿR¼ÿR·ÿR²ÿR¬ÿR¦ÿR¡ÿRœÿR–ÿR‘ÿR‹ÿR†ÿR€ÿR{ÿRvÿRrÿRmÿRhÿRdÿRaÿR]ÿRYÿRVÿRTÿRQÿGHÿIHÿLHÿOHÿRHÿVHÿZHÿ^HÿbHÿgHÿlHÿpHÿuHÿzHÿ€Hÿ…HÿŠHÿHÿ•Hÿ›Hÿ¡Hÿ¦Hÿ«Hÿ°Hÿ¶Hÿ¼HÿÁHÿÆHÿËHÿÑHÿÖHÿÚHÿÞHÿãHÿçHÿëHÿïHÿóHÿöHÿúHÿýHþþHüÿHúÿHöÿHôÿHñÿHîÿHêÿHæÿHâÿHÞÿHÚÿHÕÿHÐÿHÌÿHÇÿHÂÿH½ÿH¸ÿH²ÿH­ÿH¨ÿH¢ÿHÿH˜ÿH“ÿHŽÿHˆÿHƒÿHÿHzÿHuÿHqÿHlÿHgÿHcÿH`ÿH\ÿHXÿHTÿHQÿHNÿHLÿHJÿGHÿHGÿIHÿLHÿNHÿRHÿUHÿXHÿ\Hÿ`HÿcHÿfHÿkHÿpHÿsHÿxHÿ}Hÿ‚Hÿ†HÿŠHÿHÿ”Hÿ™HÿžHÿ£Hÿ¨Hÿ­Hÿ²Hÿ·Hÿ¼HÿÁHÿÆHÿÊHÿÎHÿÓHÿØHÿÜHÿàHÿäHÿçHÿëHÿîHÿòHÿõHÿøHÿúHÿüHÿþHýÿHúÿH÷ÿHôÿHðÿHìÿHèÿHäÿHßÿHÛÿHÖÿHÑÿHÌÿHÇÿHÁÿH¼ÿH·ÿH±ÿH¬ÿH§ÿH¡ÿH›ÿH–ÿHÿH‹ÿH…ÿH€ÿH{ÿHvÿHqÿHlÿHhÿHdÿH_ÿH[ÿHWÿHSÿHPÿHLÿGJÿHHÿJGÿLHÿNHÿQHÿTHÿWHÿZHÿ^HÿbHÿfHÿjHÿnHÿrHÿvHÿ{Hÿ€Hÿ„Hÿ‰HÿHÿ’Hÿ˜HÿHÿ¢Hÿ§Hÿ¬Hÿ°HÿµHÿºHÿ¿HÿÄHÿÈHÿÍHÿÒHÿÖHÿÚHÿÞHÿâHÿåHÿêHÿíHÿðHÿôHÿ÷HÿùHÿûHÿþHþÿHýÿHúÿHøÿHôÿHðÿHìÿHçÿHãÿHßÿHÚÿHÕÿHÏÿHÊÿHÄÿH¿ÿH¸ÿH³ÿH®ÿH§ÿH¡ÿHœÿH–ÿHÿHŠÿH…ÿHÿHyÿHsÿHnÿHiÿHdÿH_ÿH[ÿHXÿHSÿHPÿHMÿHJÿHGÿ>?ÿ@?ÿC?ÿF?ÿJ?ÿN?ÿR?ÿV?ÿ[?ÿ_?ÿd?ÿi?ÿn?ÿs?ÿy?ÿ?ÿ…?ÿŠ?ÿ?ÿ–?ÿœ?ÿ¡?ÿ¦?ÿ¬?ÿ²?ÿ¸?ÿ¾?ÿÃ?ÿÉ?ÿÎ?ÿÓ?ÿØ?ÿÝ?ÿâ?ÿæ?ÿê?ÿî?ÿò?ÿö?ÿù?ÿü?þþ?üÿ?úÿ?÷ÿ?ôÿ?ðÿ?íÿ?éÿ?åÿ?àÿ?Üÿ?Øÿ?Óÿ?Îÿ?Éÿ?Äÿ?¿ÿ?¹ÿ?´ÿ?®ÿ?©ÿ?¤ÿ?Ÿÿ?˜ÿ?“ÿ?Žÿ?‰ÿ?ƒÿ?~ÿ?yÿ?tÿ?nÿ?jÿ?eÿ?`ÿ?\ÿ?Xÿ?Tÿ?Pÿ?Lÿ?Iÿ?Eÿ?Cÿ?Aÿ>?ÿ?>ÿA?ÿD?ÿF?ÿJ?ÿM?ÿP?ÿT?ÿX?ÿ\?ÿ`?ÿd?ÿi?ÿm?ÿr?ÿv?ÿ{?ÿ€?ÿ…?ÿ‹?ÿ?ÿ”?ÿ™?ÿŸ?ÿ¤?ÿ©?ÿ®?ÿ´?ÿ¸?ÿ½?ÿÃ?ÿÇ?ÿÌ?ÿÑ?ÿÖ?ÿÚ?ÿß?ÿâ?ÿæ?ÿê?ÿî?ÿñ?ÿô?ÿ÷?ÿù?ÿü?ÿþ?ýÿ?úÿ?÷ÿ?óÿ?ïÿ?ëÿ?çÿ?âÿ?Þÿ?Ùÿ?Ôÿ?Ïÿ?Êÿ?Äÿ?¾ÿ?¹ÿ?³ÿ?­ÿ?¨ÿ?£ÿ?ÿ?—ÿ?‘ÿ?‹ÿ?…ÿ?ÿ?zÿ?uÿ?oÿ?jÿ?eÿ?`ÿ?\ÿ?Wÿ?Sÿ?Oÿ?Kÿ?Gÿ?Dÿ>Aÿ??ÿA>ÿC?ÿE?ÿH?ÿK?ÿN?ÿR?ÿV?ÿZ?ÿ^?ÿb?ÿg?ÿk?ÿp?ÿt?ÿy?ÿ~?ÿ„?ÿ‰?ÿ?ÿ“?ÿ˜?ÿ?ÿ¢?ÿ§?ÿ¬?ÿ±?ÿ¶?ÿ¼?ÿÁ?ÿÆ?ÿÊ?ÿÏ?ÿÔ?ÿØ?ÿÜ?ÿà?ÿä?ÿé?ÿì?ÿï?ÿó?ÿö?ÿø?ÿú?ÿý?þÿ?ýÿ?úÿ?÷ÿ?óÿ?ïÿ?ëÿ?æÿ?âÿ?Ýÿ?Øÿ?Óÿ?Íÿ?Èÿ?Âÿ?»ÿ?µÿ?¯ÿ?ªÿ?£ÿ?ÿ?—ÿ?‘ÿ?‹ÿ?…ÿ?ÿ?yÿ?sÿ?mÿ?gÿ?bÿ?]ÿ?Xÿ?Sÿ?Oÿ?Kÿ?Gÿ?Dÿ?Aÿ?>ÿ56ÿ76ÿ;6ÿ>6ÿB6ÿF6ÿI6ÿN6ÿS6ÿX6ÿ]6ÿb6ÿg6ÿm6ÿs6ÿy6ÿ6ÿ…6ÿ‹6ÿ‘6ÿ—6ÿ6ÿ¢6ÿ©6ÿ¯6ÿµ6ÿ»6ÿÀ6ÿÇ6ÿÌ6ÿÑ6ÿÖ6ÿÛ6ÿá6ÿå6ÿé6ÿí6ÿñ6ÿõ6ÿù6ÿü6þþ6üÿ6úÿ6÷ÿ6óÿ6ïÿ6ìÿ6èÿ6äÿ6àÿ6Úÿ6Öÿ6Ñÿ6Ìÿ6Çÿ6Áÿ6¼ÿ6¶ÿ6±ÿ6«ÿ6¥ÿ6Ÿÿ6™ÿ6“ÿ6Žÿ6‰ÿ6ƒÿ6}ÿ6xÿ6rÿ6mÿ6hÿ6cÿ6^ÿ6Xÿ6Tÿ6Pÿ6Lÿ6Hÿ6Dÿ6Aÿ6=ÿ6:ÿ68ÿ56ÿ65ÿ86ÿ;6ÿ=6ÿA6ÿD6ÿH6ÿL6ÿP6ÿT6ÿX6ÿ]6ÿb6ÿf6ÿk6ÿp6ÿu6ÿ{6ÿ6ÿ…6ÿŠ6ÿ6ÿ•6ÿš6ÿ 6ÿ¥6ÿ«6ÿ°6ÿµ6ÿº6ÿÀ6ÿÅ6ÿÉ6ÿÏ6ÿÔ6ÿØ6ÿÝ6ÿá6ÿå6ÿé6ÿí6ÿñ6ÿô6ÿ÷6ÿù6ÿü6ÿþ6ýÿ6ùÿ6öÿ6òÿ6îÿ6ëÿ6æÿ6áÿ6Üÿ6Øÿ6Òÿ6Íÿ6Çÿ6Âÿ6»ÿ6¶ÿ6°ÿ6©ÿ6¤ÿ6žÿ6˜ÿ6’ÿ6‹ÿ6…ÿ6€ÿ6yÿ6tÿ6nÿ6iÿ6cÿ6^ÿ6Yÿ6Tÿ6Oÿ6Kÿ6Gÿ6Cÿ6?ÿ6;ÿ58ÿ66ÿ85ÿ:6ÿ=6ÿ@6ÿC6ÿF6ÿJ6ÿN6ÿR6ÿW6ÿ[6ÿ_6ÿd6ÿi6ÿn6ÿs6ÿx6ÿ~6ÿƒ6ÿˆ6ÿŽ6ÿ“6ÿ˜6ÿž6ÿ£6ÿ¨6ÿ­6ÿ³6ÿ¸6ÿ¾6ÿÃ6ÿÈ6ÿÍ6ÿÒ6ÿÖ6ÿÚ6ÿß6ÿã6ÿè6ÿì6ÿï6ÿó6ÿö6ÿø6ÿú6ÿý6þÿ6ýÿ6úÿ6÷ÿ6óÿ6ïÿ6êÿ6åÿ6áÿ6Ûÿ6Öÿ6Ñÿ6Ëÿ6Åÿ6¿ÿ6¸ÿ6±ÿ6«ÿ6¥ÿ6žÿ6˜ÿ6’ÿ6Œÿ6…ÿ6ÿ6yÿ6rÿ6lÿ6fÿ6`ÿ6[ÿ6Uÿ6Pÿ6Kÿ6Gÿ6Bÿ6>ÿ6;ÿ68ÿ65ÿ,-ÿ.-ÿ2-ÿ5-ÿ9-ÿ=-ÿA-ÿF-ÿK-ÿP-ÿV-ÿ[-ÿa-ÿf-ÿm-ÿs-ÿy-ÿ-ÿ†-ÿŒ-ÿ’-ÿ™-ÿž-ÿ¥-ÿ«-ÿ²-ÿ¸-ÿ¾-ÿÄ-ÿÊ-ÿÏ-ÿÕ-ÿÚ-ÿß-ÿã-ÿè-ÿí-ÿñ-ÿõ-ÿù-ÿü-þþ-üÿ-ùÿ-õÿ-óÿ-ïÿ-ëÿ-æÿ-âÿ-Þÿ-Øÿ-Ôÿ-Ïÿ-Êÿ-Äÿ-¾ÿ-¹ÿ-³ÿ-­ÿ-§ÿ-¡ÿ-œÿ-•ÿ-ÿ-Šÿ-„ÿ-}ÿ-wÿ-rÿ-lÿ-gÿ-aÿ-[ÿ-Vÿ-Qÿ-Mÿ-Iÿ-Dÿ-@ÿ-;ÿ-8ÿ-4ÿ-1ÿ-/ÿ,-ÿ-,ÿ/-ÿ2-ÿ5-ÿ9-ÿ<-ÿ@-ÿD-ÿH-ÿL-ÿQ-ÿV-ÿZ-ÿ_-ÿd-ÿj-ÿo-ÿu-ÿz-ÿ-ÿ…-ÿ‹-ÿ‘-ÿ–-ÿ›-ÿ¡-ÿ§-ÿ­-ÿ²-ÿ·-ÿ½-ÿÂ-ÿÇ-ÿÍ-ÿÒ-ÿ×-ÿÜ-ÿà-ÿä-ÿè-ÿì-ÿð-ÿó-ÿ÷-ÿù-ÿü-ÿþ-ýÿ-ùÿ-öÿ-òÿ-îÿ-êÿ-åÿ-àÿ-Ûÿ-Öÿ-Ðÿ-Êÿ-Åÿ-¿ÿ-¸ÿ-²ÿ-¬ÿ-¦ÿ-Ÿÿ-šÿ-“ÿ-ÿ-†ÿ-€ÿ-zÿ-sÿ-mÿ-hÿ-bÿ-\ÿ-Vÿ-Qÿ-Lÿ-Hÿ-Cÿ->ÿ-:ÿ-6ÿ-2ÿ,/ÿ--ÿ/,ÿ1-ÿ4-ÿ7-ÿ;-ÿ>-ÿB-ÿF-ÿJ-ÿO-ÿS-ÿX-ÿ]-ÿb-ÿh-ÿm-ÿr-ÿx-ÿ}-ÿ‚-ÿ‰-ÿŽ-ÿ“-ÿ™-ÿŸ-ÿ¥-ÿª-ÿ¯-ÿµ-ÿ»-ÿÁ-ÿÆ-ÿË-ÿÐ-ÿÔ-ÿØ-ÿÝ-ÿâ-ÿæ-ÿë-ÿî-ÿò-ÿõ-ÿø-ÿú-ÿý-þÿ-ýÿ-úÿ-öÿ-òÿ-îÿ-éÿ-äÿ-ßÿ-Úÿ-Õÿ-Ïÿ-Èÿ-Ãÿ-¼ÿ-µÿ-®ÿ-§ÿ-¡ÿ-šÿ-“ÿ-ÿ-‡ÿ-€ÿ-yÿ-sÿ-lÿ-fÿ-_ÿ-Yÿ-Tÿ-Nÿ-Hÿ-Cÿ-?ÿ-:ÿ-6ÿ-3ÿ-/ÿ-,ÿ$%ÿ'%ÿ*%ÿ-%ÿ2%ÿ6%ÿ:%ÿ?%ÿD%ÿJ%ÿP%ÿU%ÿ[%ÿa%ÿh%ÿn%ÿt%ÿz%ÿ€%ÿ‡%ÿŽ%ÿ”%ÿ›%ÿ¢%ÿ¨%ÿ¯%ÿµ%ÿ»%ÿÂ%ÿÈ%ÿÍ%ÿÓ%ÿØ%ÿÞ%ÿâ%ÿè%ÿì%ÿð%ÿô%ÿø%ÿü%þþ%üÿ%ùÿ%öÿ%òÿ%îÿ%ëÿ%æÿ%áÿ%Ýÿ%×ÿ%Óÿ%Íÿ%Èÿ%Âÿ%¼ÿ%¶ÿ%°ÿ%ªÿ%¤ÿ%ÿ%—ÿ%‘ÿ%Šÿ%…ÿ%ÿ%xÿ%rÿ%lÿ%fÿ%aÿ%[ÿ%Uÿ%Pÿ%Jÿ%Fÿ%Bÿ%<ÿ%8ÿ%4ÿ%1ÿ%,ÿ%)ÿ%'ÿ$%ÿ%$ÿ'%ÿ*%ÿ-%ÿ1%ÿ5%ÿ9%ÿ=%ÿA%ÿF%ÿJ%ÿO%ÿT%ÿY%ÿ^%ÿd%ÿj%ÿp%ÿu%ÿ{%ÿ%ÿ‡%ÿ%ÿ’%ÿ˜%ÿž%ÿ¤%ÿª%ÿ¯%ÿµ%ÿ»%ÿÀ%ÿÅ%ÿË%ÿÐ%ÿÕ%ÿÚ%ÿß%ÿã%ÿç%ÿë%ÿð%ÿó%ÿö%ÿù%ÿû%ÿþ%üÿ%ùÿ%öÿ%ñÿ%íÿ%éÿ%äÿ%ßÿ%Ùÿ%Ôÿ%Îÿ%Èÿ%Âÿ%¼ÿ%µÿ%¯ÿ%©ÿ%£ÿ%ÿ%–ÿ%ÿ%ˆÿ%ÿ%{ÿ%uÿ%nÿ%hÿ%bÿ%\ÿ%Vÿ%Pÿ%Kÿ%Fÿ%Aÿ%;ÿ%7ÿ%3ÿ%/ÿ%+ÿ$(ÿ%%ÿ'$ÿ)%ÿ,%ÿ0%ÿ3%ÿ7%ÿ;%ÿ?%ÿC%ÿH%ÿM%ÿR%ÿW%ÿ\%ÿb%ÿg%ÿm%ÿs%ÿx%ÿ}%ÿ„%ÿ‰%ÿ%ÿ•%ÿ›%ÿ¡%ÿ¦%ÿ¬%ÿ²%ÿ¸%ÿ¾%ÿÃ%ÿÉ%ÿÏ%ÿÓ%ÿ×%ÿÜ%ÿà%ÿå%ÿê%ÿí%ÿñ%ÿõ%ÿ÷%ÿú%ÿý%þÿ%ýÿ%ùÿ%öÿ%óÿ%îÿ%èÿ%ãÿ%Þÿ%Øÿ%Óÿ%Íÿ%Æÿ%Àÿ%¹ÿ%³ÿ%«ÿ%¤ÿ%ÿ%–ÿ%ÿ%ˆÿ%‚ÿ%{ÿ%tÿ%nÿ%gÿ%`ÿ%Yÿ%Sÿ%Mÿ%Gÿ%Aÿ%<ÿ%8ÿ%3ÿ%.ÿ%+ÿ%'ÿ%$ÿÿÿ"ÿ&ÿ*ÿ/ÿ3ÿ8ÿ>ÿCÿIÿOÿUÿ[ÿbÿhÿoÿvÿ|ÿƒÿŠÿÿ—ÿžÿ¥ÿ¬ÿ³ÿ¹ÿÀÿÆÿËÿÒÿ×ÿÝÿâÿçÿëÿðÿôÿøÿüþþüÿùÿõÿòÿíÿêÿåÿàÿÜÿÖÿÑÿËÿÆÿÀÿ¹ÿ³ÿ­ÿ§ÿ¡ÿšÿ“ÿÿ†ÿÿzÿsÿmÿgÿaÿ[ÿUÿOÿJÿDÿ?ÿ;ÿ5ÿ1ÿ-ÿ)ÿ%ÿ"ÿÿÿÿÿ"ÿ&ÿ*ÿ-ÿ1ÿ6ÿ:ÿ?ÿCÿIÿNÿSÿXÿ_ÿdÿjÿpÿvÿ|ÿ‚ÿˆÿÿ”ÿšÿ ÿ¦ÿ¬ÿ²ÿ¸ÿ½ÿÃÿÉÿÎÿÔÿÙÿÝÿâÿæÿëÿïÿóÿöÿùÿûÿþüÿùÿõÿñÿìÿèÿãÿÝÿØÿÓÿÌÿÆÿÀÿºÿ³ÿ­ÿ¦ÿŸÿ™ÿ’ÿ‹ÿ„ÿ}ÿvÿpÿhÿbÿ\ÿVÿPÿIÿDÿ?ÿ9ÿ4ÿ0ÿ+ÿ'ÿ#ÿ ÿÿÿ"ÿ%ÿ(ÿ,ÿ/ÿ4ÿ8ÿ=ÿBÿFÿLÿQÿVÿ\ÿbÿhÿnÿtÿzÿ€ÿ…ÿ‹ÿ’ÿ˜ÿžÿ£ÿ©ÿ°ÿ¶ÿ¼ÿÁÿÇÿÍÿÑÿÖÿÛÿàÿåÿéÿíÿñÿôÿøÿúÿýþÿýÿùÿõÿñÿíÿèÿâÿÝÿ×ÿÒÿËÿÄÿ¾ÿ·ÿ°ÿ¨ÿ¡ÿšÿ“ÿ‹ÿ„ÿ|ÿvÿoÿhÿaÿZÿSÿMÿGÿ@ÿ:ÿ5ÿ0ÿ+ÿ'ÿ#ÿ ÿÿÿÿÿÿ$ÿ(ÿ-ÿ2ÿ8ÿ=ÿDÿIÿOÿVÿ]ÿdÿkÿqÿxÿÿ†ÿÿ”ÿ›ÿ£ÿªÿ°ÿ·ÿ¾ÿÄÿÊÿÐÿÖÿÜÿáÿæÿëÿïÿôÿøÿüþþüÿùÿõÿñÿíÿéÿäÿßÿÛÿÕÿÐÿÉÿÄÿ¾ÿ·ÿ±ÿ«ÿ¤ÿÿ–ÿ‘ÿ‰ÿ‚ÿ}ÿvÿoÿhÿbÿ\ÿVÿPÿJÿDÿ>ÿ9ÿ4ÿ/ÿ+ÿ&ÿ#ÿÿÿÿÿÿÿÿÿ#ÿ'ÿ+ÿ0ÿ4ÿ9ÿ=ÿCÿHÿNÿSÿZÿ_ÿfÿkÿqÿxÿ~ÿ…ÿŠÿ‘ÿ—ÿÿ¤ÿ©ÿ°ÿ¶ÿ»ÿÁÿÇÿÍÿÒÿØÿÜÿáÿåÿêÿïÿòÿöÿùÿûÿþüÿùÿõÿðÿìÿçÿâÿÜÿ×ÿÑÿËÿÅÿ¾ÿ¸ÿ°ÿªÿ¤ÿœÿ–ÿÿ‡ÿ€ÿyÿqÿkÿdÿ]ÿWÿQÿJÿDÿ>ÿ9ÿ3ÿ.ÿ)ÿ%ÿ ÿÿÿÿÿÿÿ"ÿ%ÿ)ÿ.ÿ2ÿ7ÿ<ÿAÿFÿLÿQÿWÿ]ÿcÿiÿoÿuÿ|ÿÿˆÿŽÿ•ÿ›ÿ¡ÿ§ÿ­ÿ´ÿºÿ¿ÿÅÿËÿÐÿÕÿÚÿßÿäÿèÿìÿðÿôÿøÿúÿýþÿüÿùÿõÿñÿíÿçÿâÿÜÿÖÿÐÿÊÿÃÿ¼ÿµÿ®ÿ¥ÿžÿ—ÿÿ‡ÿÿyÿrÿkÿdÿ\ÿUÿNÿGÿAÿ:ÿ4ÿ/ÿ*ÿ%ÿ ÿÿÿÿÿÿÿÿÿ#ÿ'ÿ-ÿ3ÿ8ÿ?ÿDÿKÿRÿYÿ`ÿgÿnÿtÿ|ÿƒÿŠÿ‘ÿ™ÿ ÿ¨ÿ®ÿµÿ¼ÿÃÿÉÿÏÿÕÿÛÿàÿæÿêÿïÿôÿøÿûþþüÿùÿõÿñÿìÿéÿäÿÞÿÚÿÔÿÎÿÈÿÂÿ¼ÿ¶ÿ¯ÿ©ÿ¢ÿ›ÿ”ÿÿ†ÿÿyÿsÿlÿeÿ^ÿXÿRÿKÿEÿ@ÿ9ÿ4ÿ/ÿ)ÿ%ÿ!ÿÿÿÿÿÿÿÿÿÿÿ"ÿ&ÿ*ÿ/ÿ4ÿ8ÿ>ÿDÿIÿOÿUÿ[ÿbÿgÿnÿtÿ{ÿÿˆÿŽÿ”ÿ›ÿ¡ÿ§ÿ­ÿ´ÿºÿ¿ÿÆÿËÿÑÿ×ÿÛÿàÿåÿéÿîÿòÿöÿøÿûÿþüÿøÿõÿðÿëÿçÿáÿÛÿÖÿÐÿÊÿÃÿ¼ÿ¶ÿ®ÿ¨ÿ¡ÿšÿ“ÿŒÿ„ÿ}ÿuÿnÿgÿ`ÿYÿSÿLÿEÿ?ÿ9ÿ4ÿ.ÿ(ÿ$ÿÿÿÿÿÿÿÿÿÿ ÿ$ÿ(ÿ,ÿ2ÿ7ÿ<ÿAÿGÿMÿSÿYÿ_ÿeÿlÿqÿxÿ~ÿ…ÿ‹ÿ’ÿ˜ÿžÿ¥ÿ«ÿ±ÿ¸ÿ¾ÿÃÿÊÿÎÿÔÿÙÿÞÿãÿèÿëÿðÿôÿ÷ÿúÿýþÿüÿùÿõÿñÿìÿçÿáÿÛÿÕÿÏÿÉÿÁÿºÿ³ÿ«ÿ£ÿœÿ”ÿÿ„ÿ}ÿvÿoÿgÿ`ÿXÿQÿIÿCÿ<ÿ5ÿ/ÿ)ÿ%ÿÿÿÿÿÿ	
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ"
+ÿ(
+ÿ.
+ÿ3
+ÿ:
+ÿ@
+ÿF
+ÿM
+ÿU
+ÿ\
+ÿc
+ÿi
+ÿq
+ÿx
+ÿ€
+ÿ‡
+ÿ
+ÿ–
+ÿž
+ÿ¦
+ÿ¬
+ÿ³
+ÿ»
+ÿÁ
+ÿÇ
+ÿÎ
+ÿÔ
+ÿÚ
+ÿß
+ÿå
+ÿê
+ÿï
+ÿó
+ÿ÷
+ÿû
+þþ
+üÿ
+øÿ
+ôÿ
+ñÿ
+ìÿ
+èÿ
+ãÿ
+Ýÿ
+Ùÿ
+Óÿ
+Íÿ
+Æÿ
+Áÿ
+»ÿ
+´ÿ
+­ÿ
+¦ÿ
+ ÿ
+˜ÿ
+‘ÿ
+‹ÿ
+ƒÿ
+|ÿ
+vÿ
+oÿ
+hÿ
+aÿ
+Zÿ
+Tÿ
+Mÿ
+Gÿ
+Aÿ
+;ÿ
+4ÿ
+/ÿ
+*ÿ
+$ÿ
+ ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ	
+ÿ
+	ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ 
+ÿ%
+ÿ*
+ÿ/
+ÿ3
+ÿ9
+ÿ?
+ÿE
+ÿJ
+ÿQ
+ÿW
+ÿ^
+ÿc
+ÿj
+ÿq
+ÿx
+ÿ~
+ÿ…
+ÿ‹
+ÿ‘
+ÿ˜
+ÿŸ
+ÿ¥
+ÿ«
+ÿ²
+ÿ¸
+ÿ¾
+ÿÄ
+ÿÊ
+ÿÐ
+ÿÖ
+ÿÚ
+ÿß
+ÿä
+ÿé
+ÿî
+ÿò
+ÿõ
+ÿø
+ÿû
+ÿþ
+üÿ
+øÿ
+ôÿ
+ðÿ
+ëÿ
+æÿ
+àÿ
+Úÿ
+Õÿ
+Ïÿ
+Èÿ
+Âÿ
+»ÿ
+´ÿ
+¬ÿ
+¦ÿ
+Ÿÿ
+—ÿ
+‘ÿ
+‰ÿ
+ÿ
+yÿ
+rÿ
+jÿ
+cÿ
+\ÿ
+Uÿ
+Nÿ
+Hÿ
+Aÿ
+:ÿ
+4ÿ
+/ÿ
+)ÿ
+#ÿ
+ÿ
+ÿ
+ÿ
+ÿ	
ÿ
+
+ÿ	ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ"
+ÿ(
+ÿ,
+ÿ1
+ÿ7
+ÿ=
+ÿC
+ÿH
+ÿN
+ÿU
+ÿ[
+ÿb
+ÿh
+ÿn
+ÿu
+ÿ{
+ÿ‚
+ÿ‰
+ÿ
+ÿ•
+ÿœ
+ÿ£
+ÿ©
+ÿ¯
+ÿ¶
+ÿ¼
+ÿÂ
+ÿÈ
+ÿÍ
+ÿÓ
+ÿØ
+ÿÝ
+ÿâ
+ÿç
+ÿë
+ÿð
+ÿô
+ÿö
+ÿú
+ÿý
+þÿ
+ýÿ
+øÿ
+õÿ
+ñÿ
+ìÿ
+æÿ
+àÿ
+Úÿ
+Ôÿ
+Îÿ
+Çÿ
+Àÿ
+¹ÿ
+±ÿ
+©ÿ
+¡ÿ
+™ÿ
+‘ÿ
+Šÿ
+ÿ
+yÿ
+rÿ
+jÿ
+cÿ
+\ÿ
+Tÿ
+Lÿ
+Eÿ
+>ÿ
+7ÿ
+0ÿ
+*ÿ
+$ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+
ÿ
+	ÿÿÿ
+ÿÿÿÿÿ"ÿ(ÿ.ÿ5ÿ;ÿBÿIÿQÿXÿ`ÿfÿmÿuÿ}ÿ„ÿŒÿ”ÿœÿ£ÿªÿ±ÿ¹ÿÀÿÆÿÍÿÓÿÚÿÞÿäÿéÿîÿóÿ÷ÿûþþüÿøÿôÿðÿëÿçÿâÿÝÿØÿÒÿÌÿÅÿ¿ÿ¹ÿ²ÿ«ÿ¤ÿÿ–ÿÿˆÿ€ÿyÿrÿkÿdÿ]ÿVÿPÿIÿBÿ<ÿ6ÿ/ÿ)ÿ%ÿ ÿÿÿÿ
ÿ	ÿÿÿÿÿÿÿÿÿÿ ÿ$ÿ)ÿ.ÿ4ÿ:ÿ@ÿFÿMÿSÿZÿ`ÿfÿmÿtÿ{ÿ‚ÿ‰ÿÿ–ÿÿ¢ÿ©ÿ°ÿ¶ÿ¼ÿÃÿÉÿÏÿÕÿÚÿßÿãÿèÿíÿñÿõÿøÿûÿþüÿøÿôÿïÿêÿåÿàÿÚÿÔÿÎÿÇÿÀÿ¹ÿ²ÿ«ÿ£ÿÿ•ÿŽÿ†ÿ~ÿvÿnÿfÿ`ÿXÿQÿJÿCÿ<ÿ5ÿ/ÿ)ÿ$ÿÿÿÿÿÿÿÿÿ	ÿ
ÿÿÿÿÿ"ÿ'ÿ,ÿ2ÿ8ÿ>ÿDÿJÿQÿWÿ^ÿdÿjÿqÿxÿÿ†ÿÿ“ÿšÿ ÿ¦ÿ®ÿ´ÿºÿÀÿÇÿÌÿÒÿ×ÿÜÿáÿæÿêÿïÿóÿ÷ÿúÿýþÿýÿøÿôÿðÿëÿåÿßÿÚÿÓÿÍÿÆÿ¾ÿ·ÿ¯ÿ§ÿŸÿ—ÿÿ‡ÿ~ÿvÿnÿgÿ`ÿXÿPÿHÿ@ÿ9ÿ2ÿ+ÿ$ÿÿÿÿÿÿÿÿ��ÿ�ÿ�ÿ
+�ÿ�ÿ�ÿ�ÿ�ÿ%�ÿ+�ÿ2�ÿ8�ÿ?�ÿF�ÿN�ÿU�ÿ]�ÿd�ÿk�ÿs�ÿ{�ÿ‚�ÿŠ�ÿ’�ÿš�ÿ¢�ÿ©�ÿ°�ÿ¸�ÿ¿�ÿÅ�ÿÌ�ÿÒ�ÿÙ�ÿÞ�ÿä�ÿé�ÿî�ÿó�ÿ÷�ÿû�þþ�üÿ�øÿ�ôÿ�ðÿ�ëÿ�çÿ�âÿ�Üÿ�×ÿ�Ñÿ�Ëÿ�Äÿ�¾ÿ�¸ÿ�±ÿ�ªÿ�£ÿ�œÿ�”ÿ�ÿ�†ÿ�~ÿ�wÿ�pÿ�iÿ�bÿ�Zÿ�Sÿ�Mÿ�Fÿ�?ÿ�9ÿ�3ÿ�,ÿ�&ÿ�!ÿ�ÿ�ÿ�ÿ�ÿ�	ÿ�ÿ�ÿ��ÿ��ÿ�ÿ�ÿ
+�ÿ�ÿ�ÿ�ÿ�ÿ!�ÿ&�ÿ+�ÿ1�ÿ7�ÿ=�ÿC�ÿJ�ÿP�ÿW�ÿ]�ÿd�ÿk�ÿr�ÿy�ÿ€�ÿ‡�ÿŽ�ÿ”�ÿ›�ÿ¡�ÿ¨�ÿ¯�ÿµ�ÿ»�ÿÂ�ÿÈ�ÿÎ�ÿÔ�ÿÙ�ÿÞ�ÿã�ÿè�ÿí�ÿñ�ÿõ�ÿø�ÿû�ÿþ�üÿ�øÿ�ôÿ�ïÿ�êÿ�åÿ�ßÿ�Ùÿ�Óÿ�Íÿ�Æÿ�¿ÿ�¸ÿ�±ÿ�ªÿ�£ÿ�›ÿ�“ÿ�Œÿ�„ÿ�|ÿ�tÿ�lÿ�dÿ�]ÿ�Uÿ�Nÿ�Gÿ�@ÿ�9ÿ�2ÿ�,ÿ�&ÿ� ÿ�ÿ�ÿ�ÿ�ÿ�ÿ�ÿ��ÿ�ÿ�ÿ	�ÿ
�ÿ�ÿ�ÿ�ÿ�ÿ$�ÿ)�ÿ/�ÿ5�ÿ;�ÿA�ÿG�ÿN�ÿT�ÿ[�ÿb�ÿh�ÿo�ÿv�ÿ}�ÿ„�ÿ‹�ÿ‘�ÿ˜�ÿŸ�ÿ¦�ÿ­�ÿ³�ÿ¹�ÿ¿�ÿÆ�ÿË�ÿÑ�ÿÖ�ÿÜ�ÿá�ÿæ�ÿê�ÿï�ÿó�ÿ÷�ÿú�ÿý�þÿ�ýÿ�øÿ�ôÿ�ðÿ�ëÿ�åÿ�ßÿ�Ùÿ�Òÿ�Ìÿ�Åÿ�½ÿ�¶ÿ�®ÿ�¦ÿ�ÿ�•ÿ�ÿ�…ÿ�|ÿ�tÿ�lÿ�dÿ�]ÿ�Uÿ�Mÿ�Eÿ�=ÿ�6ÿ�/ÿ�(ÿ�!ÿ�ÿ�ÿ�ÿ�ÿ�ÿ�ÿ��ÿ��ÿ�ÿ�ÿ
+�ÿ�ÿ�ÿ�ÿ�ÿ%�ÿ+�ÿ2�ÿ8�ÿ?�ÿF�ÿN�ÿU�ÿ]�ÿd�ÿk�ÿs�ÿ{�ÿ‚�ÿŠ�ÿ’�ÿš�ÿ¢�ÿ©�ÿ°�ÿ¸�ÿ¿�ÿÅ�ÿÌ�ÿÒ�ÿÙ�ÿÞ�ÿä�ÿé�ÿî�ÿó�ÿ÷�ÿû�þþ�üÿ�øÿ�ôÿ�ðÿ�ëÿ�çÿ�âÿ�Üÿ�×ÿ�Ñÿ�Ëÿ�Äÿ�¾ÿ�¸ÿ�±ÿ�ªÿ�£ÿ�œÿ�”ÿ�ÿ�†ÿ�~ÿ�wÿ�pÿ�iÿ�bÿ�Zÿ�Sÿ�Mÿ�Fÿ�?ÿ�9ÿ�3ÿ�,ÿ�&ÿ�!ÿ�ÿ�ÿ�ÿ�ÿ�	ÿ�ÿ�ÿ��ÿ��ÿ�ÿ�ÿ
+�ÿ�ÿ�ÿ�ÿ�ÿ!�ÿ&�ÿ+�ÿ1�ÿ7�ÿ=�ÿC�ÿJ�ÿP�ÿW�ÿ]�ÿd�ÿk�ÿr�ÿy�ÿ€�ÿ‡�ÿŽ�ÿ”�ÿ›�ÿ¡�ÿ¨�ÿ¯�ÿµ�ÿ»�ÿÂ�ÿÈ�ÿÎ�ÿÔ�ÿÙ�ÿÞ�ÿã�ÿè�ÿí�ÿñ�ÿõ�ÿø�ÿû�ÿþ�üÿ�øÿ�ôÿ�ïÿ�êÿ�åÿ�ßÿ�Ùÿ�Óÿ�Íÿ�Æÿ�¿ÿ�¸ÿ�±ÿ�ªÿ�£ÿ�›ÿ�“ÿ�Œÿ�„ÿ�|ÿ�tÿ�lÿ�dÿ�]ÿ�Uÿ�Nÿ�Gÿ�@ÿ�9ÿ�2ÿ�,ÿ�&ÿ� ÿ�ÿ�ÿ�ÿ�ÿ�ÿ�ÿ��ÿ�ÿ�ÿ	�ÿ
�ÿ�ÿ�ÿ�ÿ�ÿ$�ÿ)�ÿ/�ÿ5�ÿ;�ÿA�ÿG�ÿN�ÿT�ÿ[�ÿb�ÿh�ÿo�ÿv�ÿ}�ÿ„�ÿ‹�ÿ‘�ÿ˜�ÿŸ�ÿ¦�ÿ­�ÿ³�ÿ¹�ÿ¿�ÿÆ�ÿË�ÿÑ�ÿÖ�ÿÜ�ÿá�ÿæ�ÿê�ÿï�ÿó�ÿ÷�ÿú�ÿý�þÿ�ýÿ�øÿ�ôÿ�ðÿ�ëÿ�åÿ�ßÿ�Ùÿ�Òÿ�Ìÿ�Åÿ�½ÿ�¶ÿ�®ÿ�¦ÿ�ÿ�•ÿ�ÿ�…ÿ�|ÿ�tÿ�lÿ�dÿ�]ÿ�Uÿ�Mÿ�Eÿ�=ÿ�6ÿ�/ÿ�(ÿ�!ÿ�ÿ�ÿ�ÿ�ÿ�ÿ�ÿ��û��û�û�û
+�û�û�û�û�û$�û*�û1�û7�û>�ûE�ûM�ûT�û\�ûb�ûi�ûq�ûy�û€�ûˆ�û�û˜�ûŸ�û¦�û­�ûµ�û¼�ûÂ�ûÉ�ûÏ�ûÖ�ûÚ�ûà�ûå�ûê�ûï�ûó�û÷�úú�øû�ôû�ðû�ìû�çû�ãû�Þû�Ùû�Ôû�Îû�Èû�Áû�»û�µû�®û�§û� û�™û�’û�‹û�„û�|û�uû�nû�gû�`û�Yû�Rû�Lû�Eû�>û�8û�2û�+û�%û�!û�û�û�û�û�	û�û�û��û��û�û�û
+�û�û�û�û�û �û%�û*�û0�û6�û<�ûB�ûI�ûO�ûV�û\�ûb�ûi�ûp�ûw�û~�û…�ûŒ�û’�û™�ûž�û¥�û¬�û²�û¸�û¿�ûÅ�ûË�ûÑ�ûÖ�ûÛ�ûß�ûä�ûé�ûí�ûñ�ûô�û÷�ûú�øû�ôû�ðû�ëû�æû�áû�Üû�Öû�Ðû�Êû�Ãû�¼û�µû�®û�§û�Ÿû�™û�‘û�Šû�‚û�zû�rû�jû�bû�\û�Tû�Mû�Fû�?û�8û�1û�+û�%û� û�û�û�û�û�û�û��û�û�û	�û
�û�û�û�û�û#�û(�û.�û4�û:�û@�ûF�ûM�ûS�ûZ�û`�ûf�ûm�ût�û{�û‚�û‰�û�û–�ûœ�û¢�ûª�û°�û¶�û¼�ûÃ�ûÈ�ûÎ�ûÓ�ûØ�ûÝ�ûâ�ûæ�ûë�ûï�ûó�ûö�ûù�úû�ùû�ôû�ðû�ìû�çû�áû�Ûû�Öû�Ïû�Éû�Âû�ºû�³û�«û�£û�›û�“û�‹û�ƒû�zû�rû�jû�cû�\û�Tû�Lû�Dû�<û�5û�.û�'û� û�û�û�û�û�û�û��õ��õ�õ�õ
+�õ�õ�õ�õ�õ$�õ)�õ0�õ6�õ<�õC�õK�õR�õY�õ_�õg�õn�õv�õ}�õ…�õŒ�õ”�õœ�õ¢�õ©�õ±�õ·�õ½�õÄ�õÊ�õÐ�õÕ�õÛ�õà�õå�õé�õí�õñ�ôô�òõ�îõ�êõ�çõ�âõ�Þõ�Ùõ�Óõ�Ïõ�Éõ�Ãõ�¼õ�·õ�±õ�ªõ�£õ�œõ�–õ�Žõ�‡õ�õ�yõ�rõ�lõ�eõ�^õ�Wõ�Põ�Jõ�Cõ�=õ�7õ�1õ�*õ�%õ� õ�õ�õ�õ�
õ�	õ�õ�õ��õ��õ�õ�õ	�õ
�õ�õ�õ�õ �õ%�õ)�õ/�õ5�õ;�õ@�õG�õM�õT�õY�õ`�õg�õn�õt�õ{�õ�õ‡�õŽ�õ•�õ›�õ¡�õ¨�õ®�õ´�õº�õÀ�õÆ�õÌ�õÐ�õÕ�õÚ�õß�õä�õè�õë�õî�õñ�õô�òõ�îõ�êõ�æõ�áõ�Üõ�Öõ�Ðõ�Ëõ�Åõ�¾õ�¸õ�±õ�ªõ�¢õ�œõ�•õ�õ�‡õ�õ�wõ�oõ�hõ�`õ�Yõ�Rõ�Kõ�Dõ�>õ�7õ�0õ�*õ�%õ�õ�õ�õ�õ�õ�õ�õ��õ�õ�õ	�õ�õ�õ�õ�õ�õ"�õ'�õ-�õ3�õ9�õ>�õD�õK�õQ�õX�õ^�õd�õk�õq�õx�õ�õ…�õ‹�õ’�õ™�õŸ�õ¥�õ¬�õ²�õ¸�õ¾�õÃ�õÉ�õÎ�õÓ�õØ�õÝ�õá�õæ�õê�õì�õð�õó�ôõ�óõ�îõ�ëõ�çõ�âõ�Üõ�Öõ�Ðõ�Êõ�Äõ�½õ�¶õ�¯õ�§õ�Ÿõ�—õ�õ�‡õ�€õ�wõ�oõ�hõ�`õ�Yõ�Rõ�Jõ�Bõ�;õ�4õ�-õ�&õ� õ�õ�õ�õ�õ�õ�õ��ï��ï�ï�ï	�ï�ï�ï�ï�ï#�ï(�ï/�ï4�ï;�ïB�ïI�ïP�ïW�ï^�ïd�ïl�ïs�ïz�ï�ï‰�ï�ï˜�ïž�ï¥�ï¬�ï³�ï¹�ï¿�ïÅ�ïË�ïÐ�ïÖ�ïÚ�ïß�ïä�ïè�ïë�îî�ìï�éï�åï�áï�Üï�Ùï�Ôï�Îï�Êï�Äï�¾ï�¸ï�²ï�¬ï�¦ï�Ÿï�™ï�’ï�‹ï�„ï�}ï�vï�oï�iï�cï�\ï�Uï�Nï�Hï�Bï�;ï�5ï�0ï�)ï�$ï�ï�ï�ï�ï�
ï�ï�ï�ï��ï��ï�ï�ï	�ï
�ï�ï�ï�ï�ï$�ï(�ï.�ï4�ï9�ï?�ïE�ïK�ïR�ïW�ï^�ïd�ïk�ïq�ïx�ï~�ï„�ï‹�ï‘�ï—�ï�ï¤�ïª�ï¯�ï¶�ï»�ïÁ�ïÇ�ïË�ïÐ�ïÕ�ïÙ�ïÞ�ïâ�ïæ�ïè�ïë�ïî�ìï�èï�åï�àï�Ûï�×ï�Ñï�Ëï�Æï�Àï�ºï�³ï�¬ï�¦ï�žï�˜ï�‘ï�Šï�ƒï�|ï�tï�mï�eï�^ï�Wï�Pï�Iï�Cï�<ï�5ï�/ï�)ï�$ï�ï�ï�ï�ï�
+ï�ï�ï��ï�ï�ï�ï�ï�ï�ï�ï�ï"�ï'�ï,�ï1�ï7�ï=�ïC�ïI�ïO�ïU�ï\�ïa�ïh�ïn�ïu�ï{�ï‚�ïˆ�ïŽ�ï•�ï›�ï¡�ï¨�ï®�ï³�ïº�ï¾�ïÄ�ïÉ�ïÎ�ïÓ�ïØ�ïÛ�ïà�ïä�ïç�ïê�ïí�îï�ìï�éï�åï�áï�Üï�×ï�Ñï�Ëï�Åï�¿ï�¹ï�±ï�ªï�£ï�›ï�“ï�Œï�„ï�}ï�tï�mï�fï�_ï�Wï�Pï�Hï�Aï�9ï�3ï�,ï�%ï�ï�ï�ï�ï�
+ï�ï�ï��é��é�é�é	�é�é�é�é�é"�é'�é.�é3�é9�é@�éG�éN�éU�é[�éb�éi�ép�éw�é~�é…�é�é”�éš�é¡�é¨�é®�é´�éº�éÀ�éÆ�éË�éÐ�éÕ�éÙ�éÞ�éâ�éæ�èè�æé�ãé�ßé�Ûé�×é�Óé�Îé�Éé�Åé�¿é�ºé�³é�®é�¨é�¡é�›é�•é�Žé�‡é�€é�{é�sé�lé�gé�`é�Yé�Ré�Lé�Fé�@é�:é�4é�.é�(é�#é�é�é�é�é�
é�é�é�é��é��é�é�é	�é
�é�é�é�é�é#�é'�é-�é2�é8�é=�éD�éI�éP�éU�é[�éb�éh�éo�ét�é{�é�é‡�éŽ�é“�éš�é �é¥�é«�é±�é·�é¼�éÂ�éÆ�éË�éÏ�éÔ�éÙ�éÜ�éà�éã�éå�éè�æé�ãé�ßé�Úé�Öé�Ñé�Ìé�Æé�Áé�»é�µé�¯é�¨é�¢é�šé�”é�Žé�†é�€é�yé�qé�jé�cé�[é�Ué�Né�Gé�Aé�;é�4é�.é�(é�#é�é�é�é�é�
+é�é�é��é�é�é�é�é�é�é�é�é!�é&�é+�é0�é6�é;�éA�éG�éM�éS�éY�é_�éf�ék�ér�éx�é�é…�é‹�é‘�é—�éž�é¤�é©�é¯�éµ�éº�é¿�éÄ�éÉ�éÎ�éÒ�éÖ�éÚ�éÞ�éâ�éä�éç�èé�æé�ãé�ßé�Ûé�×é�Ñé�Ìé�Æé�Àé�ºé�´é�­é�¦é�Ÿé�˜é�é�ˆé�é�yé�qé�ké�cé�\é�Ué�Né�Fé�?é�8é�1é�+é�$é�é�é�é�é�
+é�é�é��â��â�â�â	�â
�â�â�â�â!�â&�â,�â2�â8�â>�âE�âK�âR�âY�â_�âf�âm�âs�âz�â�âˆ�â�â–�âœ�â£�â©�â®�âµ�âº�âÀ�âÅ�âÊ�âÎ�âÓ�â×�âÛ�âß�áá�ßâ�Üâ�Øâ�Õâ�Ðâ�Íâ�Èâ�Ãâ�¿â�¹â�´â�®â�©â�£â�œâ�–â�â�Šâ�„â�}â�vâ�pâ�iâ�dâ�]â�Vâ�Pâ�Jâ�Dâ�>â�8â�2â�-â�'â�"â�â�â�â�â�â�â�â�â��â��â�â�â	�â
�â�â�â�â�â"�â&�â,�â1�â6�â;�âB�âG�âM�âS�âY�â_�âe�âk�âr�âw�â}�âƒ�â‰�â�â•�â›�â �â¦�â¬�â±�â·�â¼�âÀ�âÅ�âÉ�âÎ�âÒ�âÖ�âÙ�âÜ�âÞ�âá�ßâ�Üâ�Øâ�Ôâ�Ïâ�Ëâ�Æâ�Àâ�»â�¶â�¯â�©â�£â�â�–â�â�‰â�‚â�|â�uâ�nâ�gâ�`â�Yâ�Sâ�Kâ�Eâ�?â�9â�3â�,â�'â�"â�â�â�â�â�
+â�â�â��â�â�â�â�â�â�â�â�â �â%�â)�â/�â4�â9�â?�âE�âK�âQ�âW�â]�âc�âh�ân�âu�â{�â�â†�âŒ�â“�â™�âŸ�â¤�âª�â°�â´�â¹�â¾�âÃ�âÈ�âÌ�âÐ�âÔ�â×�âÛ�âÝ�âà�áâ�àâ�Üâ�Øâ�Ôâ�Ðâ�Ëâ�Åâ�Àâ�ºâ�µâ�®â�§â�¡â�šâ�“â�‹â�„â�}â�vâ�nâ�gâ�_â�Yâ�Râ�Kâ�Dâ�=â�6â�0â�*â�#â�â�â�â�â�
+â�â�â��Ú��Ú�Ú�Ú�Ú
�Ú�Ú�Ú�Ú�Ú%�Ú+�Ú0�Ú6�Ú<�ÚC�ÚI�ÚO�ÚU�Ú[�Úb�Úi�Úo�Úv�Ú}�Úƒ�ÚŠ�ڐ�Ú–�ڝ�Ú£�Ú¨�Ú®�Ú³�Ú¹�Ú½�ÚÃ�ÚÇ�ÚË�ÚÏ�ÚÓ�Ú×�ÙÙ�×Ú�ÔÚ�ÑÚ�ÍÚ�ÉÚ�ÆÚ�ÁÚ�¼Ú�¸Ú�²Ú�®Ú�¨Ú�£Ú�Ú�—Ú�‘Ú�‹Ú�…Ú�Ú�xÚ�rÚ�lÚ�eÚ�`Ú�ZÚ�SÚ�MÚ�GÚ�AÚ�<Ú�6Ú�0Ú�+Ú�%Ú�!Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú��Ú��Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú!�Ú%�Ú*�Ú/�Ú4�Ú9�Ú?�ÚE�ÚK�ÚP�ÚV�Ú\�Úb�Úh�Úm�Ús�Úy�Ú�Ú…�ÚŠ�ڐ�Ú–�Ú›�Ú �Ú¦�Ú«�Ú°�Úµ�Úº�Ú¾�ÚÂ�ÚÆ�ÚË�ÚÎ�ÚÑ�ÚÔ�ÚÖ�ÚÙ�×Ú�ÔÚ�ÑÚ�ÌÚ�ÈÚ�ÄÚ�¿Ú�ºÚ�´Ú�¯Ú�©Ú�£Ú�Ú�—Ú�Ú�ŠÚ�„Ú�~Ú�xÚ�qÚ�jÚ�cÚ�\Ú�VÚ�PÚ�IÚ�CÚ�=Ú�7Ú�1Ú�+Ú�&Ú�!Ú�Ú�Ú�Ú�Ú�
+Ú�Ú�Ú��Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú�Ú#�Ú(�Ú-�Ú2�Ú7�Ú=�ÚB�ÚH�ÚN�ÚS�ÚX�Ú_�Úd�Új�Úp�Úv�Ú|�ځ�Ú‡�ڍ�Ú“�Ú™�Úž�Ú¤�Úª�Ú®�Ú²�Ú·�Ú»�ÚÀ�ÚÅ�ÚÈ�ÚÌ�ÚÐ�ÚÒ�ÚÕ�ÚØ�ÙÚ�ØÚ�ÔÚ�ÑÚ�ÎÚ�ÉÚ�ÃÚ�¾Ú�¹Ú�³Ú�®Ú�¨Ú�¡Ú�›Ú�”Ú�ŽÚ�†Ú�Ú�xÚ�qÚ�jÚ�cÚ�]Ú�VÚ�OÚ�IÚ�BÚ�;Ú�4Ú�.Ú�(Ú�"Ú�Ú�Ú�Ú�Ú�	Ú�Ú�Ú��Ò��Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò#�Ò)�Ò.�Ò4�Ò9�Ò@�ÒF�ÒL�ÒR�ÒY�Ò_�Òe�Òl�Òq�Òx�Ò~�Ò…�Ò‹�Ò‘�Ò—�ҝ�Ò¢�Ò¨�Ò­�Ò²�Ò¶�Ò»�ÒÀ�ÒÄ�ÒÈ�ÒÌ�ÒÏ�ÑÑ�ÏÒ�ÌÒ�ÈÒ�ÆÒ�ÂÒ�¾Ò�¹Ò�µÒ�±Ò�«Ò�§Ò�¢Ò�Ò�—Ò�‘Ò�ŒÒ�†Ò�€Ò�zÒ�tÒ�oÒ�hÒ�bÒ�]Ò�WÒ�PÒ�JÒ�EÒ�?Ò�:Ò�4Ò�.Ò�)Ò�$Ò� Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò��Ò��Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò�Ò$�Ò)�Ò-�Ò2�Ò7�Ò=�ÒB�ÒH�ÒM�ÒR�ÒX�Ò^�Òd�Òi�Òn�Òt�Òz�Ò€�Ò…�ÒŠ�Ґ�Ò•�Òš�Ò �Ò¥�Òª�Ò¯�Ò³�Ò·�Ò»�Ò¿�ÒÃ�ÒÆ�ÒÊ�ÒÌ�ÒÏ�ÒÑ�ÐÒ�ÌÒ�ÉÒ�ÅÒ�ÁÒ�½Ò�¸Ò�³Ò�®Ò�©Ò�£Ò�Ò�˜Ò�’Ò�‹Ò�…Ò�Ò�yÒ�rÒ�mÒ�fÒ�`Ò�YÒ�SÒ�MÒ�FÒ�@Ò�;Ò�5Ò�/Ò�)Ò�$Ò�Ò�Ò�Ò�Ò�
Ò�	Ò�Ò�Ò��Ò�Ò�Ò�Ò
+�Ò�Ò�Ò�Ò�Ò�Ò"�Ò&�Ò+�Ò0�Ò5�Ò;�Ò@�ÒE�ÒK�ÒP�ÒU�Ò\�Òa�Òf�Òl�Òr�Òx�Ò}�Ò‚�Òˆ�ÒŽ�Ò”�Ò™�Òž�Ò£�Ò§�Ò«�Ò°�Òµ�Ò¹�Ò¾�ÒÁ�ÒÅ�ÒÈ�ÒË�ÒÍ�ÒÐ�ÑÒ�ÐÒ�ÍÒ�ÉÒ�ÅÒ�ÁÒ�¼Ò�·Ò�²Ò�­Ò�¨Ò�¢Ò�›Ò�–Ò�Ò�ˆÒ�Ò�zÒ�tÒ�mÒ�fÒ�`Ò�ZÒ�SÒ�LÒ�FÒ�?Ò�9Ò�2Ò�,Ò�'Ò�!Ò�Ò�Ò�Ò�
Ò�	Ò�Ò�Ò��É��É�É�É�É�É�É�É�É�É"�É'�É,�É1�É7�É=�ÉC�ÉI�ÉO�ÉU�É[�Éa�Ég�Él�És�Éy�É�É…�ÉŠ�É‘�É–�É›�É �É¥�É«�ɯ�ɳ�É·�É»�É¿�ÉÃ�ÉÆ�ÈÈ�ÆÉ�ÄÉ�ÁÉ�½É�¹É�¶É�²É�®É�ªÉ�¤É� É�›É�–É�‘É�‹É�†É�€É�{É�uÉ�oÉ�iÉ�cÉ�]É�XÉ�SÉ�MÉ�GÉ�BÉ�<É�7É�2É�-É�(É�"É�É�É�É�É�É�É�É�É�É��É��É�É�É�É�É�É�É�É�É�É"�É'�É,�É0�É5�É:�É?�ÉE�ÉI�ÉO�ÉT�ÉY�É_�Éd�Éj�Éo�Éu�Éz�É�É„�ÉŠ�ɏ�É“�É™�Éž�É¢�ɧ�É«�ɯ�ɳ�É·�É»�ɾ�ÉÁ�ÉÃ�ÉÆ�ÉÈ�ÇÉ�ÃÉ�ÀÉ�¼É�¸É�µÉ�°É�«É�¦É�¢É�œÉ�—É�‘É�ŒÉ�…É�€É�zÉ�sÉ�nÉ�hÉ�bÉ�\É�UÉ�OÉ�JÉ�CÉ�>É�8É�3É�-É�(É�#É�É�É�É�É�
É�	É�É�É��É�É�É�É
+�É
�É�É�É�É�É!�É%�É)�É.�É3�É8�É=�ÉB�ÉH�ÉM�ÉR�ÉX�É]�Éb�Éh�Ém�Ér�Éw�É}�É‚�Ɉ�ɍ�É’�É—�Éœ�É �ɤ�É©�É­�ɲ�ɶ�ɹ�ɽ�ÉÀ�ÉÂ�ÉÄ�ÉÇ�ÈÉ�ÇÉ�ÄÉ�ÁÉ�½É�¹É�´É�¯É�«É�¥É� É�›É�•É�É�‰É�‚É�{É�uÉ�oÉ�hÉ�bÉ�\É�VÉ�OÉ�IÉ�CÉ�<É�6É�0É�*É�%É�É�É�É�É�É�É�É�É��À��À�À�À�À�À�À�À�À�À �À%�À*�À/�À4�À:�À@�ÀF�ÀK�ÀQ�ÀW�À]�Àb�Àg�Àm�Às�Ày�À�À„�ÀŠ�À�À”�À™�Àž�À£�À§�À«�À¯�À³�À·�Àº�À½�¿¿�½À�»À�¸À�µÀ�±À�®À�ªÀ�¦À�¡À�À�™À�”À�À�ŠÀ�…À�€À�zÀ�uÀ�oÀ�jÀ�eÀ�`À�YÀ�TÀ�OÀ�JÀ�DÀ�?À�:À�5À�/À�+À�&À�!À�À�À�À�À�
À�
+À�À�À�À��À��À�À�À�À�À�À�À�À�À�À!�À%�À*�À.�À3�À7�À<�ÀA�ÀF�ÀL�ÀP�ÀU�ÀZ�À`�Àe�Àj�Ào�Àu�Ày�À~�À„�Àˆ�À�À’�À—�À›�À �À£�À§�À«�À¯�À²�Àµ�À¸�Àº�À½�À¿�¾À�»À�¸À�´À�°À�¬À�¨À�£À�ŸÀ�šÀ�•À�À�‹À�…À�À�zÀ�tÀ�nÀ�iÀ�dÀ�^À�XÀ�RÀ�LÀ�FÀ�@À�;À�6À�0À�+À�&À�!À�À�À�À�À�À�À�À�À��À�À�À�À	�À�À�À�À�À�À�À#�À(�À,�À1�À5�À:�À?�ÀE�ÀJ�ÀN�ÀT�ÀY�À^�Àc�Àh�Àm�Àr�Àw�À}�À‚�À‡�À‹�À�À•�À™�À�À¡�À¥�Àª�À­�À°�À´�À·�À¹�À»�À¾�¿À�¾À�»À�¸À�´À�°À�¬À�§À�£À�žÀ�™À�”À�ŽÀ�‰À�ƒÀ�|À�vÀ�pÀ�kÀ�dÀ�^À�XÀ�RÀ�LÀ�FÀ�@À�:À�4À�.À�(À�#À�À�À�À�À�À�À�À�À��·��·�·�·�·
+�·�·�·�·�·�·$�·(�·-�·2�·8�·=�·B�·G�·M�·S�·Y�·^�·c�·h�·n�·t�·y�·~�·ƒ�·‰�·Ž�·’�·–�·›�·Ÿ�·£�·§�·«�·®�·²�·µ�¶¶�´·�²·�®·�¬·�©·�¦·�¢·�ž·�š·�–·�’·�·�ˆ·�„·�·�z·�u·�p·�j·�e·�`·�Z·�U·�P·�K·�F·�@·�;·�7·�2·�-·�)·�$·�·�·�·�·�·�·�	·�·�·�·��·��·�·�·�·
+�·
�·�·�·�·�·�·#�·(�·+�·0�·5�·:�·>�·B�·G�·L�·Q�·V�·[�·`�·e�·j�·o�·t�·y�·~�·‚�·†�·‹�·�·”�·˜�·œ�·Ÿ�·£�·¦�·ª�·­�·°�·²�·´�·¶�µ·�²·�¯·�¬·�¨·�¤·� ·�œ·�—·�“·�Ž·�‰·�„·�·�y·�t·�o·�i·�d·�_·�Y·�S·�N·�H·�C·�=·�8·�3·�.·�)·�$·� ·�·�·�·�·�·�·�·�·��·�·�·�·	�·�·�·�·�·�·�·"�·&�·*�·.�·3�·8�·<�·A�·E�·J�·P�·U�·Z�·_�·d�·h�·m�·r�·w�·|�·€�·…�·Š�·Ž�·’�·–�·š�·�·¢�·¥�·¨�·¬�·¯�·±�·³�·¶�¶·�µ·�²·�°·�¬·�¨·�¤·�Ÿ·�›·�—·�’·�·�‡·�‚·�|·�w·�p·�k·�f·�_·�Y·�T·�N·�H·�B·�=·�7·�1·�+·�&·�!·�·�·�·�·�·�·�·�·��­��­�­�­�­
+�­
�­�­�­�­�­"�­&�­*�­/�­5�­9�­?�­D�­I�­N�­T�­Y�­^�­c�­h�­n�­r�­w�­|�­�­†�­Š�­Ž�­“�­—�­š�­ž�­¡�­¥�­¨�­«�¬¬�ª­�¨­�¦­�£­� ­�­�™­�–­�’­�­�‰­�…­�­�}­�x­�s­�n­�j­�d­�_­�[­�U­�P­�L­�G­�B­�=­�8­�4­�/­�+­�'­�"­�­�­�­�­�­�­�	­�­�­�­��­��­�­�­�­	�­�­�­�­�­�­�­"�­%�­)�­.�­2�­6�­:�­>�­C�­H�­M�­Q�­V�­[�­`�­d�­i�­m�­r�­w�­{�­�­„�­ˆ�­Œ�­�­“�­—�­š�­�­¡�­¤�­¦�­¨�­ª�­¬�«­�¨­�¦­�¢­�Ÿ­�›­�—­�“­�­�‹­�†­�‚­�}­�x­�s­�n­�h­�c­�^­�Y­�T­�N­�J­�D­�?­�:­�5­�0­�,­�'­�"­�­�­�­�­�­�­�­�­�­��­�­�­�­�­�­�­�­�­�­�­ �­$�­(�­,�­0�­5�­9�­>�­B�­G�­K�­P�­U�­Y�­^�­b�­g�­l�­p�­u�­y�­}�­‚�­†�­Š�­�­’�­•�­™�­œ�­Ÿ�­¢�­¥�­§�­©�­¬�¬­�«­�©­�¦­�£­� ­�›­�˜­�“­�­�Š­�…­�€­�{­�u­�p­�j­�e­�`­�Z­�T­�O­�J­�D­�?­�9­�4­�.­�)­�$­� ­�­�­�­�­�­�­�­�­��£��£�£�£�£	�£�£�£�£�£�£ �£#�£(�£,�£1�£6�£;�£@�£E�£J�£O�£S�£X�£]�£c�£h�£l�£p�£u�£z�£}�£‚�£‡�£‹�£Ž�£‘�£•�£˜�£›�£ž�£¡�¢¢� £�ž£�›£�™£�—£�”£�£�£�‰£�…£�£�}£�y£�u£�q£�l£�h£�c£�_£�Z£�U£�Q£�L£�H£�C£�>£�:£�5£�1£�-£�(£�$£� £�£�£�£�£�£�£�£�£�£�£��£��£�£�£�£	�£�£�£�£�£�£�£ �£#�£&�£+�£/�£2�£7�£;�£?�£D�£H�£M�£Q�£V�£Z�£_�£c�£g�£k�£p�£t�£x�£|�£€�£„�£ˆ�£‹�£Ž�£‘�£”�£—�£š�£�£ž�£ �£¢�¡£�Ÿ£�œ£�™£�–£�’£�£�‹£�‡£�ƒ£�£�z£�v£�q£�l£�h£�b£�]£�Y£�T£�O£�K£�E£�?£�;£�7£�2£�-£�)£�%£� £�£�£�£�£�
£�
+£�£�£�£��£�£�£�£�£�£
�£�£�£�£�£�£"�£&�£)�£-�£2�£6�£:�£?�£B�£G�£L�£O�£T�£X�£\�£a�£e�£j�£n�£r�£v�£z�£~�£‚�£…�£‰�£Œ�£�£“�£–�£™�£›�£�£Ÿ�£¢�¢£�¡£�Ÿ£�œ£�š£�–£�“£�Ž£�‹£�‡£�‚£�}£�y£�u£�o£�i£�e£�`£�Z£�U£�P£�J£�E£�@£�;£�6£�1£�,£�'£�"£�£�£�£�£�£�
+£�£�£�£��™��™�™�™�™	�™�™�™�™�™�™�™!�™%�™*�™.�™3�™7�™<�™@�™E�™J�™N�™S�™X�™]�™a�™f�™j�™n�™s�™v�™z�™~�™‚�™…�™ˆ�™Œ�™�™’�™”�™—�˜˜�—™�•™�’™�™�™�Š™�‡™�„™�™�}™�z™�v™�r™�n™�j™�e™�a™�]™�Y™�T™�Q™�L™�H™�C™�?™�:™�6™�2™�.™�*™�&™�"™�™�™�™�™�™�
™�™�™�™�™�™��™��™�™�™�™�™�™
�™�™�™�™�™�™ �™$�™(�™,�™/�™4�™7�™;�™@�™D�™H�™L�™P�™U�™Y�™]�™a�™e�™i�™m�™p�™t�™x�™|�™�™‚�™…�™ˆ�™‹�™Ž�™‘�™“�™”�™–�™˜�—™�•™�’™�™�Œ™�‰™�†™�‚™�™�{™�w™�s™�n™�j™�e™�a™�\™�X™�S™�O™�J™�E™�@™�;™�7™�3™�.™�*™�&™�#™�™�™�™�™�™�™�	™�™�™�™��™�™�™�™�™
+�™�™�™�™�™�™�™ �™#�™'�™+�™/�™3�™7�™;�™?�™C�™F�™J�™O�™T�™W�™[�™_�™c�™g�™k�™o�™r�™w�™z�™}�™�™„�™‡�™Š�™�™�™‘�™”�™•�™˜�˜™�—™�•™�“™�™�™�Š™�…™�‚™�~™�z™�v™�q™�m™�i™�c™�^™�Z™�U™�P™�K™�F™�A™�<™�7™�3™�.™�)™�$™� ™�™�™�™�™�
™�	™�™�™�™���������������#�'�+�/�4�8�<�A�E�I�N�R�V�[�_�c�g�k�o�s�v�z�}�€�ƒ�†�ˆ�‹��ŽŽ��‹�ˆ�†�„���|�x�u�r�n�j�g�c�_�[�W�S�N�J�F�C�?�;�7�3�/�+�'�$� �������
+������������
+��������"�%�)�,�0�4�8�;�?�C�G�K�O�S�W�Z�^�b�f�i�m�p�t�w�z�|��‚�…�‡�‰�‹�Œ�Ž��‹�‰�†�ƒ�€�}�z�v�s�o�k�g�c�_�[�V�R�N�I�E�@�<�8�4�0�+�'�#� ����������������	��������!�$�(�+�/�3�7�;�>�A�E�I�M�Q�U�X�\�`�d�h�k�o�r�u�x�{�~��ƒ�…�ˆ�Š�Œ�Ž�Ž��‹�‰�‡�„��}�z�v�s�n�j�f�b�]�X�T�O�K�F�A�=�8�4�/�+�&�"�������	�����…��…�…�…�…�…
+�…
�…�…�…�…�…�… �…$�…(�…,�…0�…4�…8�…<�…@�…D�…H�…L�…P�…U�…X�…\�…`�…d�…g�…j�…n�…q�…t�…w�…z�…|�…�…�…ƒ�„„�ƒ…�…�…�}…�{…�x…�v…�s…�p…�m…�j…�f…�c…�_…�\…�X…�T…�Q…�M…�I…�E…�A…�>…�;…�7…�3…�/…�+…�(…�%…�!…�…�…�…�…�…�…�…�	…�…�…�…�…��…��…�…�…�…�…	�…�…�…�…�…�…�…�…�…"�…&�…)�…-�…0�…4�…7�…;�…?�…B�…F�…J�…M�…Q�…T�…X�…[�…^�…b�…e�…h�…k�…o�…q�…t�…v�…y�…|�…~�…€�…�…‚�…„�ƒ…�…�…�}…�z…�w…�t…�q…�n…�k…�g…�d…�`…�\…�X…�T…�P…�L…�H…�D…�@…�<…�8…�4…�0…�,…�(…�%…�!…�…�…�…�…�…�
…�
+…�…�…�…�…��…�…�…�…�…	�…�…
�…�…�…�…�…�…�…!�…%�…(�…,�…0�…3�…6�…9�…>�…A�…D�…H�…L�…O�…R�…V�…Z�…]�…`�…d�…g�…j�…m�…p�…s�…u�…x�…z�…|�…~�…€�…‚�…„�„…�ƒ…�…�…�}…�{…�w…�t…�q…�n…�j…�g…�c…�_…�[…�W…�R…�N…�J…�E…�A…�=…�8…�4…�0…�,…�(…�$…�…�…�…�…�…�…�…�…�…�…�…��z��z��z�z�z�z	�z�z�z�z�z�z�z�z!�z%�z(�z,�z/�z3�z7�z;�z>�zB�zF�zJ�zM�zQ�zT�zX�z[�z^�zb�zd�zh�zj�zm�zo�zr�zt�zv�zx�zy�xz�vz�tz�rz�pz�nz�lz�iz�gz�dz�az�^z�[z�Xz�Tz�Qz�Nz�Jz�Fz�Cz�@z�=z�8z�5z�2z�/z�+z�(z�$z�!z�z�z�z�z�z�z�
z�z�	z�z�z�z�z��z��z�z�z�z�z	�z�z
�z�z�z�z�z�z�z �z#�z&�z)�z,�z/�z3�z6�z9�z=�z@�zC�zG�zJ�zM�zP�zT�zW�zY�z]�z`�zc�ze�zh�zj�zm�zo�zq�zs�zu�zv�zx�zy�yz�wz�uz�rz�pz�nz�kz�hz�ez�bz�_z�[z�Xz�Uz�Qz�Nz�Jz�Fz�Cz�?z�;z�7z�3z�/z�,z�(z�%z�!z�z�z�z�z�z�z�z�
+z�z�z�z�z��z�z�z�z�z�z
+�z�z�z�z�z�z�z�z�z"�z%�z(�z+�z.�z2�z5�z8�z;�z?�zB�zE�zH�zL�zO�zR�zV�zX�z[�z_�za�zd�zf�zi�zl�zn�zo�zr�zt�zv�zw�zy�zz�yz�wz�uz�sz�pz�nz�kz�hz�dz�bz�^z�Zz�Wz�Sz�Oz�Kz�Gz�Cz�@z�;z�7z�4z�0z�,z�(z�$z� z�z�z�z�z�z�z�
+z�z�z�z�z��p��p��p�p�p�p�p
+�p
�p�p�p�p�p�p�p"�p%�p(�p+�p/�p2�p6�p9�p<�p@�pD�pG�pJ�pM�pQ�pT�pV�pY�p\�p_�pa�pd�pf�ph�pk�pl�pn�po�np�lp�kp�ip�gp�ep�cp�`p�^p�\p�Yp�Vp�Sp�Pp�Mp�Jp�Gp�Dp�Ap�>p�;p�7p�4p�1p�.p�+p�'p�$p�"p�p�p�p�p�p�p�p�p�
+p�p�p�p�p�p��p��p�p�p�p�p�p
+�p�p�p�p�p�p�p�p�p �p#�p&�p(�p+�p/�p2�p5�p8�p;�p>�pA�pD�pG�pJ�pM�pO�pR�pU�pX�pZ�p]�p_�pb�pd�pf�ph�pj�pl�pl�pn�po�op�mp�kp�ip�gp�ep�bp�_p�]p�Zp�Wp�Tp�Qp�Np�Jp�Gp�Dp�@p�=p�:p�6p�3p�/p�+p�(p�%p�"p�p�p�p�p�p�p�p�p�	p�p�p�p�p��p�p�p�p�p�p	�p�p
�p�p�p�p�p�p�p�p"�p%�p(�p+�p-�p1�p4�p7�p:�p=�p?�pB�pF�pI�pL�pN�pQ�pT�pW�pY�p\�p^�p`�pc�pe�pf�pi�pj�pl�pm�po�pp�op�mp�kp�ip�gp�dp�bp�_p�\p�Yp�Vp�Sp�Pp�Lp�Ip�Ep�Ap�>p�:p�6p�3p�/p�,p�(p�%p�!p�p�p�p�p�p�p�p�	p�p�p�p�p��f��f��f�f�f�f�f	�f�f�f�f�f�f�f�f�f!�f%�f'�f+�f.�f1�f4�f7�f:�f=�fA�fC�fF�fI�fL�fO�fQ�fT�fW�fY�f[�f]�f_�fa�fc�fd�fe�df�cf�af�`f�^f�\f�Zf�Xf�Vf�Sf�Qf�Nf�Lf�If�Ff�Df�Af�>f�;f�8f�5f�2f�/f�-f�*f�'f�$f�!f�f�f�f�f�f�f�f�
f�f�	f�f�f�f�f�f��f��f�f�f�f�f�f	�f�f
�f�f�f�f�f�f�f�f �f"�f%�f(�f*�f-�f0�f3�f6�f8�f;�f>�f@�fC�fF�fH�fK�fN�fP�fR�fU�fW�fY�f[�f]�f_�f`�fb�fc�fd�fe�ef�cf�bf�`f�^f�\f�Yf�Wf�Tf�Rf�Of�Lf�Jf�Gf�Df�Af�>f�:f�8f�4f�1f�.f�+f�(f�%f�"f�f�f�f�f�f�f�f�f�
+f�f�f�f�f�f��f�f�f�f�f�f�f
+�f�f�f�f�f�f�f�f�f�f!�f$�f'�f)�f,�f/�f2�f4�f7�f:�f<�f?�fB�fE�fG�fJ�fL�fO�fQ�fS�fU�fX�fZ�f\�f]�f_�fa�fb�fd�fe�ff�ef�cf�af�`f�^f�[f�Yf�Wf�Tf�Qf�Of�Kf�If�Ef�Bf�?f�;f�8f�5f�1f�.f�+f�(f�%f�!f�f�f�f�f�f�f�
f�
+f�f�f�f�f�f��\��\��\�\�\�\�\�\�\
�\�\�\�\�\�\�\�\!�\#�\&�\)�\,�\/�\2�\4�\7�\:�\=�\?�\B�\E�\G�\I�\K�\N�\P�\R�\T�\V�\W�\Y�\Z�\[�[\�Y\�X\�V\�T\�S\�Q\�O\�M\�K\�I\�G\�D\�B\�?\�=\�:\�8\�5\�2\�0\�-\�+\�(\�&\�#\� \�\�\�\�\�\�\�\�\�\�
+\�\�\�\�\�\��\��\��\�\�\�\�\�\�\
+�\�\
�\�\�\�\�\�\�\�\�\!�\$�\&�\)�\+�\.�\0�\3�\5�\8�\:�\=�\?�\A�\C�\F�\H�\J�\L�\N�\P�\R�\T�\V�\W�\X�\Y�\Z�\[�[\�Y\�X\�V\�T\�S\�P\�N\�L\�J\�G\�E\�B\�@\�=\�:\�8\�5\�2\�/\�,\�)\�'\�$\�!\�\�\�\�\�\�\�\�
\�\�	\�\�\�\�\�\��\��\�\�\�\�\�\	�\�\
�\�\�\�\�\�\�\�\�\!�\"�\%�\(�\*�\-�\/�\2�\4�\6�\9�\;�\>�\@�\B�\E�\G�\I�\K�\M�\O�\Q�\S�\T�\V�\W�\Y�\Z�\[�\\�[\�Y\�X\�V\�U\�R\�P\�N\�K\�I\�G\�D\�A\�>\�<\�8\�5\�3\�0\�,\�*\�'\�$\�!\�\�\�\�\�\�\�\�\�	\�\�\�\�\��\��R��R��R�R�R�R�R�R	�R�R
�R�R�R�R�R�R�R�R�R"�R%�R'�R)�R,�R/�R1�R4�R6�R8�R;�R=�R?�RA�RC�RE�RG�RI�RK�RL�RN�RO�RP�RQ�QR�OR�NR�MR�KR�JR�HR�FR�DR�CR�AR�?R�<R�:R�8R�6R�4R�1R�0R�-R�*R�)R�&R�#R�"R�R�R�R�R�R�R�R�R�R�R�R�	R�R�R�R�R�R��R��R��R�R�R�R�R�R�R	�R
+�R�R�R�R�R�R�R�R�R�R�R �R"�R$�R'�R)�R+�R-�R0�R2�R4�R6�R8�R:�R<�R>�R@�RB�RD�RF�RG�RI�RK�RL�RM�RO�RO�RP�RQ�QR�PR�NR�MR�KR�JR�HR�FR�DR�BR�@R�=R�;R�9R�6R�4R�2R�/R�-R�*R�(R�%R�"R� R�R�R�R�R�R�R�R�R�R�
+R�R�R�R�R�R�R��R��R�R�R�R�R�R�R
+�R�R
�R�R�R�R�R�R�R�R�R�R!�R$�R%�R'�R*�R-�R.�R0�R2�R5�R7�R9�R;�R=�R?�RA�RC�RD�RF�RH�RJ�RK�RM�RN�RO�RP�RQ�RR�QR�OR�NR�MR�KR�IR�GR�ER�CR�AR�?R�<R�:R�8R�5R�2R�0R�-R�*R�(R�%R�"R� R�R�R�R�R�R�R�R�R�
+R�R�R�R�R�R��R��H��H��H�H�H�H�H�H�H
+�H�H
�H�H�H�H�H�H�H�H�H �H"�H$�H'�H)�H+�H-�H/�H1�H4�H5�H7�H9�H;�H=�H>�H@�HA�HC�HD�HE�HF�HG�GH�FH�EH�CH�BH�AH�?H�>H�<H�:H�9H�7H�5H�3H�1H�/H�-H�+H�)H�'H�%H�#H�"H� H�H�H�H�H�H�H�H�H�H�H�H�	H�H�H�H�H�H�H��H��H��H�H�H�H�H�H�H�H	�H
+�H�H�H�H�H�H�H�H�H�H�H�H �H"�H$�H&�H(�H*�H,�H-�H/�H1�H3�H5�H7�H8�H:�H<�H=�H?�H@�HB�HC�HD�HE�HE�HF�HG�GH�FH�EH�CH�BH�AH�?H�=H�<H�:H�8H�6H�4H�2H�0H�.H�+H�)H�'H�%H�#H� H�H�H�H�H�H�H�H�H�H�H�
+H�	H�H�H�H�H�H�H��H��H�H�H�H�H�H�H�H
+�H�H
�H�H�H�H�H�H�H�H�H�H�H �H"�H$�H&�H(�H*�H,�H.�H0�H2�H4�H5�H7�H9�H:�H<�H>�H?�HA�HB�HC�HD�HE�HF�HG�HH�GH�FH�DH�CH�BH�@H�?H�=H�;H�9H�7H�5H�3H�1H�.H�,H�*H�'H�%H�#H� H�H�H�H�H�H�H�H�H�
H�H�	H�H�H�H�H�H��H��?��?��?�?�?�?�?�?�?�?
+�?�?
�?�?�?�?�?�?�?�?�?�? �?"�?$�?&�?(�?)�?+�?-�?/�?0�?2�?3�?5�?6�?8�?9�?:�?<�?=�?>�??�>?�=?�<?�;?�:?�9?�7?�6?�5?�3?�2?�0?�.?�-?�+?�)?�(?�&?�$?�"?� ?�?�?�?�?�?�?�?�?�?�?�?�?�?�	?�?�?�?�?�?�?�?��?��?��?��?�?�?�?�?�?�?�?	�?
+�?�?
�?�?�?�?�?�?�?�?�?�?�?�?!�?#�?%�?&�?(�?*�?+�?-�?.�?0�?1�?3�?4�?6�?7�?8�?9�?;�?<�?=�?=�?=�?>�>?�=?�<?�;?�:?�9?�7?�6?�4?�3?�1?�/?�-?�,?�*?�(?�&?�$?�"?� ?�?�?�?�?�?�?�?�?�?�?�?�?�	?�?�?�?�?�?�?�?��?��?�?�?�?�?�?�?�?	�?
+�?�?
�?�?�?�?�?�?�?�?�?�?�?�?!�?"�?#�?%�?'�?(�?*�?,�?-�?/�?0�?2�?3�?5�?6�?7�?9�?:�?;�?<�?=�?>�??�??�>?�=?�<?�;?�:?�8?�7?�5?�3?�2?�0?�.?�,?�*?�)?�&?�$?�"?� ?�?�?�?�?�?�?�?�?�?�
?�?�	?�?�?�?�?�?�?��?��6��6��6��6�6�6�6�6�6�6�6
+�6�6
�6�6�6�6�6�6�6�6�6�6�6�6 �6"�6#�6%�6&�6(�6)�6+�6,�6-�6.�60�61�62�63�64�65�66�56�46�36�36�26�16�/6�.6�-6�,6�+6�)6�(6�&6�%6�#6�"6� 6�6�6�6�6�6�6�6�6�6�6�6�6�
6�6�
+6�	6�6�6�6�6�6�6�6��6��6��6��6��6�6�6�6�6�6�6�6�6	�6
+�6�6
�6�6�6�6�6�6�6�6�6�6�6�6�6�6!�6"�6$�6%�6&�6(�6)�6*�6,�6-�6.�6/�60�61�62�63�64�64�64�65�56�56�46�36�26�06�/6�.6�-6�+6�*6�(6�'6�%6�$6�"6�!6�6�6�6�6�6�6�6�6�6�6�6�
6�6�
+6�	6�6�6�6�6�6�6�6�6��6��6��6�6�6�6�6�6�6�6�6
+�6�6�6
�6�6�6�6�6�6�6�6�6�6�6�6�6 �6!�6#�6$�6%�6'�6(�6*�6+�6,�6-�6.�6/�60�61�62�63�64�65�66�66�56�46�36�26�16�06�/6�-6�,6�+6�)6�'6�&6�$6�#6�!6�6�6�6�6�6�6�6�6�6�6�6�6�6�	6�6�6�6�6�6�6�6��6��-��-��-��-�-�-�-�-�-�-�-�-	�-
+�-�-
�-�-�-�-�-�-�-�-�-�-�-�-�-�- �-!�-"�-#�-$�-&�-'�-(�-(�-)�-*�-+�-,�--�,-�,-�+-�*-�)-�)-�(-�'-�&-�%-�#-�"-�!-� -�-�-�-�-�-�-�-�-�-�-�-�-�-�-�
-�-�-�
+-�	-�-�-�-�-�-�-�-�-��-��-��-��-��-�-�-�-�-�-�-�-�-�-�-
+�-�-�-
�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�- �-!�-"�-#�-$�-%�-&�-'�-(�-)�-*�-+�-+�-+�-+�-,�,-�,-�+-�*-�)-�(-�'-�&-�%-�$-�#-�"-� -�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�
+-�	-�-�-�-�-�-�-�-�-�-��-��-��-�-�-�-�-�-�-�-�-�-	�-
+�-�-�-
�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�- �-!�-#�-$�-%�-%�-&�-(�-(�-)�-*�-+�-+�-,�--�--�,-�+-�*-�*-�)-�(-�'-�&-�$-�#-�"-�!-�-�-�-�-�-�-�-�-�-�-�-�-�-�
-�-�
+-�	-�-�-�-�-�-�-�-��-��-��%��%��%��%�%�%�%�%�%�%�%�%�%�%	�%
+�%�%
�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�% �% �%!�%"�%#�%#�%$�%%�$%�$%�#%�#%�"%�!%�!%� %�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�
%�%�%�
+%�	%�%�%�%�%�%�%�%�%�%�%��%��%��%��%��%�%�%�%�%�%�%�%�%�%�%�%	�%
+�%�%�%�%
�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�% �%!�%"�%"�%#�%$�%#�%$�%%�%%�$%�#%�#%�"%�!%� %�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�
%�%�%�
+%�	%�%�%�%�%�%�%�%�%�%�%��%��%��%��%�%�%�%�%�%�%�%�%�%�%�%	�%
+�%�%�%
�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�% �%!�%!�%"�%#�%#�%$�%$�%%�%%�$%�#%�#%�"%�!%�!%� %�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�
%�%�
+%�	%�%�%�%�%�%�%�%�%�%��%��%���������������������	�
+�
+���
��������������������������������������������
����
+�	���������������������������������������	�
+�
+���
�����������������������������������������������
���
+�
+�	�����������������������������������	�
+�
+���
���������������������������������������������
����
+�	�����������������������������������������	�
+�
+����
����������������������������������
�
����
+�	����������������������������������������������	�	�
+�
+����
�
������������������������������������
�
����
+�	�	�������������������������������������������	�
+�����
�
����������������������������������
�
����
+�	���������������������������������������������������	�	�
+�
+������
��
�������������
��
��
�����
+�	�
+�	�	����������������������������������������������������������	�	�
+�
+��
+����
��
��
���������������
��
�
������
+�
+�	�	������������������������������������������������������	��	�
+�
+��
+����
��
��
��������������
��
������
+�
+�	���������������������������
+��
+��
+��
+��
+��
+�
+�
+�
+��
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+	�
+	�
+	�
+�
+	�
+
+�
+
+�
+
+�
+
+�
+
+�
+
+�	
+�
+�	
+�	
+�	
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+��
+�
+�
+�
+��
+��
+��
+��
+��
+��
+��
+��
+��
+�
+�
+�
+�
+��
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+	�
+	�
+	�
+	�
+�
+	�
+
+�
+
+�
+
+�
+
+�
+
+�
+
+�
+
+�	
+�
+�	
+�	
+�	
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+��
+�
+�
+�
+��
+��
+��
+��
+��
+��
+��
+��
+�
+�
+�
+��
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+	�
+	�
+	�
+	�
+�
+	�
+
+�
+
+�
+
+�
+
+�
+
+�
+
+�	
+�
+�	
+�	
+�	
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+��
+�
+�
+��
+��
+��
+��
+��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
diff --git a/abstractions/jmmmp/expr_scale-help.pd b/abstractions/jmmmp/expr_scale-help.pd
new file mode 100644
index 000000000..1065e15ea
--- /dev/null
+++ b/abstractions/jmmmp/expr_scale-help.pd
@@ -0,0 +1,23 @@
+#N canvas 418 182 533 385 12;
+#X floatatom 67 277 8 0 0 0 - - -;
+#X floatatom 67 73 5 0 0 0 - - -;
+#X text 77 306 creation:;
+#X floatatom 96 131 5 0 0 0 - - -;
+#X floatatom 125 152 5 0 0 0 - - -;
+#X floatatom 155 173 5 0 0 0 - - -;
+#X floatatom 184 194 5 0 0 0 - - -;
+#X text 124 71 input value;
+#X text 146 278 scaled output value;
+#X text 151 130 in low;
+#X text 177 151 in high;
+#X text 211 172 out low;
+#X text 240 194 out high;
+#X text 97 104 creation arguments can be changed dynamically:;
+#X obj 67 249 expr_scale 0 9 100 255 0;
+#X text 93 323 scale <in low> <in high> <out low> <out high>;
+#X connect 1 0 14 0;
+#X connect 3 0 14 1;
+#X connect 4 0 14 2;
+#X connect 5 0 14 3;
+#X connect 6 0 14 4;
+#X connect 14 0 0 0;
diff --git a/abstractions/jmmmp/f+-help.pd b/abstractions/jmmmp/f+-help.pd
index 34c299e25..01e472d01 100644
--- a/abstractions/jmmmp/f+-help.pd
+++ b/abstractions/jmmmp/f+-help.pd
@@ -19,7 +19,6 @@
 #X text 419 58 Arguments;
 #X text 419 98 - Increment;
 #X text 419 128 Inlets;
-#X text 419 148 - Bang / Float set;
 #X text 418 78 - Initial number;
 #X text 419 188 - Set increment;
 #X text 419 218 Outlets;
@@ -37,20 +36,34 @@ to use.;
 #X text 149 200 Reset f+ to the latest set number;
 #X text 143 175 Change the next number (standard is 0);
 #X obj 25 381 f+;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 12 5 DESCRIPTION Counter with variable increment;
+#X text 12 35 KEYWORDS counter;
+#X text 14 165 INLET_0 - Bang / Float set;
+#X text 14 185 INLET_1 - Bang reset / Float (next count);
+#X text 14 205 INLET_2 - Set increment;
+#X text 14 225 OUTLET_0 - Float;
+#X restore 592 446 pd META;
+#X text 419 148 - Bang / Float set;
+#X connect 3 0 24 0;
 #X connect 3 0 25 0;
-#X connect 3 0 26 0;
+#X connect 4 0 24 0;
 #X connect 4 0 25 0;
-#X connect 4 0 26 0;
-#X connect 5 0 36 0;
-#X connect 10 0 27 0;
-#X connect 12 0 27 1;
-#X connect 13 0 27 1;
-#X connect 15 0 27 2;
-#X connect 16 0 27 2;
-#X connect 25 0 8 0;
-#X connect 26 0 7 0;
-#X connect 27 0 11 0;
-#X connect 28 0 27 0;
-#X connect 29 0 27 0;
-#X connect 33 0 27 1;
-#X connect 36 0 6 0;
+#X connect 5 0 35 0;
+#X connect 10 0 26 0;
+#X connect 12 0 26 1;
+#X connect 13 0 26 1;
+#X connect 15 0 26 2;
+#X connect 16 0 26 2;
+#X connect 24 0 8 0;
+#X connect 25 0 7 0;
+#X connect 26 0 11 0;
+#X connect 27 0 26 0;
+#X connect 28 0 26 0;
+#X connect 32 0 26 1;
+#X connect 35 0 6 0;
diff --git a/abstractions/jmmmp/f+.pd b/abstractions/jmmmp/f+.pd
index 1e1b95505..0fcf725aa 100644
--- a/abstractions/jmmmp/f+.pd
+++ b/abstractions/jmmmp/f+.pd
@@ -1,13 +1,11 @@
-#N canvas 627 164 505 304 10;
-#X obj 15 82 inlet;
+#N canvas 457 189 505 304 10;
+#X obj 15 72 inlet;
 #X obj 15 222 outlet;
-#X obj 34 102 inlet;
-#X obj 58 122 inlet;
+#X obj 34 92 inlet;
+#X obj 58 112 inlet;
 #X obj 15 182 f \$1;
-#X obj 45 182 +;
-#X obj 98 122 expr if($f1 == 0 \, 1 \, $f1);
-#X text 12 247 (C) 2006 João Pais - jmmmpais@googlemail.com
-;
+#X obj 72 192 +;
+#X obj 108 152 expr if($f1 == 0 \, 1 \, $f1);
 #N canvas 0 0 426 446 license 0;
 #X text 8 47 All rights reserved.;
 #X text 8 227 The names of its contributors may not be used to endorse
@@ -32,31 +30,34 @@ copyright notice \, this list of conditions and the following disclaimer
 in the documentation and/or other materials provided with the distribution.
 ;
 #X text 8 27 jmmmpais@googlemail.com;
-#X text 8 7 Copyright 2006 \, Joã Pais;
-#X restore 15 265 pd license;
+#X text 8 7 Copyright 2006 \, João Pais;
+#X restore 15 275 pd license;
 #X text 11 10 [f+] - Counter with variable increment;
 #X text 279 38 Arguments;
-#X text 279 78 - Increment;
 #X text 279 108 Inlets;
 #X text 279 128 - Bang / Float set;
-#X text 278 58 - Initial number;
 #X text 279 168 - Set increment;
 #X text 279 198 Outlets;
 #X text 279 218 - Float;
 #X obj 34 162 \$1;
-#X obj 34 142 route bang;
+#X obj 34 132 route bang;
 #X text 279 148 - Bang reset / Float (next count);
-#X obj 98 102 init \$2;
 #X obj 15 202 t f f;
+#X text 12 257 (C) 2006-2012 João Pais - jmmmpais@googlemail.com;
+#X text 278 58 - Initial number (default 0);
+#X text 279 78 - Increment (default 1);
+#X obj 108 132 \$2;
+#X obj 108 112 initbang;
 #X connect 0 0 4 0;
-#X connect 2 0 19 0;
+#X connect 2 0 16 0;
 #X connect 3 0 5 1;
-#X connect 4 0 22 0;
+#X connect 4 0 18 0;
 #X connect 5 0 4 1;
 #X connect 6 0 5 1;
-#X connect 18 0 4 1;
-#X connect 19 0 18 0;
-#X connect 19 1 18 0;
-#X connect 21 0 6 0;
-#X connect 22 0 1 0;
-#X connect 22 1 5 0;
+#X connect 15 0 4 1;
+#X connect 16 0 15 0;
+#X connect 16 1 15 0;
+#X connect 18 0 1 0;
+#X connect 18 1 5 0;
+#X connect 22 0 6 0;
+#X connect 23 0 22 0;
diff --git a/abstractions/jmmmp/gui-edit-help.pd b/abstractions/jmmmp/gui-edit-help.pd
new file mode 100644
index 000000000..683f8944b
--- /dev/null
+++ b/abstractions/jmmmp/gui-edit-help.pd
@@ -0,0 +1,3 @@
+#N canvas 345 87 450 300 10;
+#X obj 175 132 gui-edit;
+#X text 115 103 edit standard GUI objects fast;
diff --git a/abstractions/jmmmp/jmmmp-meta.pd b/abstractions/jmmmp/jmmmp-meta.pd
index 2b9dee060..1635a802e 100644
--- a/abstractions/jmmmp/jmmmp-meta.pd
+++ b/abstractions/jmmmp/jmmmp-meta.pd
@@ -1,9 +1,9 @@
-#N canvas 10 10 200 200 10;
-#N canvas 20 20 420 300 META 0;
-#X text 10 10 META this is a prototype of a libdir meta file;
-#X text 10 30 NAME jmmmp;
-#X text 10 50 AUTHOR Joao Miguel Pais <jmmmpais@googlemail.com>;
-#X text 10 70 DESCRIPTION ;
-#X text 10 90 LICENSE BSD;
-#X text 10 110 VERSION 0.2;
-#X restore 10 10 pd META;
+#N canvas 10 10 200 164 10;
+#N canvas 20 20 420 300 META 0;
+#X text 10 10 META this is a prototype of a libdir meta file;
+#X text 10 30 NAME jmmmp;
+#X text 10 90 LICENSE BSD;
+#X text 10 110 VERSION 0.3;
+#X text 10 50 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 10 70 DESCRIPTION Several useful abstractions;
+#X restore 10 10 pd META;
diff --git a/abstractions/jmmmp/jp.menu-audio.txt b/abstractions/jmmmp/jp.menu-audio.txt
new file mode 100644
index 000000000..e9a2f5bfe
--- /dev/null
+++ b/abstractions/jmmmp/jp.menu-audio.txt
@@ -0,0 +1,4 @@
+Click
+Voice + Click
+Voice
+Voice B+B
\ No newline at end of file
diff --git a/abstractions/jmmmp/jp.menu-country.txt b/abstractions/jmmmp/jp.menu-country.txt
new file mode 100644
index 000000000..ba27830f2
--- /dev/null
+++ b/abstractions/jmmmp/jp.menu-country.txt
@@ -0,0 +1,16 @@
+France
+España
+Norge
+Portugal
+Misr
+Nihon
+Deutschland
+ÄŒesko
+Ukrajina
+Magyarország
+România
+Thai
+Oʻzbekiston
+Mongol Uls
+Guiné-Bissau
+Zimbabwe
\ No newline at end of file
diff --git a/abstractions/jmmmp/jp.menu-help.pd b/abstractions/jmmmp/jp.menu-help.pd
new file mode 100644
index 000000000..c4b2d626a
--- /dev/null
+++ b/abstractions/jmmmp/jp.menu-help.pd
@@ -0,0 +1,187 @@
+#N struct 1012-color float x float y float farbe;
+#N struct 1012-color-display float x float y float farbe;
+#N struct 1015-color float x float y float farbe;
+#N struct 1015-color-display float x float y float farbe;
+#N struct 1007-element float x float y symbol menu float lenght float
+height float selection float ypos float col-back float col-lab;
+#N struct 1025-color float x float y float farbe;
+#N struct 1025-color-display float x float y float farbe;
+#N struct 1028-color float x float y float farbe;
+#N struct 1028-color-display float x float y float farbe;
+#N struct 1020-element float x float y symbol menu float lenght float
+height float selection float ypos float col-back float col-lab;
+#N canvas 40 80 738 476 10;
+#X floatatom 19 206 5 0 0 0 - - -;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 7 Copyright 2016 \, João Pais;
+#X text 8 27 jmmmpais@gmail.com;
+#X restore 431 446 pd license;
+#X text 429 341 Outlets;
+#X text 429 251 - bang - outputs current setting;
+#N canvas 564 268 494 344 META 0;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION Dropdown menu programmed with data structures
+;
+#X text 12 36 KEYWORDS menu GOP data-structures;
+#X text 12 55 AUTHOR João Pais <jmmmpais@gmail.com>;
+#X text 12 135 VERSION 2016;
+#X restore 521 446 pd META;
+#X text 11 11 [jp.menu] - Dropdown menu programmed with data structures
+;
+#X text 429 41 Arguments - ALWAYS USE THE FIRST THREE ARGUMENTS;
+#X text 429 61 - name of configuration file;
+#X text 428 81 - lenght (pixels);
+#X text 429 101 - height (pixels);
+#N canvas 451 243 394 363 configuration 0;
+#X text 19 17 HOW TO FORMAT THE CONFIGURATION FILE FOR [jp.menu];
+#X text 19 87 Name;
+#X text 19 167 Content;
+#X text 19 187 The content consists of as many lines as items in the
+menu. In each line is be the label that appears.;
+#X text 19 47 The configuration file must be a .txt file \, stored
+in the same folder as the main patch where [jp.menu] is being used.
+;
+#X text 19 227 Load new file;
+#X text 19 247 To load a new file \, send the message "load \$1" with
+the symbol as argument.;
+#X obj 19 337 s \$0-country-i;
+#X msg 19 288 load audio;
+#X msg 29 308 load country;
+#X text 19 107 The file must be named jp.menu-NAME.txt.;
+#X text 19 127 The NAME will be used as the first argument for [jp.menu].
+;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X restore 222 251 pd configuration;
+#X text 430 426 (C) 2016 João Pais - jmmmpais@gmail.com;
+#X text 429 211 - integer - select item number. From 0 upwards.;
+#X obj 19 111 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
+-1 0;
+#X text 429 121 - identifier for receive/send names;
+#X text 15 91 This menu has 4 items;
+#X text 429 361 - integer - chosen item number;
+#X msg 29 131 open;
+#X text 429 191 Input messages;
+#X text 429 231 - open - opens full menu;
+#X text 12 356 Limitations of data structures;
+#X text 12 416 - the message "drawnumber_motion: symbol" appears in
+the console when instead of clicking \, the user drags the menu;
+#X text 12 396 - the size of the text can't be changed;
+#N canvas 467 689 450 300 zutun 0;
+#X text 25 215 ## dizer ao puckette para eliminar drawnumbermotion
+das mensagens;
+#X text 26 174 ## saida da direita com símbolo de label. para isso
+\, só tem que apanhar o símbolo apenas quando entra float \, nao
+quando há open.;
+#X text 17 138 ## editar e gravar configuracao usando mensagens? funciona
+com text \, ou tem que se usar a nova versao?;
+#X text 21 244 ## modo and \, com várias opcoes ligadas/desligadas?
+;
+#X text 26 48 ## depois de load \, tamanho volta ao normal;
+#X restore 584 446 pd zutun;
+#X text 14 251 Formatting the configuration file;
+#X text 14 291 Color configuration;
+#X text 14 271 You can use send/receive variables;
+#N canvas 497 71 396 209 send/receive 0;
+#X text 19 17 SEND/RECEIVE VARIABLES;
+#X text 19 47 [jp.menu] lets you define an internal variable to use
+with send and receive objects. You can send and receive any messages
+to it.;
+#X text 19 87 The variables are formated as:;
+#X text 19 107 - the 3rd argument gives the send name;
+#X text 19 127 - the receive name adds "-i" to the 3rd argument;
+#X text 19 157 For example \, if the 3rd argument is "menusend" \,
+the receive name will be "menusend-i". You can use also dollarsigns
+as symbols: \$0 \, \$1 \, etc. \, as in the following example:;
+#X restore 228 271 pd send/receive;
+#X text 12 41 [jp.menu] creates a dropdown menu based on a text file.
+This abstraction is a development of the concept used by Gilberto Bernardes
+in his earGram software.;
+#X msg 199 131 open;
+#X obj 189 151 s \$0-country-i;
+#X obj 189 181 r \$0-country;
+#X floatatom 189 111 5 0 0 0 - - -;
+#X floatatom 189 201 5 0 0 0 - - -;
+#X obj 169 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 429 271 - color \$1 \$2 - change colors;
+#X text 170 91 Use send/receive to control the menu;
+#X text 429 141 - background color;
+#X text 429 161 - label / border color;
+#X obj 289 111 jp.menu country 100 22 \$0-country 89 9;
+#X text 429 291 - size x y - change menu size;
+#N canvas 331 210 386 167 size 0;
+#X msg 29 47 size 60 70;
+#X msg 39 67 size 120 20;
+#X msg 19 27 size 80 15;
+#X text 19 7 Change menu size;
+#X obj 19 97 s \$0-country-i;
+#X text 19 127 !! Mind \, for "size" the object doesn't get saved with
+the new parameters !! You must edit the object itself.;
+#X connect 0 0 4 0;
+#X connect 1 0 4 0;
+#X connect 2 0 4 0;
+#X restore 121 311 pd size;
+#X text 14 311 Change menu size;
+#N canvas 438 53 442 335 color 0;
+#X msg 21 157 color 57 600;
+#X text 10 7 Change colors:;
+#X obj 373 67 pd-colors;
+#X msg 11 257 color;
+#X text 11 237 Or send only the message "color" to open a color selector.
+;
+#X text 11 67 The colors follow the data structures color scheme. Look
+at;
+#X text 11 81 for a complete palette.;
+#X text 11 97 If both color arguments are 0 \, default colors will
+be used.;
+#X obj 11 206 s \$0-country-i;
+#X obj 11 277 s \$0-country-i;
+#X msg 11 127 color 999 0;
+#X text 91 127 default values;
+#X text 11 47 \$1 = background color \, \$2 = label+border color;
+#X text 11 27 Send the message "color \$1 \$2" to set the menu colors.
+;
+#X msg 31 177 color 60 999;
+#X text 11 297 !! Mind \, for "color" the object doesn't get saved
+with the new parameters !! You must edit the object itself.;
+#X connect 0 0 8 0;
+#X connect 3 0 9 0;
+#X connect 10 0 8 0;
+#X connect 14 0 8 0;
+#X restore 138 290 pd color;
+#X text 429 311 - load \$1 - load other configuration;
+#X obj 19 151 jp.menu audio 85 13 \$0-aud;
+#X text 12 376 The following limitations are built in to Pure Data:
+;
+#X connect 13 0 45 0;
+#X connect 17 0 45 0;
+#X connect 29 0 30 0;
+#X connect 31 0 33 0;
+#X connect 32 0 30 0;
+#X connect 34 0 30 0;
+#X connect 45 0 0 0;
diff --git a/abstractions/jmmmp/jp.menu.pd b/abstractions/jmmmp/jp.menu.pd
new file mode 100644
index 000000000..2c3c3de51
--- /dev/null
+++ b/abstractions/jmmmp/jp.menu.pd
@@ -0,0 +1,391 @@
+#N struct 1008-color float x float y float farbe;
+#N struct 1008-color-display float x float y float farbe;
+#N struct 1011-color float x float y float farbe;
+#N struct 1011-color-display float x float y float farbe;
+#N canvas 628 409 330 217 10;
+#N canvas 1088 161 379 353 \$0-element 0;
+#X obj 8 94 route click;
+#X obj 35 134 tgl 15 0 \$0-open/close \$0-open/close-i empty 17 7 0
+10 -262144 -1 -1 1 1;
+#X obj 8 182 unpack pointer f;
+#X obj 8 242 / 1;
+#X obj 23 222 r \$0-ypos;
+#X obj 8 262 outlet;
+#X obj 8 152 spigot;
+#X obj 8 114 t l b;
+#X text 8 14 Data structures template and click interaction;
+#X obj 8 202 get \$0-element ypos;
+#X obj 8 44 struct \$0-element float x float y symbol menu float lenght
+float height float selection float ypos float col-back float col-lab
+;
+#X obj 8 313 filledpolygon -v selection col-back col-lab 1 0 0 0 height
+lenght height lenght 0;
+#X obj 8 293 drawsymbol -v selection menu 4 2 col-lab;
+#X connect 0 0 7 0;
+#X connect 1 0 6 1;
+#X connect 2 0 9 0;
+#X connect 3 0 5 0;
+#X connect 4 0 3 1;
+#X connect 6 0 2 0;
+#X connect 7 0 6 0;
+#X connect 7 1 1 0;
+#X connect 9 0 3 0;
+#X connect 10 0 0 0;
+#X restore 128 40 pd \$0-element;
+#X obj 128 20 namecanvas \$0-menu;
+#N canvas 299 122 616 576 patch 0;
+#X obj 286 250 textfile;
+#X obj 306 230 until;
+#X msg 424 90 clear;
+#X obj 424 110 s pd-\$0-paint;
+#X obj 315 510 s pd-\$0-paint;
+#X obj 353 150 symbol \$0-element;
+#X obj 358 320 l2s;
+#X obj 192 360 + 0;
+#X obj 161 550 s \$0-menu;
+#X msg 171 480 donecanvasdialog 1 1 2 0 0 \$3 \$2 \$3 \$2 0 0 \, dirty
+0;
+#X msg 17 400 0 \$1;
+#X obj 351 250 0;
+#X obj 17 340 r \$0-open/close;
+#X obj 387 130 s \$0-ypos;
+#X obj 99 360 r \$0-ypos;
+#X obj 330 370 r \$0-ypos;
+#X obj 207 340 r \$0-ypos;
+#X obj 17 380 expr if ($f1 == 1 \, $f2 \, $f3);
+#X obj 161 430 pack f f \$2;
+#X obj 387 110 \$3;
+#X msg 286 210 read \$1 cr \, rewind;
+#X msg 161 530 donecanvasdialog 1 -1 2 0 -1 1 1 \$3 \$2 0 0 \, dirty
+0;
+#X obj 315 390 * 1;
+#X obj 315 340 f+ 0 1;
+#X obj 405 390 s \$0-sellist;
+#X obj 405 370 f;
+#X obj 326 30 loadbang;
+#X text 18 10 Reads configuration file and creates the menu scalars.
+;
+#X msg 315 430 scalar \$2 0 0 \$3 \$4 \$5 0 \$1 \$6 \$7;
+#X obj 315 410 pack f s s \$2 \$3 \$5 \$6;
+#X obj 422 290 sel 1;
+#X obj 422 320 999;
+#X obj 450 320 0;
+#X text 432 230 Sets default colors;
+#X obj 422 270 expr if($i1 + $i2 == 0 \, 1 \, 0);
+#X obj 422 250 list \$5 \$6;
+#X obj 351 270 outlet;
+#X obj 222 410 r \$0-lenght;
+#X obj 315 300 t b a;
+#X text 253 450 scalar parameters: x y menu lenght height selection
+ypos col-back col-lab;
+#X obj 182 300 r \$0-gop-height;
+#X text 153 280 New height after "size";
+#X obj 326 50 t b b;
+#X obj 353 70 t b b b b;
+#X obj 306 90 t b b b;
+#X obj 257 130 r \$0-load;
+#X obj 257 150 t b s b;
+#N canvas 424 551 297 172 path+file 0;
+#X obj 12 66 symbol jp.menu-\$1.txt;
+#X obj 12 106 list;
+#X msg 12 126 read \$2/\$1 cr \, rewind;
+#X obj 12 46 t b b;
+#X obj 12 26 inlet;
+#X obj 12 146 outlet;
+#X text 12 6 Gets path of parent patch and opens file;
+#X obj 33 86 getdir 3;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
+#X connect 3 0 0 0;
+#X connect 3 1 7 0;
+#X connect 4 0 3 0;
+#X connect 7 0 1 1;
+#X restore 325 180 pd path+file;
+#X connect 0 0 38 0;
+#X connect 0 1 1 1;
+#X connect 0 1 11 0;
+#X connect 0 1 25 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 5 0 29 1;
+#X connect 6 0 29 2;
+#X connect 7 0 17 2;
+#X connect 7 0 18 1;
+#X connect 9 0 4 0;
+#X connect 10 0 18 0;
+#X connect 11 0 36 0;
+#X connect 12 0 17 0;
+#X connect 14 0 17 1;
+#X connect 15 0 22 1;
+#X connect 16 0 7 1;
+#X connect 17 0 10 0;
+#X connect 18 0 9 0;
+#X connect 18 0 21 0;
+#X connect 19 0 13 0;
+#X connect 20 0 0 0;
+#X connect 21 0 8 0;
+#X connect 22 0 7 0;
+#X connect 22 0 29 0;
+#X connect 23 0 22 0;
+#X connect 23 0 25 1;
+#X connect 25 0 24 0;
+#X connect 26 0 42 0;
+#X connect 28 0 4 0;
+#X connect 29 0 28 0;
+#X connect 30 0 32 0;
+#X connect 30 0 31 0;
+#X connect 31 0 29 5;
+#X connect 32 0 29 6;
+#X connect 34 0 30 0;
+#X connect 35 0 34 0;
+#X connect 37 0 18 2;
+#X connect 38 0 23 0;
+#X connect 38 1 6 0;
+#X connect 40 0 17 2;
+#X connect 42 0 44 0;
+#X connect 42 1 43 0;
+#X connect 43 0 5 0;
+#X connect 43 1 35 0;
+#X connect 43 2 19 0;
+#X connect 43 3 2 0;
+#X connect 44 0 1 0;
+#X connect 44 1 47 0;
+#X connect 44 2 23 1;
+#X connect 45 0 46 0;
+#X connect 46 0 1 0;
+#X connect 46 1 20 0;
+#X connect 46 2 23 1;
+#X connect 47 0 0 0;
+#X restore 197 110 pd patch;
+#X obj 138 70 inlet;
+#X obj 128 180 outlet;
+#N canvas 537 83 484 364 selection 0;
+#X obj 202 22 inlet;
+#X obj 301 212 symbol \$0-paint;
+#X obj 301 272 pointer;
+#X msg 252 252 next;
+#X msg 301 232 traverse pd-\$1;
+#X msg 265 102 1 0;
+#X obj 265 142 list-rot;
+#X obj 310 122 * -1;
+#X obj 265 162 list-drip;
+#X obj 225 232 t f b;
+#X msg 158 212 1 1;
+#X obj 275 62 outlet;
+#X obj 265 82 t b f b b;
+#X obj 225 332 set \$0-element selection y;
+#X obj 356 162 s \$0-open/close-i;
+#X obj 158 122 r \$0-open/close;
+#X obj 158 182 t b b;
+#X obj 158 142 t f f;
+#X msg 356 142 1;
+#X obj 301 312 expr if ($f2 == 0 \, $f1 \, 0);
+#X obj 158 162 sel 0;
+#X obj 14 48 r \$0-sellist;
+#X msg 68 108 set \, add2 1;
+#X obj 41 128 until;
+#X msg 51 148 add2 1;
+#X msg 41 168 add2 0;
+#X obj 41 88 t f b;
+#X obj 14 68 sel 0;
+#N canvas 927 111 288 144 messages 0;
+#X obj 11 27 inlet;
+#X text 12 7 Messages accepted by [jp.menu];
+#X obj 11 87 outlet;
+#X obj 58 107 outlet;
+#X obj 11 67 0;
+#N canvas 843 386 300 290 color 0;
+#X obj 16 52 route bang;
+#X obj 16 242 s pd-\$0-color-selector;
+#X msg 16 222 vis 1;
+#N canvas 423 741 518 243 \$0-color-selector 0;
+#N canvas 298 464 528 328 color-sel-gui 0;
+#X obj 12 59 ds-color-sel;
+#X obj 12 154 ds-color-sel;
+#X obj 425 25 bng 15 250 50 0 \$0-send-colors \$0-send-colors-i empty
+17 7 0 10 -228856 -1 -1;
+#X text 442 23 Send colors;
+#X obj 12 258 pack s f f;
+#X msg 12 238 symbol color;
+#X obj 12 298 s \$0-color-reset;
+#X msg 12 278 \$2 \$3;
+#X text 12 41 Background color;
+#X text 12 136 Label and border color;
+#X text 12 13 Click the desired color for the fields \, and click the
+"send" button when you're finished.;
+#X connect 0 0 4 1;
+#X connect 1 0 4 2;
+#X connect 2 0 5 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 7 0 6 0;
+#X coords 0 -1 1 1 506 217 2 10 10;
+#X restore 5 14 pd color-sel-gui;
+#X restore 16 262 pd \$0-color-selector;
+#X obj 83 72 r \$0-color-reset;
+#X obj 16 32 inlet;
+#X msg 92 142 traverse \$1;
+#X obj 92 122 symbol pd-\$0-paint;
+#X obj 92 162 pointer \$0-element;
+#X msg 54 142 next;
+#X obj 54 122 until;
+#X obj 92 202 set \$0-element col-back col-lab;
+#X obj 92 182 list prepend;
+#X obj 73 92 t b b a;
+#X text 17 12 Sets color scheme;
+#X connect 0 0 2 0;
+#X connect 0 1 13 0;
+#X connect 2 0 1 0;
+#X connect 4 0 13 0;
+#X connect 5 0 0 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 8 0 12 0;
+#X connect 8 2 10 1;
+#X connect 9 0 8 0;
+#X connect 10 0 9 0;
+#X connect 12 0 11 0;
+#X connect 13 0 10 0;
+#X connect 13 1 7 0;
+#X connect 13 2 12 1;
+#X restore 120 87 pd color;
+#X obj 58 87 i;
+#N canvas 949 107 426 490 size 0;
+#X obj 99 74 s pd-\$0-paint;
+#X obj 82 114 s \$0-menu;
+#X obj 48 14 inlet;
+#X msg 99 54 donecanvasdialog 1 1 2 0 0 \$1 \$2 \$1 \$2 0 0 \, dirty
+0;
+#X msg 82 94 donecanvasdialog 1 -1 2 0 -1 1 1 \$1 \$2 0 0 \, dirty
+0;
+#X msg 65 374 traverse \$1;
+#X obj 65 234 symbol pd-\$0-paint;
+#X obj 65 394 pointer \$0-element;
+#X msg 27 374 next;
+#X obj 27 234 until;
+#X obj 65 464 set \$0-element lenght height ypos;
+#X obj 122 154 s \$0-ypos;
+#X obj 65 134 unpack f f;
+#X obj 65 174 s \$0-lenght;
+#X obj 103 304 r \$0-ypos;
+#X obj 88 324 * 1;
+#X obj 88 284 f+ 0 1;
+#X obj 48 204 t b b b a;
+#X obj 27 254 t b b;
+#X obj 65 424 pack p f f f;
+#X msg 65 444 \$3 \$4 \$2 \$1;
+#X obj 48 34 t l l l l;
+#X obj 111 254 unpack f f;
+#X obj 98 344 s \$0-gop-height;
+#X connect 2 0 21 0;
+#X connect 3 0 0 0;
+#X connect 4 0 1 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 7 0 19 0;
+#X connect 7 2 9 1;
+#X connect 8 0 7 0;
+#X connect 9 0 18 0;
+#X connect 12 0 13 0;
+#X connect 12 1 11 0;
+#X connect 14 0 15 1;
+#X connect 15 0 19 1;
+#X connect 15 0 23 0;
+#X connect 16 0 15 0;
+#X connect 17 0 9 0;
+#X connect 17 1 6 0;
+#X connect 17 2 16 1;
+#X connect 17 3 22 0;
+#X connect 18 0 8 0;
+#X connect 18 1 16 0;
+#X connect 19 0 20 0;
+#X connect 20 0 10 0;
+#X connect 21 0 17 0;
+#X connect 21 1 12 0;
+#X connect 21 2 4 0;
+#X connect 21 3 3 0;
+#X connect 22 0 19 2;
+#X connect 22 1 19 3;
+#X restore 157 67 pd size;
+#X obj 11 47 route open float bang color size load;
+#N canvas 1157 204 292 160 load 0;
+#X obj 14 13 inlet;
+#X msg 41 53 clear;
+#X obj 41 73 s pd-\$0-paint;
+#X obj 14 133 s \$0-load;
+#X obj 14 33 t a b;
+#X msg 14 113 symbol jp.menu-\$1.txt;
+#X obj 14 93 symbol;
+#X connect 0 0 4 0;
+#X connect 1 0 2 0;
+#X connect 4 0 6 0;
+#X connect 4 1 1 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 0;
+#X restore 193 87 pd load;
+#X connect 0 0 8 0;
+#X connect 4 0 2 0;
+#X connect 6 0 3 0;
+#X connect 8 0 4 0;
+#X connect 8 1 6 0;
+#X connect 8 2 6 0;
+#X connect 8 3 5 0;
+#X connect 8 4 7 0;
+#X connect 8 5 9 0;
+#X restore 202 42 pd messages;
+#X obj 301 292 get \$0-element ypos menu;
+#X obj 282 22 inlet;
+#X connect 0 0 28 0;
+#X connect 1 0 4 0;
+#X connect 2 0 13 2;
+#X connect 2 0 29 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 5 0 6 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 1;
+#X connect 8 0 9 0;
+#X connect 9 0 13 0;
+#X connect 9 1 3 0;
+#X connect 10 0 8 0;
+#X connect 12 0 5 0;
+#X connect 12 1 7 0;
+#X connect 12 2 1 0;
+#X connect 12 3 18 0;
+#X connect 15 0 17 0;
+#X connect 16 0 10 0;
+#X connect 16 1 1 0;
+#X connect 17 0 20 0;
+#X connect 17 1 19 1;
+#X connect 18 0 14 0;
+#X connect 19 0 13 1;
+#X connect 20 0 16 0;
+#X connect 21 0 27 0;
+#X connect 22 0 5 0;
+#X connect 22 0 10 0;
+#X connect 23 0 24 0;
+#X connect 23 0 25 0;
+#X connect 24 0 10 0;
+#X connect 25 0 5 0;
+#X connect 26 0 23 0;
+#X connect 26 1 22 0;
+#X connect 27 1 26 0;
+#X connect 28 0 14 0;
+#X connect 28 1 12 0;
+#X connect 28 1 11 0;
+#X connect 29 0 19 0;
+#X connect 30 0 12 0;
+#X restore 128 130 pd selection;
+#X obj 147 90 receive \$4-i;
+#X obj 137 160 send \$4;
+#N canvas 125 353 450 300 \$0-paint 0;
+#X coords 0 0 80 16 80 16 2 0 0;
+#X restore 0 0 pd \$0-paint;
+#X connect 0 0 5 0;
+#X connect 2 0 5 1;
+#X connect 3 0 5 0;
+#X connect 5 0 4 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X coords 0 -1 1 1 80 16 2 0 0;
diff --git a/abstractions/jmmmp/lbang-help.pd b/abstractions/jmmmp/lbang-help.pd
index 84c8b10ea..d9ae7bfac 100644
--- a/abstractions/jmmmp/lbang-help.pd
+++ b/abstractions/jmmmp/lbang-help.pd
@@ -1,6 +1,5 @@
 #N canvas 125 122 377 220 10;
-#X text 12 167 (C) 2006 João Pais - jmmmpais@googlemail.com
-;
+#X text 12 167 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 187 Released under the BSD License;
 #X obj 68 103 lbang;
 #X text 216 61 Inlets;
@@ -14,5 +13,17 @@
 #X obj 68 123 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
 -1;
 #X text 14 31 Recomended to initialize and re-initialize patches.;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 12 5 DESCRIPTION loadbang which can be triggered more often
+;
+#X text 12 35 KEYWORDS loadbang;
+#X text 14 165 INLET_0 - bang;
+#X text 14 185 OUTLET_0 - loadbang / bang;
+#X restore 322 186 pd META;
 #X connect 2 0 9 0;
 #X connect 8 0 2 0;
diff --git a/abstractions/jmmmp/liner+~-help.pd b/abstractions/jmmmp/liner+~-help.pd
index c00c9d4a2..002407d83 100644
--- a/abstractions/jmmmp/liner+~-help.pd
+++ b/abstractions/jmmmp/liner+~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 330 116 376 384 10;
+#N canvas 330 116 378 384 10;
 #X text 12 357 Released under the BSD License;
 #X obj 27 89 dsp01;
 #X obj 26 248 snaps~;
@@ -31,6 +31,20 @@
 ;
 #X text 24 268 Scaled signal;
 #X text 12 307 Related objects: [liner~];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2008;
+#X text 14 225 OUTLET_0 - Signal;
+#X text 12 5 DESCRIPTION Practical implementation of signal envelopping
+;
+#X text 12 35 KEYWORDS line~ envelope;
+#X text 14 165 INLET_0 - Signal;
+#X text 14 185 INLET_1 - Float;
+#X text 14 205 INLET_2 - Ramp duration (ms);
+#X restore 322 356 pd META;
 #X connect 4 0 10 2;
 #X connect 5 0 10 2;
 #X connect 6 0 10 2;
diff --git a/abstractions/jmmmp/liner~-help.pd b/abstractions/jmmmp/liner~-help.pd
index 89ba3e749..a2955d4d0 100644
--- a/abstractions/jmmmp/liner~-help.pd
+++ b/abstractions/jmmmp/liner~-help.pd
@@ -29,6 +29,18 @@ is decided through a parameter.;
 #X obj 16 224 liner~;
 #X text 86 163 (Standard);
 #X text 12 297 Related objects: [liner+~];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 5 DESCRIPTION Practical implementation of [line~];
+#X text 12 35 KEYWORDS line~;
+#X text 12 135 VERSION 2008;
+#X text 14 165 INLET_0 - Float;
+#X text 14 185 INLET_1 - Ramp duration (ms);
+#X text 14 205 OUTLET_0 - Signal;
+#X restore 362 346 pd META;
 #X connect 13 0 20 1;
 #X connect 14 0 20 1;
 #X connect 15 0 20 1;
diff --git a/abstractions/jmmmp/m-i-help.pd b/abstractions/jmmmp/m-i-help.pd
index 7722a072a..f220c77cb 100644
--- a/abstractions/jmmmp/m-i-help.pd
+++ b/abstractions/jmmmp/m-i-help.pd
@@ -20,6 +20,18 @@
 #X text 266 60 - Controller channel;
 #X text 12 307 (C) 2009 João Pais - jmmmpais@googlemail.com;
 #X text 12 277 Related objects: [mk] [sliders];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 36 KEYWORDS metro;
+#X text 12 6 DESCRIPTION Automatic conversion of MIDI controller;
+#X text 12 135 VERSION 2009;
+#X text 14 165 INLET_0 - Controller simulation;
+#X text 14 185 OUTLET_0 - Scaled float;
+#X text 14 205 OUTLET_1 - Direct MIDI input;
+#X restore 392 326 pd META;
 #X connect 1 0 6 0;
 #X connect 6 0 2 0;
 #X connect 6 1 7 0;
diff --git a/abstractions/jmmmp/m-i.pd b/abstractions/jmmmp/m-i.pd
index 54e6eed97..b7916eeea 100644
--- a/abstractions/jmmmp/m-i.pd
+++ b/abstractions/jmmmp/m-i.pd
@@ -1,64 +1,64 @@
-#N canvas 393 81 487 319 10;
-#X obj 19 135 outlet;
-#X obj 19 54 ctlin \$1;
-#X obj 99 54 inlet midi-sim;
-#X obj 136 104 hsl 50 8 0 127 0 0 empty empty empty -2 -6 0 8 -233017
--1 -1 2662 0;
-#X msg 133 83 set \$1;
-#X text 12 10 [m-i] - Automatic conversion of MIDI controller;
-#X text 236 150 Inlets;
-#X text 236 200 Outlets;
-#X text 236 40 Arguments;
-#X text 236 80 - Lower range;
-#X text 236 220 - Scaled float;
-#X text 236 100 - Upper range;
-#N canvas 0 0 426 446 license 0;
-#X text 8 47 All rights reserved.;
-#X text 8 227 The names of its contributors may not be used to endorse
-or promote products derived from this software without specific prior
-written permission.;
-#X text 8 87 Redistribution and use in source and binary forms \, with
-or without modification \, are permitted provided that the following
-conditions are met:;
-#X text 8 127 Redistributions of source code must retain the above
-copyright notice \, this list of conditions and the following disclaimer.
-;
-#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
-\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
-\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
-\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
-;
-#X text 8 167 Redistributions in binary form must reproduce the above
-copyright notice \, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the distribution.
-;
-#X text 8 27 jmmmpais@googlemail.com;
-#X text 8 7 Copyright 2006 \, João Pais;
-#X restore 15 289 pd license;
-#X obj 19 115 expr_scale 0 127 \$2 \$3;
-#X obj 109 165 outlet;
-#X text 236 240 - Direct MIDI input;
-#X obj 133 145 i;
-#X obj 99 225 ctlout \$1;
-#X obj 99 205 spigot \$4;
-#X text 235 121 - MIDI feedback on/off (1/0);
-#X text 236 60 - Controller channel;
-#X text 12 271 (C) 2009 João Pais - jmmmpais@googlemail.com;
-#X text 236 170 - Controller simulation (0-127);
-#X connect 1 0 4 0;
-#X connect 1 0 13 0;
-#X connect 1 0 14 0;
-#X connect 2 0 4 0;
-#X connect 2 0 13 0;
-#X connect 2 0 14 0;
-#X connect 2 0 18 0;
-#X connect 3 0 13 0;
-#X connect 3 0 16 0;
-#X connect 4 0 3 0;
-#X connect 13 0 0 0;
-#X connect 16 0 14 0;
-#X connect 18 0 17 0;
-#X coords 0 -1 1 1 59 26 1 131 89;
+#N canvas 393 81 487 319 10;
+#X obj 19 135 outlet;
+#X obj 99 54 inlet midi-sim;
+#X obj 136 104 hsl 50 8 0 127 0 0 empty empty empty -2 -6 0 8 -233017
+-1 -1 0 0;
+#X msg 133 83 set \$1;
+#X text 12 10 [m-i] - Automatic conversion of MIDI controller;
+#X text 236 150 Inlets;
+#X text 236 200 Outlets;
+#X text 236 40 Arguments;
+#X text 236 80 - Lower range;
+#X text 236 220 - Scaled float;
+#X text 236 100 - Upper range;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2006 \, João Pais;
+#X restore 15 289 pd license;
+#X obj 19 115 expr_scale 0 127 \$2 \$3;
+#X obj 109 165 outlet;
+#X text 236 240 - Direct MIDI input;
+#X obj 133 145 i;
+#X obj 99 225 ctlout \$1;
+#X obj 99 205 spigot \$4;
+#X text 235 121 - MIDI feedback on/off (1/0);
+#X text 236 60 - Controller channel;
+#X text 12 271 (C) 2009 João Pais - jmmmpais@googlemail.com;
+#X text 236 170 - Controller simulation (0-127);
+#X obj 19 54 ctlin \$1 1;
+#X connect 1 0 3 0;
+#X connect 1 0 12 0;
+#X connect 1 0 13 0;
+#X connect 1 0 17 0;
+#X connect 2 0 12 0;
+#X connect 2 0 15 0;
+#X connect 3 0 2 0;
+#X connect 12 0 0 0;
+#X connect 15 0 13 0;
+#X connect 17 0 16 0;
+#X connect 22 0 3 0;
+#X connect 22 0 12 0;
+#X connect 22 0 13 0;
+#X coords 0 -1 1 1 59 26 1 131 89;
diff --git a/abstractions/jmmmp/maat~-help.pd b/abstractions/jmmmp/maat~-help.pd
index 903eef8e5..63f9fd6a1 100644
--- a/abstractions/jmmmp/maat~-help.pd
+++ b/abstractions/jmmmp/maat~-help.pd
@@ -1,9 +1,8 @@
 #N canvas 277 106 415 447 10;
 #X text 81 196 <- 0dB;
-#X text 12 397 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 417 Released under the BSD License;
-#X text 230 105 Inlets;
-#X text 230 215 Outlets;
+#X text 230 145 Inlets;
+#X text 230 255 Outlets;
 #N canvas 0 0 396 219 signal 0;
 #X obj 47 75 random 7;
 #X obj 47 54 metrum 400 1;
@@ -28,36 +27,56 @@
 #X connect 10 0 2 0;
 #X restore 16 105 pd signal;
 #X obj 16 316 outlet~;
-#X floatatom 73 316 5 0 0 0 - - -;
+#X floatatom 73 316 8 0 0 0 - - -;
 #X obj 40 133 bng 13 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
 -1;
 #X text 58 130 <- Mute / Unmute;
-#X text 110 316 Signal level;
-#X text 230 275 - Signal level (0-1);
-#X text 230 185 - Level (0-127);
-#X text 230 165 - Mute / Unmute (bang);
+#X text 125 316 Signal level;
+#X text 230 315 - Signal level (0-1);
+#X text 230 225 - Level (0-127);
+#X text 230 205 - Mute / Unmute (bang);
 #X msg 61 153 0;
 #X msg 89 153 127;
 #X text 118 153 Control level;
 #X obj 16 174 maat~;
-#X text 11 8 [mat~] - Level meter with amplitude control \, stereo
-;
 #X obj 35 336 outlet~;
-#X text 230 125 - Left signal;
-#X text 230 145 - Right signal;
-#X text 230 235 - Amplified left signal;
-#X text 230 255 - Amplified right signal;
+#X text 230 165 - Left signal;
+#X text 230 185 - Right signal;
+#X text 230 275 - Amplified left signal;
+#X text 230 295 - Amplified right signal;
 #X text 11 38 Controls the amplitude of a stereo signal with values
 between 0 and 127 Lighter as met~.;
 #X obj 16 85 dsp01;
 #X text 12 367 Related objects: [mat~] [met~] [dacm~];
-#X connect 5 0 17 0;
-#X connect 5 0 17 1;
-#X connect 5 1 17 3;
-#X connect 8 0 17 2;
-#X connect 14 0 17 3;
-#X connect 15 0 17 3;
-#X connect 17 0 6 0;
-#X connect 17 1 19 0;
-#X connect 17 2 7 0;
+#X text 230 95 Arguments;
+#X text 230 115 - Level (0-127);
+#X text 12 397 (C) 2006-2012 João Pais - jmmmpais@googlemail.com;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 5 DESCRIPTION Level meter with amplitude control \, stereo
+;
+#X text 12 135 VERSION 2012;
+#X text 14 36 KEYWORDS level meter;
+#X text 14 165 INLET_0 - Left signal;
+#X text 14 185 INLET_1 - Right signal;
+#X text 14 205 INLET_2 - Mute / Unmute (bang);
+#X text 14 245 OUTLET_0 - Amplified left signal;
+#X text 14 265 OUTLET_1 - Amplified right signal;
+#X text 14 285 OUTLET_2 - Signal level (0-1);
+#X text 14 225 INLET_3 - Level (0-127);
+#X restore 352 416 pd META;
+#X text 11 8 [maat~] - Level meter with amplitude control \, stereo
+;
+#X connect 4 0 16 0;
+#X connect 4 0 16 1;
+#X connect 4 1 16 3;
+#X connect 7 0 16 2;
+#X connect 13 0 16 3;
+#X connect 14 0 16 3;
+#X connect 16 0 5 0;
+#X connect 16 1 17 0;
+#X connect 16 2 6 0;
 #X coords 0 0 1 1 31 130 0;
diff --git a/abstractions/jmmmp/maat~.pd b/abstractions/jmmmp/maat~.pd
index 14697efc3..b4248c7e0 100644
--- a/abstractions/jmmmp/maat~.pd
+++ b/abstractions/jmmmp/maat~.pd
@@ -10,12 +10,12 @@
 #X obj 48 262 dbtorms;
 #X obj 128 282 outlet;
 #X obj 60 113 vsl 10 119 0 127 0 0 empty empty empty 0 -8 0 8 -195568
--1 -1 9300 0;
+-1 -1 2787 0;
 #X obj 62 138 cnv 1 6 2 empty empty empty 20 12 0 14 -262144 -262144
 0;
 #X obj 29 382 - 100;
 #X obj 34 113 vsl 10 119 -100 12 0 0 empty empty empty 0 -8 0 8 -195568
--1 -262144 8909 0;
+-1 -262144 0 0;
 #X obj 29 342 env~ 8820;
 #X obj 121 87 inlet mute;
 #X obj 121 112 bang;
@@ -26,8 +26,6 @@
 #X obj 146 170 expr if ($f1 == 0 \, 22 \, 20);
 #X msg 146 190 color \$1;
 #X obj 151 112 init 1;
-#X text 12 428 (C) 2006 João Pais - jmmmpais@googlemail.com
-;
 #N canvas 0 0 426 446 license 0;
 #X text 8 47 All rights reserved.;
 #X text 8 227 The names of its contributors may not be used to endorse
@@ -54,11 +52,11 @@ in the documentation and/or other materials provided with the distribution.
 #X text 8 27 jmmmpais@googlemail.com;
 #X text 8 7 Copyright 2006 \, João Pais;
 #X restore 15 446 pd license;
-#X text 330 45 Inlets;
-#X text 330 155 Outlets;
-#X text 330 215 - Signal level (0-1);
-#X text 330 125 - Level (0-127);
-#X text 330 105 - Mute / Unmute (bang);
+#X text 330 95 Inlets;
+#X text 330 205 Outlets;
+#X text 330 265 - Signal level (0-1);
+#X text 330 175 - Level (0-127);
+#X text 330 155 - Mute / Unmute (bang);
 #X obj 29 362 dbtofad;
 #X obj 109 322 *~;
 #X obj 109 47 inlet~ Signal;
@@ -67,17 +65,22 @@ in the documentation and/or other materials provided with the distribution.
 #X obj 119 342 env~ 8820;
 #X obj 119 362 dbtofad;
 #X obj 46 113 vsl 10 119 -100 12 0 0 empty empty empty 0 -8 0 8 -195568
--1 -262144 8909 0;
+-1 -262144 0 0;
 #X text 11 8 [met~] - Level meter with amplitude control \, stereo
 ;
-#X text 330 65 - Signal L;
-#X text 330 85 - Signal R;
-#X text 330 175 - Amplified signal L;
-#X text 330 195 - Amplified signal R;
+#X text 330 115 - Signal L;
+#X text 330 135 - Signal R;
+#X text 330 225 - Amplified signal L;
+#X text 330 245 - Amplified signal R;
+#X obj 251 67 init \$1;
+#X obj 251 87 moses 1;
+#X text 330 65 - Level (0-127);
+#X text 330 45 Arguments;
+#X text 12 428 (C) 2006-2012 João Pais - jmmmpais@googlemail.com;
 #X connect 1 0 6 0;
 #X connect 1 0 13 0;
 #X connect 2 0 1 1;
-#X connect 2 0 30 1;
+#X connect 2 0 29 1;
 #X connect 3 0 2 0;
 #X connect 4 0 9 0;
 #X connect 5 0 1 0;
@@ -85,7 +88,7 @@ in the documentation and/or other materials provided with the distribution.
 #X connect 7 0 8 0;
 #X connect 9 0 17 0;
 #X connect 11 0 12 0;
-#X connect 13 0 29 0;
+#X connect 13 0 28 0;
 #X connect 14 0 15 0;
 #X connect 15 0 16 0;
 #X connect 16 0 18 0;
@@ -95,13 +98,15 @@ in the documentation and/or other materials provided with the distribution.
 #X connect 18 1 19 0;
 #X connect 19 0 20 0;
 #X connect 20 0 12 0;
-#X connect 20 0 36 0;
+#X connect 20 0 35 0;
 #X connect 21 0 16 0;
-#X connect 29 0 11 0;
-#X connect 30 0 32 0;
-#X connect 30 0 34 0;
-#X connect 31 0 30 0;
-#X connect 33 0 36 0;
-#X connect 34 0 35 0;
-#X connect 35 0 33 0;
-#X coords 0 -1 1 1 44 130 1 30 108;
+#X connect 28 0 11 0;
+#X connect 29 0 31 0;
+#X connect 29 0 33 0;
+#X connect 30 0 29 0;
+#X connect 32 0 35 0;
+#X connect 33 0 34 0;
+#X connect 34 0 32 0;
+#X connect 41 0 42 0;
+#X connect 42 1 9 0;
+#X coords 0 -1 1 1 44 130 2 30 108;
diff --git a/abstractions/jmmmp/mat-~-help.pd b/abstractions/jmmmp/mat-~-help.pd
index e69de29bb..9519a8de6 100644
--- a/abstractions/jmmmp/mat-~-help.pd
+++ b/abstractions/jmmmp/mat-~-help.pd
@@ -0,0 +1,74 @@
+#N canvas 263 106 377 394 10;
+#X text 113 235 <- 0dB;
+#X text 12 367 Released under the BSD License;
+#X text 230 135 Inlets;
+#X text 230 225 Outlets;
+#N canvas 0 0 392 215 signal 0;
+#X obj 47 75 random 7;
+#X obj 47 54 metrum 400 1;
+#X obj 47 115 sig~;
+#X obj 214 112 line;
+#X obj 214 132 outlet;
+#X obj 214 72 t b b;
+#X obj 214 52 loadbang;
+#X msg 214 92 0 \, 100 6000;
+#X obj 254 112 del 9000;
+#X obj 47 135 outlet~;
+#X obj 47 95 / 4;
+#X connect 0 0 10 0;
+#X connect 1 0 0 0;
+#X connect 2 0 9 0;
+#X connect 3 0 4 0;
+#X connect 5 0 7 0;
+#X connect 5 1 8 0;
+#X connect 6 0 5 0;
+#X connect 7 0 3 0;
+#X connect 8 0 5 0;
+#X connect 10 0 2 0;
+#X restore 16 105 pd signal;
+#X obj 16 256 outlet~;
+#X floatatom 139 256 8 0 0 0 - - -;
+#X obj 28 133 bng 13 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 46 130 <- Mute / Unmute;
+#X text 131 273 Signal level;
+#X text 230 155 - Signal;
+#X text 230 245 - Amplified signal;
+#X text 230 265 - Signal level (0-1);
+#X text 230 195 - Level (0-127);
+#X text 230 175 - Mute / Unmute (bang);
+#X msg 139 173 0;
+#X msg 167 173 127;
+#X text 136 153 Control level;
+#X text 11 38 Controls the amplitude of a signal with values between
+0 and 127 Lighter as met~.;
+#X obj 16 85 dsp01;
+#X text 12 317 Related objects: [maat~] [met~] [dacm~];
+#X text 230 85 Arguments;
+#X text 230 105 - Level (0-127);
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2012;
+#X text 14 36 KEYWORDS level meter;
+#X text 14 205 INLET_2 - Level (0-127);
+#X text 12 5 DESCRIPTION Level meter with amplitude control;
+#X text 14 165 INLET_0 - Signal;
+#X text 14 185 INLET_1 - Mute / Unmute (bang);
+#X text 14 225 OUTLET_0 - Amplified signal;
+#X text 14 245 OUTLET_1 - Signal level (0-1);
+#X restore 322 366 pd META;
+#X obj 16 204 mat-~;
+#X text 11 8 [mat-~] - Level meter with amplitude control \, horizontal
+;
+#X text 12 347 (C) 2006-2014 João Pais - jmmmpais@googlemail.com;
+#X connect 4 0 24 0;
+#X connect 4 1 24 2;
+#X connect 7 0 24 1;
+#X connect 15 0 24 2;
+#X connect 16 0 24 2;
+#X connect 24 0 5 0;
+#X connect 24 1 6 0;
+#X coords 0 0 1 1 31 130 0;
diff --git a/abstractions/jmmmp/mat-~.pd b/abstractions/jmmmp/mat-~.pd
index 20d11d95b..5b898c3cb 100644
--- a/abstractions/jmmmp/mat-~.pd
+++ b/abstractions/jmmmp/mat-~.pd
@@ -1,4 +1,4 @@
-#N canvas 622 202 457 485 10;
+#N canvas 52 116 497 485 10;
 #X obj 31 109 cnv 15 128 29 empty empty empty 20 12 0 14 -233017 -66577
 0;
 #X obj 19 332 *~;
@@ -19,7 +19,6 @@
 #X obj 48 182 t b f;
 #X obj 73 202 expr if ($f1 == 0 \, 22 \, 20);
 #X msg 73 222 color \$1;
-#X obj 78 144 init 1;
 #N canvas 0 0 426 446 license 0;
 #X text 8 47 All rights reserved.;
 #X text 8 227 The names of its contributors may not be used to endorse
@@ -46,34 +45,46 @@ in the documentation and/or other materials provided with the distribution.
 #X text 8 27 jmmmpais@googlemail.com;
 #X text 8 7 Copyright 2006 \, João Pais;
 #X restore 15 455 pd license;
-#X text 11 8 [met~] - Level meter with amplitude control;
-#X text 266 56 Inlets;
-#X text 266 146 Outlets;
-#X text 266 76 - Signal;
-#X text 266 166 - Amplified signal;
-#X text 266 186 - Signal level (0-1);
-#X text 266 116 - Level (0-127);
-#X text 266 96 - Mute / Unmute (bang);
+#X text 266 96 Inlets;
+#X text 266 186 Outlets;
+#X text 266 116 - Signal;
+#X text 266 206 - Amplified signal;
+#X text 266 226 - Signal level (0-1);
+#X text 266 156 - Level (0-127);
+#X text 266 136 - Mute / Unmute (bang);
 #X obj 29 372 dbtofad;
-#X text 12 437 (C) 2009 João Pais - jmmmpais@googlemail.com;
 #X obj 36 125 hsl 119 10 0 127 0 0 empty empty empty -2 -8 0 10 -191407
--1 -33289 4600 0;
+-1 -33289 9100 0;
 #X obj 36 112 hsl 119 10 -100 12 0 0 empty empty empty -2 -8 0 10 -195568
--1 -262144 1233 1;
+-1 -1 0 1;
 #X obj 128 127 cnv 1 2 6 empty empty empty 20 12 0 14 -262144 -262144
 0;
 #X obj 123 114 cnv 1 2 6 empty empty empty 20 12 0 14 -262144 -262144
 0;
+#X obj 170 87 moses 1;
+#X text 266 46 Arguments;
+#X text 266 66 - Level (0-127);
+#X obj 170 67 \$1;
+#X obj 170 47 initbang;
+#X obj 78 144 1;
+#X obj 118 385 change;
+#X msg 118 405 color \$1 22 22;
+#X obj 119 352 expr if ($f1 == -100 \, 20 \, if ($f1 < -52 \, 16 \,
+if ($f1 < -22 \, 15 \, if ($f1 < -16 \, 14 \, 13))));
+#X text 11 8 [met~] - Level meter with amplitude control and color
+display;
+#X text 12 437 (C) 2009-2014 João Pais - jmmmpais@googlemail.com;
 #X connect 1 0 6 0;
 #X connect 1 0 10 0;
 #X connect 2 0 1 1;
 #X connect 3 0 2 0;
-#X connect 4 0 30 0;
+#X connect 4 0 27 0;
 #X connect 5 0 1 0;
 #X connect 7 0 3 0;
 #X connect 7 0 8 0;
-#X connect 9 0 31 0;
-#X connect 10 0 28 0;
+#X connect 9 0 28 0;
+#X connect 9 0 39 0;
+#X connect 10 0 26 0;
 #X connect 11 0 12 0;
 #X connect 12 0 13 0;
 #X connect 13 0 15 0;
@@ -82,8 +93,15 @@ in the documentation and/or other materials provided with the distribution.
 #X connect 15 1 14 1;
 #X connect 15 1 16 0;
 #X connect 16 0 17 0;
-#X connect 17 0 31 0;
-#X connect 18 0 13 0;
-#X connect 28 0 9 0;
-#X connect 30 0 14 0;
+#X connect 17 0 28 0;
+#X connect 26 0 9 0;
+#X connect 27 0 14 0;
+#X connect 31 1 27 0;
+#X connect 34 0 31 0;
+#X connect 35 0 34 0;
+#X connect 35 0 36 0;
+#X connect 36 0 13 0;
+#X connect 37 0 38 0;
+#X connect 38 0 28 0;
+#X connect 39 0 37 0;
 #X coords 0 -1 1 1 130 31 1 30 108;
diff --git a/abstractions/jmmmp/matrixctrl-help.pd b/abstractions/jmmmp/matrixctrl-help.pd
new file mode 100644
index 000000000..8982753d0
--- /dev/null
+++ b/abstractions/jmmmp/matrixctrl-help.pd
@@ -0,0 +1,259 @@
+#N struct 1153-color float x float y float farbe;
+#N struct 1153-color-display float x float y float farbe;
+#N struct 1156-color float x float y float farbe;
+#N struct 1156-color-display float x float y float farbe;
+#N struct 1150-matrixctrl float x float y float size float color float
+state;
+#N struct 1170-color float x float y float farbe;
+#N struct 1170-color-display float x float y float farbe;
+#N struct 1173-color float x float y float farbe;
+#N struct 1173-color-display float x float y float farbe;
+#N struct 1167-matrixctrl float x float y float size float color float
+state;
+#N struct 1187-color float x float y float farbe;
+#N struct 1187-color-display float x float y float farbe;
+#N struct 1190-color float x float y float farbe;
+#N struct 1190-color-display float x float y float farbe;
+#N struct 1184-matrixctrl float x float y float size float color float
+state;
+#N struct 1087-color float x float y float farbe float ynpos;
+#N struct 1205-color float x float y float farbe;
+#N struct 1205-color-display float x float y float farbe;
+#N struct 1208-color float x float y float farbe;
+#N struct 1208-color-display float x float y float farbe;
+#N struct 1202-matrixctrl float x float y float size float color float
+state;
+#N struct 1222-color float x float y float farbe;
+#N struct 1222-color-display float x float y float farbe;
+#N struct 1225-color float x float y float farbe;
+#N struct 1225-color-display float x float y float farbe;
+#N struct 1219-matrixctrl float x float y float size float color float
+state;
+#N struct 1239-color float x float y float farbe;
+#N struct 1239-color-display float x float y float farbe;
+#N struct 1242-color float x float y float farbe;
+#N struct 1242-color-display float x float y float farbe;
+#N struct 1236-matrixctrl float x float y float size float color float
+state;
+#N struct 1256-color float x float y float farbe;
+#N struct 1256-color-display float x float y float farbe;
+#N struct 1259-color float x float y float farbe;
+#N struct 1259-color-display float x float y float farbe;
+#N struct 1253-matrixctrl float x float y float size float color float
+state;
+#N struct 1273-color float x float y float farbe;
+#N struct 1273-color-display float x float y float farbe;
+#N struct 1276-color float x float y float farbe;
+#N struct 1276-color-display float x float y float farbe;
+#N struct 1270-matrixctrl float x float y float size float color float
+state;
+#N struct 1290-color float x float y float farbe;
+#N struct 1290-color-display float x float y float farbe;
+#N struct 1293-color float x float y float farbe;
+#N struct 1293-color-display float x float y float farbe;
+#N struct 1287-matrixctrl float x float y float size float color float
+state;
+#N struct 1307-color float x float y float farbe;
+#N struct 1307-color-display float x float y float farbe;
+#N struct 1310-color float x float y float farbe;
+#N struct 1310-color-display float x float y float farbe;
+#N struct 1304-matrixctrl float x float y float size float color float
+state;
+#N canvas 167 136 821 610 10;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@gmail.com;
+#X text 8 7 Copyright 2013 \, João Pais;
+#X restore 61 576 pd license;
+#X text 15 256 Inputs;
+#X obj 101 349 sig~ 1;
+#X obj 59 459 snaps~;
+#X obj 102 439 snaps~;
+#X obj 144 419 snaps~;
+#X obj 188 399 snaps~;
+#X obj 59 379 iemmatrix/mtx_mul~ 4 2;
+#X obj 145 349 sig~ 2;
+#X obj 69 299 prepend set;
+#X text 67 240 Outputs;
+#X text 60 96 To control the GUI \, either click with your mouse \,
+or send messages. These are formated as a list with the horizontal
+& vertical positions starting from 0 \, and state (0/1):;
+#X msg 59 158 0 0 \$1;
+#X obj 59 138 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 59 188 t a;
+#X obj 110 138 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 110 158 2 1 \$1;
+#X obj 160 138 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 160 158 3 0 \$1;
+#X text 101 189 The layout is like Max/MSP's matrixctrl object.;
+#X msg 69 319 matrix 4 2 0 1 0 0 0 1 1 0;
+#X text 144 299 The output is a matrix message;
+#X text 12 41 Clone of Max/MSP's matrixctrl. Can most also be used
+for normal matrixes. Click in the cells or send messages to change
+state.;
+#X text 119 257 this is [matrixctrl 4 2];
+#X text 100 517 == [matrixctrl 5 5 6];
+#X obj 59 258 matrixctrl 4 2;
+#X text 439 136 Inlets;
+#X text 439 336 Outlets;
+#X text 439 356 - output for [iemmatrix/mtx_mul~];
+#X text 439 106 - cell size (default is 13);
+#X text 439 226 - "mode AND" / "mode OR" - matrix behaviour (default
+is AND);
+#X text 438 86 - number of inputs/rows;
+#X text 439 66 - number of outputs/columns;
+#N canvas 331 210 398 327 SIZE+CELLSIZE 0;
+#X msg 19 117 size 2 4;
+#X msg 29 137 size 2 3;
+#X msg 19 217 cellsize 25;
+#X msg 29 237 cellsize 13;
+#X text 19 47 !! Mind \, for "size" and "cellsize" the object doesn't
+get saved with the new parameters !! You must edit the object itself.
+;
+#X text 19 17 Change matrix size and cellsize:;
+#X obj 19 257 matrixctrl 2 2;
+#X obj 19 157 matrixctrl 2 2;
+#X text 19 97 "size \$1 \$2" changes matrix size;
+#X text 19 197 "cellsize \$1" changes cell size \, Standard is 13 points.
+;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 0;
+#X restore 439 458 pd SIZE+CELLSIZE;
+#N canvas 218 139 450 433 COLOR 0;
+#X msg 39 177 color 50 100;
+#X msg 29 157 color 57 600;
+#X msg 19 127 color 899 800;
+#X text 109 127 standard values;
+#X text 49 207 == [matrixctrl 2 8 10];
+#X text 18 17 Change colors:;
+#X obj 381 77 pd-colors;
+#X text 89 357 == [matrixctrl 3 3 20];
+#X msg 19 327 color;
+#X text 19 307 Or send only the message "color" to open a color selector.
+;
+#X text 19 78 The colors follow the data structures color scheme. Look
+at;
+#X text 19 91 for a complete palette.;
+#X obj 19 206 matrixctrl 2 8 10;
+#X obj 19 356 matrixctrl 3 3 20;
+#X text 19 37 Send the message "color \$1 \$2" to set the matrix colors.
+;
+#X text 19 57 \$1 = off color \, \$2 = on color;
+#X connect 0 0 12 0;
+#X connect 1 0 12 0;
+#X connect 2 0 12 0;
+#X connect 8 0 13 0;
+#X restore 439 488 pd COLOR;
+#X text 499 488 Change colors;
+#X text 549 458 Change matrix size and cellsize;
+#X text 439 46 Arguments - ALWAYS USE THE FIRST TWO ARGUMENTS;
+#X text 439 306 - matrix ... - read matrix definitions;
+#X text 503 518 Read matrix messages;
+#N canvas 218 139 397 347 MATRIX 0;
+#X text 11 8 Read matrix messages \;;
+#X text 89 271 == [matrixctrl 8 8 8];
+#X text 88 115 == [matrixctrl 5 2];
+#X obj 15 148 prepend set;
+#X msg 15 168 matrix 5 2 0 0 0 0 0 1 1 0 1 1;
+#X msg 15 69 matrix 5 2 1 0 0 1 0 0 1 0 0 0;
+#X msg 25 89 matrix 5 2 0 0 0 0 0 1 1 0 1 1;
+#X text 12 28 Send the message "matrix ... " to import matrix definitions.
+With this you can save your settings.;
+#X msg 15 227 matrix 8 8 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0
+0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0
+1 0 1 0 0 0 0 0 0;
+#X text 15 207 A more complex example:;
+#X obj 15 273 matrixctrl 8 8 8;
+#X obj 15 117 matrixctrl 5 2;
+#X connect 3 0 4 0;
+#X connect 5 0 11 0;
+#X connect 6 0 11 0;
+#X connect 8 0 10 0;
+#X connect 11 0 3 0;
+#X restore 439 518 pd MATRIX;
+#X text 439 186 - reset - resets matrix;
+#N canvas 455 181 408 289 MODES+RESET 0;
+#X msg 19 98 mode AND;
+#X msg 29 118 mode OR;
+#X text 109 137 == [matrixctrl 5 3];
+#X text 19 47 There are two modes: AND allows for multiple selection
+\, OR keeps only one selected field \, setting all other fields to
+0 AND is the standard mode.;
+#X text 19 17 Interaction modes:;
+#X msg 19 228 reset;
+#X text 19 207 Reset a matrix - the "reset" message sets all fields
+to 0;
+#X obj 19 138 matrixctrl 6 3;
+#X obj 19 248 matrixctrl 2 2;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 5 0 8 0;
+#X restore 439 428 pd MODES+RESET;
+#X text 533 428 Interaction modes and reset;
+#X text 439 398 Other features are:;
+#X text 439 206 - bang - outputs current setting;
+#N canvas 564 268 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION GUI for [iemmatrix/mtx_mul~];
+#X text 12 36 KEYWORDS matrix mtx_mul~ matrix~;
+#X text 12 135 VERSION 2013;
+#X restore 151 576 pd META;
+#X text 11 11 [matrixctrl x y z] - GUI for [iemmatrix/mtx_mul~];
+#X obj 89 218 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 109 217 bang outputs the current setting;
+#X obj 61 516 matrixctrl 5 5 6;
+#X text 58 558 (C) 2013 João Pais - jmmmpais@gmail.com;
+#X text 439 246 - size \$1 \$2 - change matrix size;
+#X text 439 266 - cellsize \$1 - change cell size;
+#X text 439 286 - color \$1 \$2 - change colors;
+#X text 439 156 - \$1 \$2 \$3 - list with horizontal & vertical positions
+\, and state (0/1);
+#X text 59 498 The third argument sets cell size. Here with 6 points:
+;
+#X connect 2 0 7 1;
+#X connect 7 0 3 0;
+#X connect 7 1 4 0;
+#X connect 7 2 5 0;
+#X connect 7 3 6 0;
+#X connect 8 0 7 2;
+#X connect 9 0 20 0;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 14 0 25 0;
+#X connect 15 0 16 0;
+#X connect 16 0 14 0;
+#X connect 17 0 18 0;
+#X connect 18 0 14 0;
+#X connect 25 0 9 0;
+#X connect 25 0 7 0;
+#X connect 48 0 14 0;
diff --git a/abstractions/jmmmp/matrixctrl.pd b/abstractions/jmmmp/matrixctrl.pd
new file mode 100644
index 000000000..e4442d2ba
--- /dev/null
+++ b/abstractions/jmmmp/matrixctrl.pd
@@ -0,0 +1,543 @@
+#N struct 1045-color float x float y float farbe;
+#N struct 1045-color-display float x float y float farbe;
+#N struct 1048-color float x float y float farbe;
+#N struct 1048-color-display float x float y float farbe;
+#N struct 1042-matrixctrl float x float y float size float color float
+state;
+#N canvas 426 166 687 425 10;
+#N canvas 227 417 377 370 template 0;
+#X obj 9 9 struct \$0-matrixctrl float x float y float size float color
+float state;
+#X obj 28 312 filledpolygon color 0 1 0 0 0 size size size size 0 0
+0;
+#X obj 9 52 route click change;
+#X obj 91 152 bang;
+#X obj 91 192 set \$0-matrixctrl size;
+#X obj 28 122 t p p p;
+#X obj 9 342 outlet;
+#X obj 28 282 set \$0-matrixctrl color state;
+#X obj 28 222 get \$0-matrixctrl state;
+#X obj 48 92 outlet;
+#X obj 9 72 t b p b;
+#X obj 91 172 value _\$0_size;
+#X obj 28 242 expr if($f1==0 \, _\$0_color1 \, _\$0_color0) \; if($f1==0
+\, 1 \, 0);
+#X connect 0 0 2 0;
+#X connect 2 0 10 0;
+#X connect 2 1 3 0;
+#X connect 3 0 11 0;
+#X connect 5 0 8 0;
+#X connect 5 1 7 2;
+#X connect 5 2 4 1;
+#X connect 8 0 12 0;
+#X connect 10 0 6 0;
+#X connect 10 1 5 0;
+#X connect 10 2 9 0;
+#X connect 11 0 4 0;
+#X connect 12 0 7 0;
+#X connect 12 1 7 1;
+#X restore 15 151 pd template;
+#N canvas 1349 184 689 687 generate 0;
+#X obj 64 553 symbol \$0-matrixctrl;
+#X obj 18 653 s pd-\$0-gui;
+#X obj 311 512 pack f f;
+#X obj 168 452 f+ 0 1;
+#X obj 18 392 until;
+#X obj 18 452 f+ 0 1;
+#X obj 168 492 i;
+#X obj 18 593 pack f f s f;
+#X obj 18 422 t b b;
+#X msg 311 532 clear \, donecanvasdialog 1 -3 2 0 0 \$1 \$2 \$1 \$2
+20 20 \, dirty 0;
+#X obj 311 381 pack f f;
+#X obj 311 421 s \$0-matrixctrl;
+#X msg 311 401 donecanvasdialog 1 -3 2 0 -1 1 1 \$1 \$2 100 50 \, dirty
+0;
+#X msg 18 613 scalar \$3 \$1 \$2 \$4 899 0;
+#X obj 121 42 value _\$0_size;
+#X obj 135 112 value _\$0_column;
+#X obj 108 142 value _\$0_row;
+#X obj 18 12 loadbang;
+#X obj 18 372 expr _\$0_row * _\$0_column;
+#X obj 168 472 expr $f1 / _\$0_column;
+#X obj 18 472 expr $f1 % _\$0_column;
+#X obj 33 232 s \$0-INIT;
+#X obj 18 32 t b b b b b;
+#X obj 265 182 inlet;
+#X obj 304 222 unpack f f;
+#X obj 285 22 inlet;
+#X obj 285 42 t b f;
+#X obj 121 22 expr if( \$3 == 0 \, 13 \, \$3 );
+#X obj 356 361 expr _\$0_size * _\$0_row + 2;
+#X obj 311 341 expr _\$0_size * _\$0_column + 2;
+#X obj 311 321 t b b;
+#X obj 356 472 expr _\$0_size * _\$0_row;
+#X obj 311 492 expr _\$0_size * _\$0_column;
+#X obj 311 452 t b b;
+#X obj 168 512 expr $f1 * _\$0_size;
+#X obj 18 512 expr $f1 * _\$0_size;
+#X obj 87 573 value _\$0_size;
+#X obj 18 271 t b;
+#X obj 18 292 t b b b b b;
+#X obj 265 202 t b b a;
+#X obj 135 92 \$1;
+#X obj 108 122 \$2;
+#X text 151 244 (column and row are switched in the variable order
+\, because the patch was made so from the beginning);
+#X obj 18 352 t b b b;
+#X obj 108 72 t b b;
+#X obj 49 132 t b b;
+#X obj 76 172 value _\$0_color1;
+#X obj 49 202 value _\$0_color0;
+#X obj 49 182 899;
+#X obj 438 22 inlet;
+#X obj 522 92 unpack f f;
+#X obj 438 42 route bang;
+#N canvas 1392 258 311 289 reset-color 0;
+#X obj 23 81 until;
+#X obj 63 171 pointer \$0-matrixctrl;
+#X obj 63 121 symbol pd-\$0-gui;
+#X msg 23 101 next;
+#X msg 63 141 traverse \$1;
+#X obj 23 41 t b b;
+#X obj 23 61 expr _\$0_row * _\$0_column;
+#X obj 23 21 inlet;
+#X obj 63 221 get \$0-matrixctrl state;
+#X obj 63 261 set \$0-matrixctrl color;
+#X obj 63 191 t p p;
+#X obj 63 241 expr if($f1==1 \, _\$0_color1 \, _\$0_color0);
+#X connect 0 0 3 0;
+#X connect 1 0 10 0;
+#X connect 2 0 4 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 0;
+#X connect 5 0 6 0;
+#X connect 5 1 2 0;
+#X connect 6 0 0 0;
+#X connect 7 0 5 0;
+#X connect 8 0 11 0;
+#X connect 10 0 8 0;
+#X connect 10 1 9 1;
+#X connect 11 0 9 0;
+#X restore 495 122 pd reset-color;
+#X obj 495 72 t b a;
+#X obj 76 152 800;
+#X obj 438 152 s pd-\$0-color-selector;
+#X msg 438 132 vis 1;
+#N canvas 439 459 518 243 \$0-color-selector 0;
+#N canvas 298 464 528 328 color-sel-gui 0;
+#X obj 12 59 ds-color-sel;
+#X obj 12 154 ds-color-sel;
+#X text 12 41 "Off" color;
+#X text 12 136 "On" color;
+#X text 12 13 Click the desired color for the fields \, and click the
+button when you're finished.;
+#X obj 425 25 bng 15 250 50 0 \$0-send-colors \$0-send-colors-i empty
+17 7 0 10 -228856 -1 -1;
+#X text 442 23 Send colors;
+#X obj 12 258 pack s f f;
+#X msg 12 238 symbol color;
+#X obj 12 298 s \$0-color-reset;
+#X msg 12 278 \$2 \$3;
+#X connect 0 0 7 1;
+#X connect 1 0 7 2;
+#X connect 5 0 8 0;
+#X connect 7 0 10 0;
+#X connect 8 0 7 0;
+#X connect 10 0 9 0;
+#X coords 0 -1 1 1 506 217 2 10 10;
+#X restore 5 14 pd color-sel-gui;
+#X restore 438 172 pd \$0-color-selector;
+#X obj 515 42 r \$0-color-reset;
+#N canvas 547 322 688 374 change-cellsize 0;
+#X obj 33 92 until;
+#X obj 124 182 pointer \$0-matrixctrl;
+#X obj 83 92 symbol pd-\$0-gui;
+#X msg 124 162 next;
+#X msg 83 112 traverse \$1;
+#X obj 33 72 expr _\$0_row * _\$0_column;
+#X obj 33 332 set \$0-matrixctrl x y size;
+#X obj 173 212 f+ 0 1;
+#X obj 33 212 f+ 0 1;
+#X obj 173 252 i;
+#X obj 173 232 expr $f1 / _\$0_column;
+#X obj 33 232 expr $f1 % _\$0_column;
+#X obj 173 272 expr $f1 * _\$0_size;
+#X obj 33 272 expr $f1 * _\$0_size;
+#X obj 135 312 value _\$0_size;
+#X obj 33 132 t b b b b;
+#X obj 331 242 pack f f;
+#X obj 376 202 expr _\$0_size * _\$0_row;
+#X obj 331 222 expr _\$0_size * _\$0_column;
+#X obj 331 182 t b b;
+#X obj 331 282 s pd-\$0-gui;
+#X msg 331 262 donecanvasdialog 1 -3 2 0 0 \$1 \$2 \$1 \$2 20 20 \,
+dirty 0;
+#X obj 331 112 pack f f;
+#X obj 331 152 s \$0-matrixctrl;
+#X msg 331 132 donecanvasdialog 1 -3 2 0 -1 1 1 \$1 \$2 100 50 \, dirty
+0;
+#X obj 376 92 expr _\$0_size * _\$0_row + 2;
+#X obj 331 72 expr _\$0_size * _\$0_column + 2;
+#X obj 331 52 t b b;
+#X obj 33 52 t b b b b;
+#X text 328 303 o mesmo de generate \, mas sem clear. nao é muito
+eficiente ter que se repetir o código todo.;
+#X obj 33 22 inlet;
+#X connect 0 0 15 0;
+#X connect 1 0 6 3;
+#X connect 2 0 4 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 0;
+#X connect 5 0 0 0;
+#X connect 7 0 10 0;
+#X connect 8 0 11 0;
+#X connect 9 0 12 0;
+#X connect 10 0 9 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 1;
+#X connect 13 0 6 0;
+#X connect 14 0 6 2;
+#X connect 15 0 8 0;
+#X connect 15 1 7 0;
+#X connect 15 2 14 0;
+#X connect 15 3 3 0;
+#X connect 16 0 21 0;
+#X connect 17 0 16 1;
+#X connect 18 0 16 0;
+#X connect 19 0 18 0;
+#X connect 19 1 17 0;
+#X connect 21 0 20 0;
+#X connect 22 0 24 0;
+#X connect 24 0 23 0;
+#X connect 25 0 22 1;
+#X connect 26 0 22 0;
+#X connect 27 0 26 0;
+#X connect 27 1 25 0;
+#X connect 28 0 5 0;
+#X connect 28 1 2 0;
+#X connect 28 2 8 1;
+#X connect 28 3 7 1;
+#X connect 28 3 27 0;
+#X connect 28 3 19 0;
+#X connect 30 0 28 0;
+#X restore 285 62 pd change-cellsize;
+#X connect 0 0 7 2;
+#X connect 2 0 9 0;
+#X connect 3 0 19 0;
+#X connect 4 0 8 0;
+#X connect 5 0 20 0;
+#X connect 6 0 34 0;
+#X connect 7 0 13 0;
+#X connect 8 0 5 0;
+#X connect 8 1 3 0;
+#X connect 9 0 1 0;
+#X connect 10 0 12 0;
+#X connect 12 0 11 0;
+#X connect 13 0 1 0;
+#X connect 17 0 22 0;
+#X connect 18 0 4 0;
+#X connect 19 0 6 0;
+#X connect 20 0 35 0;
+#X connect 22 0 37 0;
+#X connect 22 1 21 0;
+#X connect 22 2 45 0;
+#X connect 22 3 44 0;
+#X connect 22 4 27 0;
+#X connect 23 0 39 0;
+#X connect 24 0 16 0;
+#X connect 24 1 15 0;
+#X connect 25 0 26 0;
+#X connect 26 0 59 0;
+#X connect 26 1 14 0;
+#X connect 27 0 14 0;
+#X connect 28 0 10 1;
+#X connect 29 0 10 0;
+#X connect 30 0 29 0;
+#X connect 30 1 28 0;
+#X connect 31 0 2 1;
+#X connect 32 0 2 0;
+#X connect 33 0 32 0;
+#X connect 33 1 31 0;
+#X connect 34 0 7 1;
+#X connect 35 0 7 0;
+#X connect 36 0 7 3;
+#X connect 37 0 38 0;
+#X connect 38 0 43 0;
+#X connect 38 1 0 0;
+#X connect 38 2 36 0;
+#X connect 38 3 33 0;
+#X connect 38 4 30 0;
+#X connect 39 0 37 0;
+#X connect 39 1 21 0;
+#X connect 39 2 24 0;
+#X connect 40 0 15 0;
+#X connect 41 0 16 0;
+#X connect 43 0 18 0;
+#X connect 43 1 5 1;
+#X connect 43 2 3 1;
+#X connect 44 0 41 0;
+#X connect 44 1 40 0;
+#X connect 45 0 48 0;
+#X connect 45 1 54 0;
+#X connect 48 0 47 0;
+#X connect 49 0 51 0;
+#X connect 50 0 47 0;
+#X connect 50 1 46 0;
+#X connect 51 0 56 0;
+#X connect 51 1 53 0;
+#X connect 53 0 52 0;
+#X connect 53 1 50 0;
+#X connect 54 0 46 0;
+#X connect 56 0 55 0;
+#X connect 58 0 53 0;
+#X restore 15 121 pd generate;
+#N canvas 290 512 450 300 \$0-gui 0;
+#X scalar 1042-matrixctrl 0 0 17 899 0 \;;
+#X scalar 1042-matrixctrl 17 0 17 899 0 \;;
+#X scalar 1042-matrixctrl 34 0 17 899 0 \;;
+#X scalar 1042-matrixctrl 51 0 17 800 1 \;;
+#X scalar 1042-matrixctrl 0 17 17 800 1 \;;
+#X scalar 1042-matrixctrl 17 17 17 899 0 \;;
+#X scalar 1042-matrixctrl 34 17 17 800 1 \;;
+#X scalar 1042-matrixctrl 51 17 17 899 0 \;;
+#X coords 0 0 68 34 68 34 2 20 20;
+#X restore 101 51 pd \$0-gui;
+#X obj 15 241 outlet;
+#X obj 15 291 namecanvas \$0-matrixctrl;
+#X obj 15 71 inlet;
+#N canvas 789 175 369 465 gui-output 0;
+#X obj 25 19 inlet;
+#X obj 85 429 outlet;
+#X obj 25 99 until;
+#X obj 85 149 pointer \$0-matrixctrl;
+#X obj 85 99 symbol pd-\$0-gui;
+#X msg 85 119 traverse \$1;
+#X msg 25 119 next;
+#X obj 25 39 t b b;
+#X obj 85 169 get \$0-matrixctrl state;
+#X obj 25 79 t f f;
+#X obj 85 189 list-abs/last-x;
+#X obj 85 209 list-abs/list-rev;
+#X obj 85 379 list trim;
+#X text 65 18 reads fields and gives output;
+#X obj 85 399 iemmatrix/mtx_transpose;
+#X obj 154 319 pack;
+#X obj 175 299 value _\$0_column;
+#X obj 154 279 value _\$0_row;
+#X msg 154 339 list matrix \$1 \$2;
+#X obj 85 359 list prepend;
+#X obj 154 239 r \$0-INIT;
+#X obj 154 259 t b b;
+#X obj 25 59 expr _\$0_row * _\$0_column;
+#X connect 0 0 7 0;
+#X connect 2 0 6 0;
+#X connect 3 0 8 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 3 0;
+#X connect 7 0 22 0;
+#X connect 7 1 4 0;
+#X connect 8 0 10 0;
+#X connect 9 0 2 0;
+#X connect 9 1 10 1;
+#X connect 10 0 11 0;
+#X connect 11 0 19 0;
+#X connect 12 0 14 0;
+#X connect 14 0 1 0;
+#X connect 15 0 18 0;
+#X connect 16 0 15 1;
+#X connect 17 0 15 0;
+#X connect 18 0 19 1;
+#X connect 19 0 12 0;
+#X connect 20 0 21 0;
+#X connect 21 0 17 0;
+#X connect 21 1 16 0;
+#X connect 22 0 9 0;
+#X restore 15 211 pd gui-output;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2006 \, João Pais;
+#X restore 15 337 pd license;
+#X text 12 317 (C) 2013 João Pais - jmmmpais@googlemail.com;
+#N canvas 625 110 539 526 change 0;
+#X obj 217 11 inlet;
+#X obj 244 241 outlet;
+#X obj 327 291 until;
+#X obj 313 391 pointer \$0-matrixctrl;
+#X obj 313 341 symbol pd-\$0-gui;
+#X msg 327 311 next;
+#X obj 293 241 unpack f f f;
+#X obj 293 221 list-abs/list-rot -1;
+#X msg 313 361 traverse \$1;
+#X obj 293 464 set \$0-matrixctrl state color;
+#X obj 274 201 t b a b;
+#X obj 23 321 until;
+#X obj 63 411 pointer \$0-matrixctrl;
+#X obj 63 361 symbol pd-\$0-gui;
+#X msg 23 341 next;
+#X msg 63 381 traverse \$1;
+#X obj 63 491 set \$0-matrixctrl state color;
+#X obj 23 281 t b b;
+#X obj 63 431 t b p;
+#X obj 217 91 route mode;
+#X obj 274 121 list prepend;
+#X msg 237 61 mode AND;
+#X obj 274 161 route AND OR;
+#X obj 274 141 list trim;
+#X obj 237 41 loadbang;
+#X obj 23 181 inlet;
+#X obj 23 201 spigot 0;
+#X obj 308 181 t a b;
+#X obj 68 151 sel AND OR;
+#X obj 68 171 0;
+#X obj 96 171 1;
+#X obj 327 271 expr $f1 + $f2 * _\$0_column + 1;
+#X obj 23 301 expr _\$0_row * _\$0_column;
+#X obj 293 421 expr $f1 \; if($f1==1 \, _\$0_color1 \, _\$0_color0)
+;
+#X obj 63 451 expr 0 \; _\$0_color0;
+#X obj 68 131 zexy/list2symbol;
+#X obj 33 231 inlet;
+#X obj 33 251 t b b;
+#X connect 0 0 19 0;
+#X connect 2 0 5 0;
+#X connect 3 0 9 2;
+#X connect 4 0 8 0;
+#X connect 5 0 3 0;
+#X connect 6 0 33 0;
+#X connect 6 1 31 0;
+#X connect 6 2 31 1;
+#X connect 7 0 6 0;
+#X connect 8 0 3 0;
+#X connect 10 0 1 0;
+#X connect 10 1 7 0;
+#X connect 10 2 4 0;
+#X connect 11 0 14 0;
+#X connect 12 0 18 0;
+#X connect 13 0 15 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 17 0 32 0;
+#X connect 17 1 13 0;
+#X connect 18 0 34 0;
+#X connect 18 1 16 2;
+#X connect 19 0 20 1;
+#X connect 19 0 35 0;
+#X connect 19 1 20 0;
+#X connect 20 0 23 0;
+#X connect 21 0 19 0;
+#X connect 22 0 10 0;
+#X connect 22 1 27 0;
+#X connect 23 0 22 0;
+#X connect 24 0 21 0;
+#X connect 25 0 26 0;
+#X connect 26 0 17 0;
+#X connect 27 0 10 0;
+#X connect 27 1 17 0;
+#X connect 28 0 29 0;
+#X connect 28 1 30 0;
+#X connect 29 0 26 1;
+#X connect 30 0 26 1;
+#X connect 31 0 2 0;
+#X connect 32 0 11 0;
+#X connect 33 0 9 0;
+#X connect 33 1 9 1;
+#X connect 34 0 16 0;
+#X connect 34 1 16 1;
+#X connect 35 0 28 0;
+#X connect 36 0 37 0;
+#X connect 37 0 1 0;
+#X connect 37 1 17 0;
+#X restore 219 181 pd change;
+#X text 11 21 [matrixctrl] - GUI for [iemmatrix/mtx_mul~];
+#X text 309 116 Inlets;
+#X text 309 316 Outlets;
+#X text 309 337 - output for [iemmatrix/mtx_mul~];
+#X text 309 86 - cell size (default is 13);
+#X text 309 136 - x y z - list with horizontal & vertical positions
+\, and state (0/1);
+#X text 309 206 - "mode AND" / "mode OR" - matrix behaviour (default
+is AND);
+#X text 309 246 - cellsize x - change cell size;
+#X text 309 226 - size x y - change matrix size;
+#X text 308 66 - number of inputs/rows;
+#X text 309 46 - number of outputs/columns;
+#X text 309 266 - color [x y] - change colors;
+#X text 309 26 Arguments - ALWAYS USE THE FIRST TWO ARGUMENTS;
+#N canvas 802 380 290 346 read-matrix 0;
+#X obj 14 14 inlet;
+#X obj 83 244 pointer \$0-matrixctrl;
+#X obj 83 194 symbol pd-\$0-gui;
+#X msg 83 214 traverse \$1;
+#X obj 57 124 zexy/drip;
+#X msg 104 164 next;
+#X text 54 13 imports matrix settings;
+#X obj 57 144 t f b;
+#X obj 57 317 set \$0-matrixctrl state color;
+#X obj 57 274 expr $f1 \; if($f1==1 \, _\$0_color1 \, _\$0_color0)
+;
+#X obj 14 54 iemmatrix/mtx_transpose;
+#X obj 33 94 list split 3;
+#X obj 14 34 prepend matrix;
+#X obj 14 184 outlet;
+#X obj 14 74 t b a b;
+#X connect 0 0 12 0;
+#X connect 1 0 8 2;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 7 0;
+#X connect 5 0 1 0;
+#X connect 7 0 9 0;
+#X connect 7 1 5 0;
+#X connect 9 0 8 0;
+#X connect 9 1 8 1;
+#X connect 10 0 14 0;
+#X connect 11 1 4 0;
+#X connect 12 0 10 0;
+#X connect 14 0 13 0;
+#X connect 14 1 11 0;
+#X connect 14 2 2 0;
+#X restore 142 121 pd read-matrix;
+#X text 309 286 - matrix ... - read matrix definitions;
+#X text 309 166 - reset - resets matrix;
+#X obj 15 91 route size cellsize color matrix reset bang;
+#X text 309 186 - bang - outputs current setting;
+#X text 236 365 falta: \; - mode OR para colunas ou linhas \; - mode
+fade (AND com pegel e Anzeige \, outro objecto diferente);
+#X connect 0 0 6 0;
+#X connect 0 1 9 0;
+#X connect 5 0 26 0;
+#X connect 6 0 3 0;
+#X connect 9 0 6 0;
+#X connect 23 0 6 0;
+#X connect 26 0 1 0;
+#X connect 26 1 1 1;
+#X connect 26 2 1 2;
+#X connect 26 3 23 0;
+#X connect 26 4 9 1;
+#X connect 26 5 6 0;
+#X connect 26 6 9 2;
+#X coords 0 -1 1 1 70 36 2 100 50;
diff --git a/abstractions/jmmmp/mat~-help.pd b/abstractions/jmmmp/mat~-help.pd
index e958cf062..3a3b0079e 100644
--- a/abstractions/jmmmp/mat~-help.pd
+++ b/abstractions/jmmmp/mat~-help.pd
@@ -1,9 +1,8 @@
 #N canvas 277 106 387 439 10;
 #X text 51 196 <- 0dB;
-#X text 12 387 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 407 Released under the BSD License;
-#X text 230 85 Inlets;
-#X text 230 175 Outlets;
+#X text 230 135 Inlets;
+#X text 230 225 Outlets;
 #N canvas 0 0 392 215 signal 0;
 #X obj 47 75 random 7;
 #X obj 47 54 metrum 400 1;
@@ -28,16 +27,16 @@
 #X connect 10 0 2 0;
 #X restore 16 105 pd signal;
 #X obj 16 316 outlet~;
-#X floatatom 63 316 5 0 0 0 - - -;
+#X floatatom 73 316 8 0 0 0 - - -;
 #X obj 28 133 bng 13 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
 -1;
 #X text 46 130 <- Mute / Unmute;
-#X text 100 316 Signal level;
-#X text 230 105 - Signal;
-#X text 230 195 - Amplified signal;
-#X text 230 215 - Signal level (0-1);
-#X text 230 145 - Level (0-127);
-#X text 230 125 - Mute / Unmute (bang);
+#X text 125 316 Signal level;
+#X text 230 155 - Signal;
+#X text 230 245 - Amplified signal;
+#X text 230 265 - Signal level (0-1);
+#X text 230 195 - Level (0-127);
+#X text 230 175 - Mute / Unmute (bang);
 #X msg 61 153 0;
 #X msg 89 153 127;
 #X text 118 153 Control level;
@@ -47,11 +46,28 @@
 0 and 127 Lighter as met~.;
 #X obj 16 85 dsp01;
 #X text 12 357 Related objects: [maat~] [met~] [dacm~];
-#X connect 5 0 19 0;
-#X connect 5 1 19 2;
-#X connect 8 0 19 1;
-#X connect 16 0 19 2;
-#X connect 17 0 19 2;
-#X connect 19 0 6 0;
-#X connect 19 1 7 0;
+#X text 230 85 Arguments;
+#X text 230 105 - Level (0-127);
+#X text 12 387 (C) 2006-2012 João Pais - jmmmpais@googlemail.com;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2012;
+#X text 14 36 KEYWORDS level meter;
+#X text 14 205 INLET_2 - Level (0-127);
+#X text 12 5 DESCRIPTION Level meter with amplitude control;
+#X text 14 165 INLET_0 - Signal;
+#X text 14 185 INLET_1 - Mute / Unmute (bang);
+#X text 14 225 OUTLET_0 - Amplified signal;
+#X text 14 245 OUTLET_1 - Signal level (0-1);
+#X restore 322 406 pd META;
+#X connect 4 0 18 0;
+#X connect 4 1 18 2;
+#X connect 7 0 18 1;
+#X connect 15 0 18 2;
+#X connect 16 0 18 2;
+#X connect 18 0 5 0;
+#X connect 18 1 6 0;
 #X coords 0 0 1 1 31 130 0;
diff --git a/abstractions/jmmmp/mat~.pd b/abstractions/jmmmp/mat~.pd
index cc9b9d785..885362948 100644
--- a/abstractions/jmmmp/mat~.pd
+++ b/abstractions/jmmmp/mat~.pd
@@ -1,4 +1,4 @@
-#N canvas 622 202 457 485 10;
+#N canvas 369 115 457 485 10;
 #X obj 31 109 cnv 15 29 128 empty empty empty 20 12 0 14 -233017 -66577
 0;
 #X obj 19 332 *~;
@@ -10,12 +10,12 @@
 #X obj 48 262 dbtorms;
 #X obj 98 282 outlet;
 #X obj 48 113 vsl 10 119 0 127 0 0 empty empty empty 0 -8 0 8 -195568
--1 -1 6039 0;
+-1 -1 4646 0;
 #X obj 50 138 cnv 1 6 2 empty empty empty 20 12 0 14 -262144 -262144
 0;
 #X obj 29 392 - 100;
 #X obj 34 113 vsl 10 119 -100 12 0 0 empty empty empty 0 -8 0 8 -195568
--1 -262144 1650 0;
+-1 -262144 0 0;
 #X obj 29 352 env~ 8820;
 #X obj 39 87 inlet mute;
 #X obj 71 112 bang;
@@ -53,17 +53,21 @@ in the documentation and/or other materials provided with the distribution.
 #X text 8 7 Copyright 2006 \, João Pais;
 #X restore 15 455 pd license;
 #X text 11 8 [met~] - Level meter with amplitude control;
-#X text 280 45 Inlets;
-#X text 280 135 Outlets;
-#X text 280 65 - Signal;
-#X text 280 155 - Amplified signal;
-#X text 280 175 - Signal level (0-1);
-#X text 280 105 - Level (0-127);
-#X text 280 85 - Mute / Unmute (bang);
+#X text 280 105 Inlets;
+#X text 280 195 Outlets;
+#X text 280 125 - Signal;
+#X text 280 215 - Amplified signal;
+#X text 280 235 - Signal level (0-1);
+#X text 280 165 - Level (0-127);
+#X text 280 145 - Mute / Unmute (bang);
 #X obj 29 372 dbtofad;
 #X obj 36 143 cnv 1 6 2 empty empty empty 20 12 0 14 -262144 -262144
 0;
 #X text 12 437 (C) 2009 João Pais - jmmmpais@googlemail.com;
+#X text 280 75 - Level (0-127);
+#X text 280 55 Arguments;
+#X obj 169 67 init \$1;
+#X obj 169 87 moses 1;
 #X connect 1 0 6 0;
 #X connect 1 0 13 0;
 #X connect 2 0 1 1;
@@ -86,4 +90,6 @@ in the documentation and/or other materials provided with the distribution.
 #X connect 20 0 12 0;
 #X connect 21 0 16 0;
 #X connect 31 0 11 0;
-#X coords 0 -1 1 1 31 130 1 30 108;
+#X connect 36 0 37 0;
+#X connect 37 1 9 0;
+#X coords 0 -1 1 1 31 130 2 30 108;
diff --git a/abstractions/jmmmp/metrum-help.pd b/abstractions/jmmmp/metrum-help.pd
index 428c8dada..1fec7344f 100644
--- a/abstractions/jmmmp/metrum-help.pd
+++ b/abstractions/jmmmp/metrum-help.pd
@@ -2,8 +2,7 @@
 #X obj 16 109 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
 ;
 #X msg 161 108 100;
-#X text 12 247 (C) 2006 João Pais - jmmmpais@googlemail.com
-;
+#X text 12 247 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 306 100 Inlets;
 #X text 306 120 - On / Off;
 #X text 306 170 Outlets;
@@ -48,6 +47,19 @@ in the documentation and/or other materials provided with the distribution.
 #X text 8 27 jmmmpais@googlemail.com;
 #X text 8 7 Copyright 2006 \, João Pais;
 #X restore 15 269 pd license;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 5 DESCRIPTION Metro with GUI;
+#X text 14 36 KEYWORDS metro;
+#X text 12 135 VERSION 2006;
+#X text 14 165 INLET_0 - On / Off;
+#X text 14 185 INLET_1 - Velocity (ms);
+#X text 14 205 OUTLET_0 - Bang;
+#X text 14 225 OUTLET_1 - Velocity (ms);
+#X restore 372 276 pd META;
 #X connect 0 0 7 0;
 #X connect 1 0 7 1;
 #X connect 7 0 9 0;
diff --git a/abstractions/jmmmp/met~-help.pd b/abstractions/jmmmp/met~-help.pd
index 3ac5bea57..1e37ad8a6 100644
--- a/abstractions/jmmmp/met~-help.pd
+++ b/abstractions/jmmmp/met~-help.pd
@@ -50,6 +50,20 @@ but doesn't look as nice.;
 #X text 118 153 Control level;
 #X obj 16 85 dsp01;
 #X text 12 397 Related objects: [maat~] [mat~] [dacm~];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 14 36 KEYWORDS level meter;
+#X text 14 205 INLET_2 - Level (0-127);
+#X text 12 5 DESCRIPTION Level meter with amplitude control;
+#X text 14 165 INLET_0 - Signal;
+#X text 14 185 INLET_1 - Mute / Unmute (bang);
+#X text 14 225 OUTLET_0 - Amplified signal;
+#X text 14 245 OUTLET_1 - Signal level (0-1);
+#X text 12 135 VERSION 2006;
+#X restore 342 446 pd META;
 #X connect 6 0 9 0;
 #X connect 6 1 9 2;
 #X connect 9 0 7 0;
diff --git a/abstractions/jmmmp/mk-help.pd b/abstractions/jmmmp/mk-help.pd
index db068c3f3..66cd2ac4d 100644
--- a/abstractions/jmmmp/mk-help.pd
+++ b/abstractions/jmmmp/mk-help.pd
@@ -6,5 +6,14 @@
 #X text 196 100 - Controller number;
 #X text 196 120 - MIDI value;
 #X obj 26 95 mk;
-#X text 12 10 [mk] - Fast visual control of MIDI inputs;
 #X text 12 157 Related objects: [m-i] [sliders];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 36 KEYWORDS metro;
+#X text 12 6 DESCRIPTION Visual display of MIDI inputs;
+#X text 12 135 VERSION 2006;
+#X restore 302 206 pd META;
+#X text 12 10 [mk] - Visual display of MIDI inputs;
diff --git a/abstractions/jmmmp/oscD-help.pd b/abstractions/jmmmp/oscD-help.pd
index bf9d412c7..3d3eb24b7 100644
--- a/abstractions/jmmmp/oscD-help.pd
+++ b/abstractions/jmmmp/oscD-help.pd
@@ -14,4 +14,14 @@
 #X obj 26 105 oscD 5000 1;
 #X obj 26 138 print oscD-extern;
 #X text 12 248 Related objects: [oscS];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION Counts received OSC messages;
+#X text 12 36 KEYWORDS OSC GUI;
+#X text 12 175 OUTLET_0 - OSC message;
+#X text 12 135 VERSION 2006;
+#X restore 342 296 pd META;
 #X connect 12 0 13 0;
diff --git a/abstractions/jmmmp/oscS-help.pd b/abstractions/jmmmp/oscS-help.pd
index 51d7865b3..dd5cdaf31 100644
--- a/abstractions/jmmmp/oscS-help.pd
+++ b/abstractions/jmmmp/oscS-help.pd
@@ -17,7 +17,6 @@
 #X text 239 129 Inlets;
 #X text 239 149 - Message to send;
 #X text 251 163 without "send" prefix;
-#X text 241 183 - On / Off;
 #X obj 192 159 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
 1;
 #X text 17 86 without the 'send' prefix.;
@@ -25,8 +24,21 @@
 #X text 35 197 State;
 #X text 171 140 On / Off;
 #X text 12 258 Related objects: [oscD];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2009;
+#X text 12 6 DESCRIPTION Interface for sendOSC;
+#X text 14 165 INLET_0 - Message to send without "send" prefix;
+#X text 14 185 INLET_1 - On / Off;
+#X text 14 205 OUTLET_0 - State;
+#X text 12 36 KEYWORDS OSC;
+#X restore 342 306 pd META;
+#X text 241 183 - On / Off;
 #X connect 3 0 8 0;
 #X connect 5 0 3 0;
 #X connect 6 0 3 0;
 #X connect 7 0 3 0;
-#X connect 18 0 3 1;
+#X connect 17 0 3 1;
diff --git a/abstractions/jmmmp/pd-colors-help.pd b/abstractions/jmmmp/pd-colors-help.pd
index e69de29bb..cfe4942a7 100644
--- a/abstractions/jmmmp/pd-colors-help.pd
+++ b/abstractions/jmmmp/pd-colors-help.pd
@@ -0,0 +1,4 @@
+#N struct 1431-color float x float y float farbe float ynpos;
+#N canvas 441 77 450 300 10;
+#X obj 177 131 pd-colors;
+#X text 163 65 pd-color palettes;
diff --git a/abstractions/jmmmp/pd-colors.pd b/abstractions/jmmmp/pd-colors.pd
index f3f4b3745..590c3ba72 100644
--- a/abstractions/jmmmp/pd-colors.pd
+++ b/abstractions/jmmmp/pd-colors.pd
@@ -1,5 +1,4 @@
-#N struct 1431-color float x float y float farbe float ynpos;
-#N canvas 267 287 320 171 10;
+#N canvas 267 287 319 171 10;
 #N canvas 0 0 376 407 license 0;
 #X text 8 47 All rights reserved.;
 #X text 8 227 The names of its contributors may not be used to endorse
@@ -23,16 +22,15 @@ THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
 copyright notice \, this list of conditions and the following disclaimer
 in the documentation and/or other materials provided with the distribution.
 ;
-#X text 8 27 jmmmpais@googlemail.com;
 #X text 8 7 Copyright 2008 \, João Pais;
+#X text 8 27 jmmmpais@gmail.com;
 #X restore 15 140 pd license;
-#X text 12 122 (C) 2008 João Pais - jmmmpais@googlemail.com;
 #X text 102 15 PD Color Palettes;
 #X text 15 59 Data Structures palette;
 #X text 15 47 Click the Bng for;
 #X text 185 47 Click the patch for;
 #X text 185 59 Tcl/Tk palette;
-#N canvas 569 298 260 301 Tcl/Tk 0;
+#N canvas 425 550 260 301 Tcl/Tk 0;
 #X obj 39 38 cnv 20 30 25 empty empty 0 -25 14 0 14 -262144 -33289
 0;
 #X obj 39 63 cnv 20 30 25 empty empty 1 -25 14 0 14 -166441 -33289
@@ -94,7 +92,7 @@ in the documentation and/or other materials provided with the distribution.
 0;
 #X text 71 10 PD Tcl/Tk palette;
 #X restore 188 77 pd Tcl/Tk;
-#N canvas 71 339 407 323 Data 0;
+#N canvas 71 339 842 341 Data 0;
 #X obj 198 275 pointer;
 #X obj 72 145 f;
 #X obj 97 145 + 1;
@@ -109,954 +107,79 @@ in the documentation and/or other materials provided with the distribution.
 #X obj 15 255 mod 1200;
 #X obj 152 215 mod 2;
 #X obj 152 235 expr if ($f1 == 0 \, -2 \, 29);
-#X msg 72 85 900;
-#X msg 198 255 traverse pd-farben-datas \, bang;
-#N canvas 496 445 416 136 farben 0;
-#X obj 60 71 drawnumber farbe 0 ynpos;
-#X obj 60 51 drawpolygon farbe 20 0 20 11 20;
-#X obj 60 21 struct \$0-color float x float y float farbe float ynpos
+#N canvas 496 445 536 114 farben 0;
+#X obj 20 71 drawnumber farbe 0 ynpos;
+#X obj 20 51 drawpolygon farbe 20 0 20 11 20;
+#X obj 20 21 struct \$0-color float x float y float farbe float ynpos
 ;
+#X text 220 51 DRAWS RECTANGLE;
+#X text 220 71 DRAWS COLOUR NUMBER;
+#X text 360 21 STRUCT WITH VARIABLES;
 #X restore 212 138 pd farben;
 #X obj 151 22 bng 13 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
 -1;
 #X obj 151 38 t b b b b b;
-#X obj 214 108 s pd-farben-datas;
 #X msg 214 88 vis 0 \, clear;
 #X msg 151 88 vis 1;
 #X obj 73 275 + 20;
-#N canvas 0 0 1249 484 farben-datas 0;
-#X scalar 1431-color 0 20 0 -2 \;;
-#X scalar 1431-color 12 20 1 29 \;;
-#X scalar 1431-color 24 20 2 -2 \;;
-#X scalar 1431-color 36 20 3 29 \;;
-#X scalar 1431-color 48 20 4 -2 \;;
-#X scalar 1431-color 60 20 5 29 \;;
-#X scalar 1431-color 72 20 6 -2 \;;
-#X scalar 1431-color 84 20 7 29 \;;
-#X scalar 1431-color 96 20 8 -2 \;;
-#X scalar 1431-color 108 20 9 29 \;;
-#X scalar 1431-color 120 20 10 -2 \;;
-#X scalar 1431-color 132 20 11 29 \;;
-#X scalar 1431-color 144 20 12 -2 \;;
-#X scalar 1431-color 156 20 13 29 \;;
-#X scalar 1431-color 168 20 14 -2 \;;
-#X scalar 1431-color 180 20 15 29 \;;
-#X scalar 1431-color 192 20 16 -2 \;;
-#X scalar 1431-color 204 20 17 29 \;;
-#X scalar 1431-color 216 20 18 -2 \;;
-#X scalar 1431-color 228 20 19 29 \;;
-#X scalar 1431-color 240 20 20 -2 \;;
-#X scalar 1431-color 252 20 21 29 \;;
-#X scalar 1431-color 264 20 22 -2 \;;
-#X scalar 1431-color 276 20 23 29 \;;
-#X scalar 1431-color 288 20 24 -2 \;;
-#X scalar 1431-color 300 20 25 29 \;;
-#X scalar 1431-color 312 20 26 -2 \;;
-#X scalar 1431-color 324 20 27 29 \;;
-#X scalar 1431-color 336 20 28 -2 \;;
-#X scalar 1431-color 348 20 29 29 \;;
-#X scalar 1431-color 360 20 30 -2 \;;
-#X scalar 1431-color 372 20 31 29 \;;
-#X scalar 1431-color 384 20 32 -2 \;;
-#X scalar 1431-color 396 20 33 29 \;;
-#X scalar 1431-color 408 20 34 -2 \;;
-#X scalar 1431-color 420 20 35 29 \;;
-#X scalar 1431-color 432 20 36 -2 \;;
-#X scalar 1431-color 444 20 37 29 \;;
-#X scalar 1431-color 456 20 38 -2 \;;
-#X scalar 1431-color 468 20 39 29 \;;
-#X scalar 1431-color 480 20 40 -2 \;;
-#X scalar 1431-color 492 20 41 29 \;;
-#X scalar 1431-color 504 20 42 -2 \;;
-#X scalar 1431-color 516 20 43 29 \;;
-#X scalar 1431-color 528 20 44 -2 \;;
-#X scalar 1431-color 540 20 45 29 \;;
-#X scalar 1431-color 552 20 46 -2 \;;
-#X scalar 1431-color 564 20 47 29 \;;
-#X scalar 1431-color 576 20 48 -2 \;;
-#X scalar 1431-color 588 20 49 29 \;;
-#X scalar 1431-color 600 20 50 -2 \;;
-#X scalar 1431-color 612 20 51 29 \;;
-#X scalar 1431-color 624 20 52 -2 \;;
-#X scalar 1431-color 636 20 53 29 \;;
-#X scalar 1431-color 648 20 54 -2 \;;
-#X scalar 1431-color 660 20 55 29 \;;
-#X scalar 1431-color 672 20 56 -2 \;;
-#X scalar 1431-color 684 20 57 29 \;;
-#X scalar 1431-color 696 20 58 -2 \;;
-#X scalar 1431-color 708 20 59 29 \;;
-#X scalar 1431-color 720 20 60 -2 \;;
-#X scalar 1431-color 732 20 61 29 \;;
-#X scalar 1431-color 744 20 62 -2 \;;
-#X scalar 1431-color 756 20 63 29 \;;
-#X scalar 1431-color 768 20 64 -2 \;;
-#X scalar 1431-color 780 20 65 29 \;;
-#X scalar 1431-color 792 20 66 -2 \;;
-#X scalar 1431-color 804 20 67 29 \;;
-#X scalar 1431-color 816 20 68 -2 \;;
-#X scalar 1431-color 828 20 69 29 \;;
-#X scalar 1431-color 840 20 70 -2 \;;
-#X scalar 1431-color 852 20 71 29 \;;
-#X scalar 1431-color 864 20 72 -2 \;;
-#X scalar 1431-color 876 20 73 29 \;;
-#X scalar 1431-color 888 20 74 -2 \;;
-#X scalar 1431-color 900 20 75 29 \;;
-#X scalar 1431-color 912 20 76 -2 \;;
-#X scalar 1431-color 924 20 77 29 \;;
-#X scalar 1431-color 936 20 78 -2 \;;
-#X scalar 1431-color 948 20 79 29 \;;
-#X scalar 1431-color 960 20 80 -2 \;;
-#X scalar 1431-color 972 20 81 29 \;;
-#X scalar 1431-color 984 20 82 -2 \;;
-#X scalar 1431-color 996 20 83 29 \;;
-#X scalar 1431-color 1008 20 84 -2 \;;
-#X scalar 1431-color 1020 20 85 29 \;;
-#X scalar 1431-color 1032 20 86 -2 \;;
-#X scalar 1431-color 1044 20 87 29 \;;
-#X scalar 1431-color 1056 20 88 -2 \;;
-#X scalar 1431-color 1068 20 89 29 \;;
-#X scalar 1431-color 1080 20 90 -2 \;;
-#X scalar 1431-color 1092 20 91 29 \;;
-#X scalar 1431-color 1104 20 92 -2 \;;
-#X scalar 1431-color 1116 20 93 29 \;;
-#X scalar 1431-color 1128 20 94 -2 \;;
-#X scalar 1431-color 1140 20 95 29 \;;
-#X scalar 1431-color 1152 20 96 -2 \;;
-#X scalar 1431-color 1164 20 97 29 \;;
-#X scalar 1431-color 1176 20 98 -2 \;;
-#X scalar 1431-color 1188 20 99 29 \;;
-#X scalar 1431-color 0 70 100 -2 \;;
-#X scalar 1431-color 12 70 101 29 \;;
-#X scalar 1431-color 24 70 102 -2 \;;
-#X scalar 1431-color 36 70 103 29 \;;
-#X scalar 1431-color 48 70 104 -2 \;;
-#X scalar 1431-color 60 70 105 29 \;;
-#X scalar 1431-color 72 70 106 -2 \;;
-#X scalar 1431-color 84 70 107 29 \;;
-#X scalar 1431-color 96 70 108 -2 \;;
-#X scalar 1431-color 108 70 109 29 \;;
-#X scalar 1431-color 120 70 110 -2 \;;
-#X scalar 1431-color 132 70 111 29 \;;
-#X scalar 1431-color 144 70 112 -2 \;;
-#X scalar 1431-color 156 70 113 29 \;;
-#X scalar 1431-color 168 70 114 -2 \;;
-#X scalar 1431-color 180 70 115 29 \;;
-#X scalar 1431-color 192 70 116 -2 \;;
-#X scalar 1431-color 204 70 117 29 \;;
-#X scalar 1431-color 216 70 118 -2 \;;
-#X scalar 1431-color 228 70 119 29 \;;
-#X scalar 1431-color 240 70 120 -2 \;;
-#X scalar 1431-color 252 70 121 29 \;;
-#X scalar 1431-color 264 70 122 -2 \;;
-#X scalar 1431-color 276 70 123 29 \;;
-#X scalar 1431-color 288 70 124 -2 \;;
-#X scalar 1431-color 300 70 125 29 \;;
-#X scalar 1431-color 312 70 126 -2 \;;
-#X scalar 1431-color 324 70 127 29 \;;
-#X scalar 1431-color 336 70 128 -2 \;;
-#X scalar 1431-color 348 70 129 29 \;;
-#X scalar 1431-color 360 70 130 -2 \;;
-#X scalar 1431-color 372 70 131 29 \;;
-#X scalar 1431-color 384 70 132 -2 \;;
-#X scalar 1431-color 396 70 133 29 \;;
-#X scalar 1431-color 408 70 134 -2 \;;
-#X scalar 1431-color 420 70 135 29 \;;
-#X scalar 1431-color 432 70 136 -2 \;;
-#X scalar 1431-color 444 70 137 29 \;;
-#X scalar 1431-color 456 70 138 -2 \;;
-#X scalar 1431-color 468 70 139 29 \;;
-#X scalar 1431-color 480 70 140 -2 \;;
-#X scalar 1431-color 492 70 141 29 \;;
-#X scalar 1431-color 504 70 142 -2 \;;
-#X scalar 1431-color 516 70 143 29 \;;
-#X scalar 1431-color 528 70 144 -2 \;;
-#X scalar 1431-color 540 70 145 29 \;;
-#X scalar 1431-color 552 70 146 -2 \;;
-#X scalar 1431-color 564 70 147 29 \;;
-#X scalar 1431-color 576 70 148 -2 \;;
-#X scalar 1431-color 588 70 149 29 \;;
-#X scalar 1431-color 600 70 150 -2 \;;
-#X scalar 1431-color 612 70 151 29 \;;
-#X scalar 1431-color 624 70 152 -2 \;;
-#X scalar 1431-color 636 70 153 29 \;;
-#X scalar 1431-color 648 70 154 -2 \;;
-#X scalar 1431-color 660 70 155 29 \;;
-#X scalar 1431-color 672 70 156 -2 \;;
-#X scalar 1431-color 684 70 157 29 \;;
-#X scalar 1431-color 696 70 158 -2 \;;
-#X scalar 1431-color 708 70 159 29 \;;
-#X scalar 1431-color 720 70 160 -2 \;;
-#X scalar 1431-color 732 70 161 29 \;;
-#X scalar 1431-color 744 70 162 -2 \;;
-#X scalar 1431-color 756 70 163 29 \;;
-#X scalar 1431-color 768 70 164 -2 \;;
-#X scalar 1431-color 780 70 165 29 \;;
-#X scalar 1431-color 792 70 166 -2 \;;
-#X scalar 1431-color 804 70 167 29 \;;
-#X scalar 1431-color 816 70 168 -2 \;;
-#X scalar 1431-color 828 70 169 29 \;;
-#X scalar 1431-color 840 70 170 -2 \;;
-#X scalar 1431-color 852 70 171 29 \;;
-#X scalar 1431-color 864 70 172 -2 \;;
-#X scalar 1431-color 876 70 173 29 \;;
-#X scalar 1431-color 888 70 174 -2 \;;
-#X scalar 1431-color 900 70 175 29 \;;
-#X scalar 1431-color 912 70 176 -2 \;;
-#X scalar 1431-color 924 70 177 29 \;;
-#X scalar 1431-color 936 70 178 -2 \;;
-#X scalar 1431-color 948 70 179 29 \;;
-#X scalar 1431-color 960 70 180 -2 \;;
-#X scalar 1431-color 972 70 181 29 \;;
-#X scalar 1431-color 984 70 182 -2 \;;
-#X scalar 1431-color 996 70 183 29 \;;
-#X scalar 1431-color 1008 70 184 -2 \;;
-#X scalar 1431-color 1020 70 185 29 \;;
-#X scalar 1431-color 1032 70 186 -2 \;;
-#X scalar 1431-color 1044 70 187 29 \;;
-#X scalar 1431-color 1056 70 188 -2 \;;
-#X scalar 1431-color 1068 70 189 29 \;;
-#X scalar 1431-color 1080 70 190 -2 \;;
-#X scalar 1431-color 1092 70 191 29 \;;
-#X scalar 1431-color 1104 70 192 -2 \;;
-#X scalar 1431-color 1116 70 193 29 \;;
-#X scalar 1431-color 1128 70 194 -2 \;;
-#X scalar 1431-color 1140 70 195 29 \;;
-#X scalar 1431-color 1152 70 196 -2 \;;
-#X scalar 1431-color 1164 70 197 29 \;;
-#X scalar 1431-color 1176 70 198 -2 \;;
-#X scalar 1431-color 1188 70 199 29 \;;
-#X scalar 1431-color 0 120 200 -2 \;;
-#X scalar 1431-color 12 120 201 29 \;;
-#X scalar 1431-color 24 120 202 -2 \;;
-#X scalar 1431-color 36 120 203 29 \;;
-#X scalar 1431-color 48 120 204 -2 \;;
-#X scalar 1431-color 60 120 205 29 \;;
-#X scalar 1431-color 72 120 206 -2 \;;
-#X scalar 1431-color 84 120 207 29 \;;
-#X scalar 1431-color 96 120 208 -2 \;;
-#X scalar 1431-color 108 120 209 29 \;;
-#X scalar 1431-color 120 120 210 -2 \;;
-#X scalar 1431-color 132 120 211 29 \;;
-#X scalar 1431-color 144 120 212 -2 \;;
-#X scalar 1431-color 156 120 213 29 \;;
-#X scalar 1431-color 168 120 214 -2 \;;
-#X scalar 1431-color 180 120 215 29 \;;
-#X scalar 1431-color 192 120 216 -2 \;;
-#X scalar 1431-color 204 120 217 29 \;;
-#X scalar 1431-color 216 120 218 -2 \;;
-#X scalar 1431-color 228 120 219 29 \;;
-#X scalar 1431-color 240 120 220 -2 \;;
-#X scalar 1431-color 252 120 221 29 \;;
-#X scalar 1431-color 264 120 222 -2 \;;
-#X scalar 1431-color 276 120 223 29 \;;
-#X scalar 1431-color 288 120 224 -2 \;;
-#X scalar 1431-color 300 120 225 29 \;;
-#X scalar 1431-color 312 120 226 -2 \;;
-#X scalar 1431-color 324 120 227 29 \;;
-#X scalar 1431-color 336 120 228 -2 \;;
-#X scalar 1431-color 348 120 229 29 \;;
-#X scalar 1431-color 360 120 230 -2 \;;
-#X scalar 1431-color 372 120 231 29 \;;
-#X scalar 1431-color 384 120 232 -2 \;;
-#X scalar 1431-color 396 120 233 29 \;;
-#X scalar 1431-color 408 120 234 -2 \;;
-#X scalar 1431-color 420 120 235 29 \;;
-#X scalar 1431-color 432 120 236 -2 \;;
-#X scalar 1431-color 444 120 237 29 \;;
-#X scalar 1431-color 456 120 238 -2 \;;
-#X scalar 1431-color 468 120 239 29 \;;
-#X scalar 1431-color 480 120 240 -2 \;;
-#X scalar 1431-color 492 120 241 29 \;;
-#X scalar 1431-color 504 120 242 -2 \;;
-#X scalar 1431-color 516 120 243 29 \;;
-#X scalar 1431-color 528 120 244 -2 \;;
-#X scalar 1431-color 540 120 245 29 \;;
-#X scalar 1431-color 552 120 246 -2 \;;
-#X scalar 1431-color 564 120 247 29 \;;
-#X scalar 1431-color 576 120 248 -2 \;;
-#X scalar 1431-color 588 120 249 29 \;;
-#X scalar 1431-color 600 120 250 -2 \;;
-#X scalar 1431-color 612 120 251 29 \;;
-#X scalar 1431-color 624 120 252 -2 \;;
-#X scalar 1431-color 636 120 253 29 \;;
-#X scalar 1431-color 648 120 254 -2 \;;
-#X scalar 1431-color 660 120 255 29 \;;
-#X scalar 1431-color 672 120 256 -2 \;;
-#X scalar 1431-color 684 120 257 29 \;;
-#X scalar 1431-color 696 120 258 -2 \;;
-#X scalar 1431-color 708 120 259 29 \;;
-#X scalar 1431-color 720 120 260 -2 \;;
-#X scalar 1431-color 732 120 261 29 \;;
-#X scalar 1431-color 744 120 262 -2 \;;
-#X scalar 1431-color 756 120 263 29 \;;
-#X scalar 1431-color 768 120 264 -2 \;;
-#X scalar 1431-color 780 120 265 29 \;;
-#X scalar 1431-color 792 120 266 -2 \;;
-#X scalar 1431-color 804 120 267 29 \;;
-#X scalar 1431-color 816 120 268 -2 \;;
-#X scalar 1431-color 828 120 269 29 \;;
-#X scalar 1431-color 840 120 270 -2 \;;
-#X scalar 1431-color 852 120 271 29 \;;
-#X scalar 1431-color 864 120 272 -2 \;;
-#X scalar 1431-color 876 120 273 29 \;;
-#X scalar 1431-color 888 120 274 -2 \;;
-#X scalar 1431-color 900 120 275 29 \;;
-#X scalar 1431-color 912 120 276 -2 \;;
-#X scalar 1431-color 924 120 277 29 \;;
-#X scalar 1431-color 936 120 278 -2 \;;
-#X scalar 1431-color 948 120 279 29 \;;
-#X scalar 1431-color 960 120 280 -2 \;;
-#X scalar 1431-color 972 120 281 29 \;;
-#X scalar 1431-color 984 120 282 -2 \;;
-#X scalar 1431-color 996 120 283 29 \;;
-#X scalar 1431-color 1008 120 284 -2 \;;
-#X scalar 1431-color 1020 120 285 29 \;;
-#X scalar 1431-color 1032 120 286 -2 \;;
-#X scalar 1431-color 1044 120 287 29 \;;
-#X scalar 1431-color 1056 120 288 -2 \;;
-#X scalar 1431-color 1068 120 289 29 \;;
-#X scalar 1431-color 1080 120 290 -2 \;;
-#X scalar 1431-color 1092 120 291 29 \;;
-#X scalar 1431-color 1104 120 292 -2 \;;
-#X scalar 1431-color 1116 120 293 29 \;;
-#X scalar 1431-color 1128 120 294 -2 \;;
-#X scalar 1431-color 1140 120 295 29 \;;
-#X scalar 1431-color 1152 120 296 -2 \;;
-#X scalar 1431-color 1164 120 297 29 \;;
-#X scalar 1431-color 1176 120 298 -2 \;;
-#X scalar 1431-color 1188 120 299 29 \;;
-#X scalar 1431-color 0 170 300 -2 \;;
-#X scalar 1431-color 12 170 301 29 \;;
-#X scalar 1431-color 24 170 302 -2 \;;
-#X scalar 1431-color 36 170 303 29 \;;
-#X scalar 1431-color 48 170 304 -2 \;;
-#X scalar 1431-color 60 170 305 29 \;;
-#X scalar 1431-color 72 170 306 -2 \;;
-#X scalar 1431-color 84 170 307 29 \;;
-#X scalar 1431-color 96 170 308 -2 \;;
-#X scalar 1431-color 108 170 309 29 \;;
-#X scalar 1431-color 120 170 310 -2 \;;
-#X scalar 1431-color 132 170 311 29 \;;
-#X scalar 1431-color 144 170 312 -2 \;;
-#X scalar 1431-color 156 170 313 29 \;;
-#X scalar 1431-color 168 170 314 -2 \;;
-#X scalar 1431-color 180 170 315 29 \;;
-#X scalar 1431-color 192 170 316 -2 \;;
-#X scalar 1431-color 204 170 317 29 \;;
-#X scalar 1431-color 216 170 318 -2 \;;
-#X scalar 1431-color 228 170 319 29 \;;
-#X scalar 1431-color 240 170 320 -2 \;;
-#X scalar 1431-color 252 170 321 29 \;;
-#X scalar 1431-color 264 170 322 -2 \;;
-#X scalar 1431-color 276 170 323 29 \;;
-#X scalar 1431-color 288 170 324 -2 \;;
-#X scalar 1431-color 300 170 325 29 \;;
-#X scalar 1431-color 312 170 326 -2 \;;
-#X scalar 1431-color 324 170 327 29 \;;
-#X scalar 1431-color 336 170 328 -2 \;;
-#X scalar 1431-color 348 170 329 29 \;;
-#X scalar 1431-color 360 170 330 -2 \;;
-#X scalar 1431-color 372 170 331 29 \;;
-#X scalar 1431-color 384 170 332 -2 \;;
-#X scalar 1431-color 396 170 333 29 \;;
-#X scalar 1431-color 408 170 334 -2 \;;
-#X scalar 1431-color 420 170 335 29 \;;
-#X scalar 1431-color 432 170 336 -2 \;;
-#X scalar 1431-color 444 170 337 29 \;;
-#X scalar 1431-color 456 170 338 -2 \;;
-#X scalar 1431-color 468 170 339 29 \;;
-#X scalar 1431-color 480 170 340 -2 \;;
-#X scalar 1431-color 492 170 341 29 \;;
-#X scalar 1431-color 504 170 342 -2 \;;
-#X scalar 1431-color 516 170 343 29 \;;
-#X scalar 1431-color 528 170 344 -2 \;;
-#X scalar 1431-color 540 170 345 29 \;;
-#X scalar 1431-color 552 170 346 -2 \;;
-#X scalar 1431-color 564 170 347 29 \;;
-#X scalar 1431-color 576 170 348 -2 \;;
-#X scalar 1431-color 588 170 349 29 \;;
-#X scalar 1431-color 600 170 350 -2 \;;
-#X scalar 1431-color 612 170 351 29 \;;
-#X scalar 1431-color 624 170 352 -2 \;;
-#X scalar 1431-color 636 170 353 29 \;;
-#X scalar 1431-color 648 170 354 -2 \;;
-#X scalar 1431-color 660 170 355 29 \;;
-#X scalar 1431-color 672 170 356 -2 \;;
-#X scalar 1431-color 684 170 357 29 \;;
-#X scalar 1431-color 696 170 358 -2 \;;
-#X scalar 1431-color 708 170 359 29 \;;
-#X scalar 1431-color 720 170 360 -2 \;;
-#X scalar 1431-color 732 170 361 29 \;;
-#X scalar 1431-color 744 170 362 -2 \;;
-#X scalar 1431-color 756 170 363 29 \;;
-#X scalar 1431-color 768 170 364 -2 \;;
-#X scalar 1431-color 780 170 365 29 \;;
-#X scalar 1431-color 792 170 366 -2 \;;
-#X scalar 1431-color 804 170 367 29 \;;
-#X scalar 1431-color 816 170 368 -2 \;;
-#X scalar 1431-color 828 170 369 29 \;;
-#X scalar 1431-color 840 170 370 -2 \;;
-#X scalar 1431-color 852 170 371 29 \;;
-#X scalar 1431-color 864 170 372 -2 \;;
-#X scalar 1431-color 876 170 373 29 \;;
-#X scalar 1431-color 888 170 374 -2 \;;
-#X scalar 1431-color 900 170 375 29 \;;
-#X scalar 1431-color 912 170 376 -2 \;;
-#X scalar 1431-color 924 170 377 29 \;;
-#X scalar 1431-color 936 170 378 -2 \;;
-#X scalar 1431-color 948 170 379 29 \;;
-#X scalar 1431-color 960 170 380 -2 \;;
-#X scalar 1431-color 972 170 381 29 \;;
-#X scalar 1431-color 984 170 382 -2 \;;
-#X scalar 1431-color 996 170 383 29 \;;
-#X scalar 1431-color 1008 170 384 -2 \;;
-#X scalar 1431-color 1020 170 385 29 \;;
-#X scalar 1431-color 1032 170 386 -2 \;;
-#X scalar 1431-color 1044 170 387 29 \;;
-#X scalar 1431-color 1056 170 388 -2 \;;
-#X scalar 1431-color 1068 170 389 29 \;;
-#X scalar 1431-color 1080 170 390 -2 \;;
-#X scalar 1431-color 1092 170 391 29 \;;
-#X scalar 1431-color 1104 170 392 -2 \;;
-#X scalar 1431-color 1116 170 393 29 \;;
-#X scalar 1431-color 1128 170 394 -2 \;;
-#X scalar 1431-color 1140 170 395 29 \;;
-#X scalar 1431-color 1152 170 396 -2 \;;
-#X scalar 1431-color 1164 170 397 29 \;;
-#X scalar 1431-color 1176 170 398 -2 \;;
-#X scalar 1431-color 1188 170 399 29 \;;
-#X scalar 1431-color 0 220 400 -2 \;;
-#X scalar 1431-color 12 220 401 29 \;;
-#X scalar 1431-color 24 220 402 -2 \;;
-#X scalar 1431-color 36 220 403 29 \;;
-#X scalar 1431-color 48 220 404 -2 \;;
-#X scalar 1431-color 60 220 405 29 \;;
-#X scalar 1431-color 72 220 406 -2 \;;
-#X scalar 1431-color 84 220 407 29 \;;
-#X scalar 1431-color 96 220 408 -2 \;;
-#X scalar 1431-color 108 220 409 29 \;;
-#X scalar 1431-color 120 220 410 -2 \;;
-#X scalar 1431-color 132 220 411 29 \;;
-#X scalar 1431-color 144 220 412 -2 \;;
-#X scalar 1431-color 156 220 413 29 \;;
-#X scalar 1431-color 168 220 414 -2 \;;
-#X scalar 1431-color 180 220 415 29 \;;
-#X scalar 1431-color 192 220 416 -2 \;;
-#X scalar 1431-color 204 220 417 29 \;;
-#X scalar 1431-color 216 220 418 -2 \;;
-#X scalar 1431-color 228 220 419 29 \;;
-#X scalar 1431-color 240 220 420 -2 \;;
-#X scalar 1431-color 252 220 421 29 \;;
-#X scalar 1431-color 264 220 422 -2 \;;
-#X scalar 1431-color 276 220 423 29 \;;
-#X scalar 1431-color 288 220 424 -2 \;;
-#X scalar 1431-color 300 220 425 29 \;;
-#X scalar 1431-color 312 220 426 -2 \;;
-#X scalar 1431-color 324 220 427 29 \;;
-#X scalar 1431-color 336 220 428 -2 \;;
-#X scalar 1431-color 348 220 429 29 \;;
-#X scalar 1431-color 360 220 430 -2 \;;
-#X scalar 1431-color 372 220 431 29 \;;
-#X scalar 1431-color 384 220 432 -2 \;;
-#X scalar 1431-color 396 220 433 29 \;;
-#X scalar 1431-color 408 220 434 -2 \;;
-#X scalar 1431-color 420 220 435 29 \;;
-#X scalar 1431-color 432 220 436 -2 \;;
-#X scalar 1431-color 444 220 437 29 \;;
-#X scalar 1431-color 456 220 438 -2 \;;
-#X scalar 1431-color 468 220 439 29 \;;
-#X scalar 1431-color 480 220 440 -2 \;;
-#X scalar 1431-color 492 220 441 29 \;;
-#X scalar 1431-color 504 220 442 -2 \;;
-#X scalar 1431-color 516 220 443 29 \;;
-#X scalar 1431-color 528 220 444 -2 \;;
-#X scalar 1431-color 540 220 445 29 \;;
-#X scalar 1431-color 552 220 446 -2 \;;
-#X scalar 1431-color 564 220 447 29 \;;
-#X scalar 1431-color 576 220 448 -2 \;;
-#X scalar 1431-color 588 220 449 29 \;;
-#X scalar 1431-color 600 220 450 -2 \;;
-#X scalar 1431-color 612 220 451 29 \;;
-#X scalar 1431-color 624 220 452 -2 \;;
-#X scalar 1431-color 636 220 453 29 \;;
-#X scalar 1431-color 648 220 454 -2 \;;
-#X scalar 1431-color 660 220 455 29 \;;
-#X scalar 1431-color 672 220 456 -2 \;;
-#X scalar 1431-color 684 220 457 29 \;;
-#X scalar 1431-color 696 220 458 -2 \;;
-#X scalar 1431-color 708 220 459 29 \;;
-#X scalar 1431-color 720 220 460 -2 \;;
-#X scalar 1431-color 732 220 461 29 \;;
-#X scalar 1431-color 744 220 462 -2 \;;
-#X scalar 1431-color 756 220 463 29 \;;
-#X scalar 1431-color 768 220 464 -2 \;;
-#X scalar 1431-color 780 220 465 29 \;;
-#X scalar 1431-color 792 220 466 -2 \;;
-#X scalar 1431-color 804 220 467 29 \;;
-#X scalar 1431-color 816 220 468 -2 \;;
-#X scalar 1431-color 828 220 469 29 \;;
-#X scalar 1431-color 840 220 470 -2 \;;
-#X scalar 1431-color 852 220 471 29 \;;
-#X scalar 1431-color 864 220 472 -2 \;;
-#X scalar 1431-color 876 220 473 29 \;;
-#X scalar 1431-color 888 220 474 -2 \;;
-#X scalar 1431-color 900 220 475 29 \;;
-#X scalar 1431-color 912 220 476 -2 \;;
-#X scalar 1431-color 924 220 477 29 \;;
-#X scalar 1431-color 936 220 478 -2 \;;
-#X scalar 1431-color 948 220 479 29 \;;
-#X scalar 1431-color 960 220 480 -2 \;;
-#X scalar 1431-color 972 220 481 29 \;;
-#X scalar 1431-color 984 220 482 -2 \;;
-#X scalar 1431-color 996 220 483 29 \;;
-#X scalar 1431-color 1008 220 484 -2 \;;
-#X scalar 1431-color 1020 220 485 29 \;;
-#X scalar 1431-color 1032 220 486 -2 \;;
-#X scalar 1431-color 1044 220 487 29 \;;
-#X scalar 1431-color 1056 220 488 -2 \;;
-#X scalar 1431-color 1068 220 489 29 \;;
-#X scalar 1431-color 1080 220 490 -2 \;;
-#X scalar 1431-color 1092 220 491 29 \;;
-#X scalar 1431-color 1104 220 492 -2 \;;
-#X scalar 1431-color 1116 220 493 29 \;;
-#X scalar 1431-color 1128 220 494 -2 \;;
-#X scalar 1431-color 1140 220 495 29 \;;
-#X scalar 1431-color 1152 220 496 -2 \;;
-#X scalar 1431-color 1164 220 497 29 \;;
-#X scalar 1431-color 1176 220 498 -2 \;;
-#X scalar 1431-color 1188 220 499 29 \;;
-#X scalar 1431-color 0 270 500 -2 \;;
-#X scalar 1431-color 12 270 501 29 \;;
-#X scalar 1431-color 24 270 502 -2 \;;
-#X scalar 1431-color 36 270 503 29 \;;
-#X scalar 1431-color 48 270 504 -2 \;;
-#X scalar 1431-color 60 270 505 29 \;;
-#X scalar 1431-color 72 270 506 -2 \;;
-#X scalar 1431-color 84 270 507 29 \;;
-#X scalar 1431-color 96 270 508 -2 \;;
-#X scalar 1431-color 108 270 509 29 \;;
-#X scalar 1431-color 120 270 510 -2 \;;
-#X scalar 1431-color 132 270 511 29 \;;
-#X scalar 1431-color 144 270 512 -2 \;;
-#X scalar 1431-color 156 270 513 29 \;;
-#X scalar 1431-color 168 270 514 -2 \;;
-#X scalar 1431-color 180 270 515 29 \;;
-#X scalar 1431-color 192 270 516 -2 \;;
-#X scalar 1431-color 204 270 517 29 \;;
-#X scalar 1431-color 216 270 518 -2 \;;
-#X scalar 1431-color 228 270 519 29 \;;
-#X scalar 1431-color 240 270 520 -2 \;;
-#X scalar 1431-color 252 270 521 29 \;;
-#X scalar 1431-color 264 270 522 -2 \;;
-#X scalar 1431-color 276 270 523 29 \;;
-#X scalar 1431-color 288 270 524 -2 \;;
-#X scalar 1431-color 300 270 525 29 \;;
-#X scalar 1431-color 312 270 526 -2 \;;
-#X scalar 1431-color 324 270 527 29 \;;
-#X scalar 1431-color 336 270 528 -2 \;;
-#X scalar 1431-color 348 270 529 29 \;;
-#X scalar 1431-color 360 270 530 -2 \;;
-#X scalar 1431-color 372 270 531 29 \;;
-#X scalar 1431-color 384 270 532 -2 \;;
-#X scalar 1431-color 396 270 533 29 \;;
-#X scalar 1431-color 408 270 534 -2 \;;
-#X scalar 1431-color 420 270 535 29 \;;
-#X scalar 1431-color 432 270 536 -2 \;;
-#X scalar 1431-color 444 270 537 29 \;;
-#X scalar 1431-color 456 270 538 -2 \;;
-#X scalar 1431-color 468 270 539 29 \;;
-#X scalar 1431-color 480 270 540 -2 \;;
-#X scalar 1431-color 492 270 541 29 \;;
-#X scalar 1431-color 504 270 542 -2 \;;
-#X scalar 1431-color 516 270 543 29 \;;
-#X scalar 1431-color 528 270 544 -2 \;;
-#X scalar 1431-color 540 270 545 29 \;;
-#X scalar 1431-color 552 270 546 -2 \;;
-#X scalar 1431-color 564 270 547 29 \;;
-#X scalar 1431-color 576 270 548 -2 \;;
-#X scalar 1431-color 588 270 549 29 \;;
-#X scalar 1431-color 600 270 550 -2 \;;
-#X scalar 1431-color 612 270 551 29 \;;
-#X scalar 1431-color 624 270 552 -2 \;;
-#X scalar 1431-color 636 270 553 29 \;;
-#X scalar 1431-color 648 270 554 -2 \;;
-#X scalar 1431-color 660 270 555 29 \;;
-#X scalar 1431-color 672 270 556 -2 \;;
-#X scalar 1431-color 684 270 557 29 \;;
-#X scalar 1431-color 696 270 558 -2 \;;
-#X scalar 1431-color 708 270 559 29 \;;
-#X scalar 1431-color 720 270 560 -2 \;;
-#X scalar 1431-color 732 270 561 29 \;;
-#X scalar 1431-color 744 270 562 -2 \;;
-#X scalar 1431-color 756 270 563 29 \;;
-#X scalar 1431-color 768 270 564 -2 \;;
-#X scalar 1431-color 780 270 565 29 \;;
-#X scalar 1431-color 792 270 566 -2 \;;
-#X scalar 1431-color 804 270 567 29 \;;
-#X scalar 1431-color 816 270 568 -2 \;;
-#X scalar 1431-color 828 270 569 29 \;;
-#X scalar 1431-color 840 270 570 -2 \;;
-#X scalar 1431-color 852 270 571 29 \;;
-#X scalar 1431-color 864 270 572 -2 \;;
-#X scalar 1431-color 876 270 573 29 \;;
-#X scalar 1431-color 888 270 574 -2 \;;
-#X scalar 1431-color 900 270 575 29 \;;
-#X scalar 1431-color 912 270 576 -2 \;;
-#X scalar 1431-color 924 270 577 29 \;;
-#X scalar 1431-color 936 270 578 -2 \;;
-#X scalar 1431-color 948 270 579 29 \;;
-#X scalar 1431-color 960 270 580 -2 \;;
-#X scalar 1431-color 972 270 581 29 \;;
-#X scalar 1431-color 984 270 582 -2 \;;
-#X scalar 1431-color 996 270 583 29 \;;
-#X scalar 1431-color 1008 270 584 -2 \;;
-#X scalar 1431-color 1020 270 585 29 \;;
-#X scalar 1431-color 1032 270 586 -2 \;;
-#X scalar 1431-color 1044 270 587 29 \;;
-#X scalar 1431-color 1056 270 588 -2 \;;
-#X scalar 1431-color 1068 270 589 29 \;;
-#X scalar 1431-color 1080 270 590 -2 \;;
-#X scalar 1431-color 1092 270 591 29 \;;
-#X scalar 1431-color 1104 270 592 -2 \;;
-#X scalar 1431-color 1116 270 593 29 \;;
-#X scalar 1431-color 1128 270 594 -2 \;;
-#X scalar 1431-color 1140 270 595 29 \;;
-#X scalar 1431-color 1152 270 596 -2 \;;
-#X scalar 1431-color 1164 270 597 29 \;;
-#X scalar 1431-color 1176 270 598 -2 \;;
-#X scalar 1431-color 1188 270 599 29 \;;
-#X scalar 1431-color 0 320 600 -2 \;;
-#X scalar 1431-color 12 320 601 29 \;;
-#X scalar 1431-color 24 320 602 -2 \;;
-#X scalar 1431-color 36 320 603 29 \;;
-#X scalar 1431-color 48 320 604 -2 \;;
-#X scalar 1431-color 60 320 605 29 \;;
-#X scalar 1431-color 72 320 606 -2 \;;
-#X scalar 1431-color 84 320 607 29 \;;
-#X scalar 1431-color 96 320 608 -2 \;;
-#X scalar 1431-color 108 320 609 29 \;;
-#X scalar 1431-color 120 320 610 -2 \;;
-#X scalar 1431-color 132 320 611 29 \;;
-#X scalar 1431-color 144 320 612 -2 \;;
-#X scalar 1431-color 156 320 613 29 \;;
-#X scalar 1431-color 168 320 614 -2 \;;
-#X scalar 1431-color 180 320 615 29 \;;
-#X scalar 1431-color 192 320 616 -2 \;;
-#X scalar 1431-color 204 320 617 29 \;;
-#X scalar 1431-color 216 320 618 -2 \;;
-#X scalar 1431-color 228 320 619 29 \;;
-#X scalar 1431-color 240 320 620 -2 \;;
-#X scalar 1431-color 252 320 621 29 \;;
-#X scalar 1431-color 264 320 622 -2 \;;
-#X scalar 1431-color 276 320 623 29 \;;
-#X scalar 1431-color 288 320 624 -2 \;;
-#X scalar 1431-color 300 320 625 29 \;;
-#X scalar 1431-color 312 320 626 -2 \;;
-#X scalar 1431-color 324 320 627 29 \;;
-#X scalar 1431-color 336 320 628 -2 \;;
-#X scalar 1431-color 348 320 629 29 \;;
-#X scalar 1431-color 360 320 630 -2 \;;
-#X scalar 1431-color 372 320 631 29 \;;
-#X scalar 1431-color 384 320 632 -2 \;;
-#X scalar 1431-color 396 320 633 29 \;;
-#X scalar 1431-color 408 320 634 -2 \;;
-#X scalar 1431-color 420 320 635 29 \;;
-#X scalar 1431-color 432 320 636 -2 \;;
-#X scalar 1431-color 444 320 637 29 \;;
-#X scalar 1431-color 456 320 638 -2 \;;
-#X scalar 1431-color 468 320 639 29 \;;
-#X scalar 1431-color 480 320 640 -2 \;;
-#X scalar 1431-color 492 320 641 29 \;;
-#X scalar 1431-color 504 320 642 -2 \;;
-#X scalar 1431-color 516 320 643 29 \;;
-#X scalar 1431-color 528 320 644 -2 \;;
-#X scalar 1431-color 540 320 645 29 \;;
-#X scalar 1431-color 552 320 646 -2 \;;
-#X scalar 1431-color 564 320 647 29 \;;
-#X scalar 1431-color 576 320 648 -2 \;;
-#X scalar 1431-color 588 320 649 29 \;;
-#X scalar 1431-color 600 320 650 -2 \;;
-#X scalar 1431-color 612 320 651 29 \;;
-#X scalar 1431-color 624 320 652 -2 \;;
-#X scalar 1431-color 636 320 653 29 \;;
-#X scalar 1431-color 648 320 654 -2 \;;
-#X scalar 1431-color 660 320 655 29 \;;
-#X scalar 1431-color 672 320 656 -2 \;;
-#X scalar 1431-color 684 320 657 29 \;;
-#X scalar 1431-color 696 320 658 -2 \;;
-#X scalar 1431-color 708 320 659 29 \;;
-#X scalar 1431-color 720 320 660 -2 \;;
-#X scalar 1431-color 732 320 661 29 \;;
-#X scalar 1431-color 744 320 662 -2 \;;
-#X scalar 1431-color 756 320 663 29 \;;
-#X scalar 1431-color 768 320 664 -2 \;;
-#X scalar 1431-color 780 320 665 29 \;;
-#X scalar 1431-color 792 320 666 -2 \;;
-#X scalar 1431-color 804 320 667 29 \;;
-#X scalar 1431-color 816 320 668 -2 \;;
-#X scalar 1431-color 828 320 669 29 \;;
-#X scalar 1431-color 840 320 670 -2 \;;
-#X scalar 1431-color 852 320 671 29 \;;
-#X scalar 1431-color 864 320 672 -2 \;;
-#X scalar 1431-color 876 320 673 29 \;;
-#X scalar 1431-color 888 320 674 -2 \;;
-#X scalar 1431-color 900 320 675 29 \;;
-#X scalar 1431-color 912 320 676 -2 \;;
-#X scalar 1431-color 924 320 677 29 \;;
-#X scalar 1431-color 936 320 678 -2 \;;
-#X scalar 1431-color 948 320 679 29 \;;
-#X scalar 1431-color 960 320 680 -2 \;;
-#X scalar 1431-color 972 320 681 29 \;;
-#X scalar 1431-color 984 320 682 -2 \;;
-#X scalar 1431-color 996 320 683 29 \;;
-#X scalar 1431-color 1008 320 684 -2 \;;
-#X scalar 1431-color 1020 320 685 29 \;;
-#X scalar 1431-color 1032 320 686 -2 \;;
-#X scalar 1431-color 1044 320 687 29 \;;
-#X scalar 1431-color 1056 320 688 -2 \;;
-#X scalar 1431-color 1068 320 689 29 \;;
-#X scalar 1431-color 1080 320 690 -2 \;;
-#X scalar 1431-color 1092 320 691 29 \;;
-#X scalar 1431-color 1104 320 692 -2 \;;
-#X scalar 1431-color 1116 320 693 29 \;;
-#X scalar 1431-color 1128 320 694 -2 \;;
-#X scalar 1431-color 1140 320 695 29 \;;
-#X scalar 1431-color 1152 320 696 -2 \;;
-#X scalar 1431-color 1164 320 697 29 \;;
-#X scalar 1431-color 1176 320 698 -2 \;;
-#X scalar 1431-color 1188 320 699 29 \;;
-#X scalar 1431-color 0 370 700 -2 \;;
-#X scalar 1431-color 12 370 701 29 \;;
-#X scalar 1431-color 24 370 702 -2 \;;
-#X scalar 1431-color 36 370 703 29 \;;
-#X scalar 1431-color 48 370 704 -2 \;;
-#X scalar 1431-color 60 370 705 29 \;;
-#X scalar 1431-color 72 370 706 -2 \;;
-#X scalar 1431-color 84 370 707 29 \;;
-#X scalar 1431-color 96 370 708 -2 \;;
-#X scalar 1431-color 108 370 709 29 \;;
-#X scalar 1431-color 120 370 710 -2 \;;
-#X scalar 1431-color 132 370 711 29 \;;
-#X scalar 1431-color 144 370 712 -2 \;;
-#X scalar 1431-color 156 370 713 29 \;;
-#X scalar 1431-color 168 370 714 -2 \;;
-#X scalar 1431-color 180 370 715 29 \;;
-#X scalar 1431-color 192 370 716 -2 \;;
-#X scalar 1431-color 204 370 717 29 \;;
-#X scalar 1431-color 216 370 718 -2 \;;
-#X scalar 1431-color 228 370 719 29 \;;
-#X scalar 1431-color 240 370 720 -2 \;;
-#X scalar 1431-color 252 370 721 29 \;;
-#X scalar 1431-color 264 370 722 -2 \;;
-#X scalar 1431-color 276 370 723 29 \;;
-#X scalar 1431-color 288 370 724 -2 \;;
-#X scalar 1431-color 300 370 725 29 \;;
-#X scalar 1431-color 312 370 726 -2 \;;
-#X scalar 1431-color 324 370 727 29 \;;
-#X scalar 1431-color 336 370 728 -2 \;;
-#X scalar 1431-color 348 370 729 29 \;;
-#X scalar 1431-color 360 370 730 -2 \;;
-#X scalar 1431-color 372 370 731 29 \;;
-#X scalar 1431-color 384 370 732 -2 \;;
-#X scalar 1431-color 396 370 733 29 \;;
-#X scalar 1431-color 408 370 734 -2 \;;
-#X scalar 1431-color 420 370 735 29 \;;
-#X scalar 1431-color 432 370 736 -2 \;;
-#X scalar 1431-color 444 370 737 29 \;;
-#X scalar 1431-color 456 370 738 -2 \;;
-#X scalar 1431-color 468 370 739 29 \;;
-#X scalar 1431-color 480 370 740 -2 \;;
-#X scalar 1431-color 492 370 741 29 \;;
-#X scalar 1431-color 504 370 742 -2 \;;
-#X scalar 1431-color 516 370 743 29 \;;
-#X scalar 1431-color 528 370 744 -2 \;;
-#X scalar 1431-color 540 370 745 29 \;;
-#X scalar 1431-color 552 370 746 -2 \;;
-#X scalar 1431-color 564 370 747 29 \;;
-#X scalar 1431-color 576 370 748 -2 \;;
-#X scalar 1431-color 588 370 749 29 \;;
-#X scalar 1431-color 600 370 750 -2 \;;
-#X scalar 1431-color 612 370 751 29 \;;
-#X scalar 1431-color 624 370 752 -2 \;;
-#X scalar 1431-color 636 370 753 29 \;;
-#X scalar 1431-color 648 370 754 -2 \;;
-#X scalar 1431-color 660 370 755 29 \;;
-#X scalar 1431-color 672 370 756 -2 \;;
-#X scalar 1431-color 684 370 757 29 \;;
-#X scalar 1431-color 696 370 758 -2 \;;
-#X scalar 1431-color 708 370 759 29 \;;
-#X scalar 1431-color 720 370 760 -2 \;;
-#X scalar 1431-color 732 370 761 29 \;;
-#X scalar 1431-color 744 370 762 -2 \;;
-#X scalar 1431-color 756 370 763 29 \;;
-#X scalar 1431-color 768 370 764 -2 \;;
-#X scalar 1431-color 780 370 765 29 \;;
-#X scalar 1431-color 792 370 766 -2 \;;
-#X scalar 1431-color 804 370 767 29 \;;
-#X scalar 1431-color 816 370 768 -2 \;;
-#X scalar 1431-color 828 370 769 29 \;;
-#X scalar 1431-color 840 370 770 -2 \;;
-#X scalar 1431-color 852 370 771 29 \;;
-#X scalar 1431-color 864 370 772 -2 \;;
-#X scalar 1431-color 876 370 773 29 \;;
-#X scalar 1431-color 888 370 774 -2 \;;
-#X scalar 1431-color 900 370 775 29 \;;
-#X scalar 1431-color 912 370 776 -2 \;;
-#X scalar 1431-color 924 370 777 29 \;;
-#X scalar 1431-color 936 370 778 -2 \;;
-#X scalar 1431-color 948 370 779 29 \;;
-#X scalar 1431-color 960 370 780 -2 \;;
-#X scalar 1431-color 972 370 781 29 \;;
-#X scalar 1431-color 984 370 782 -2 \;;
-#X scalar 1431-color 996 370 783 29 \;;
-#X scalar 1431-color 1008 370 784 -2 \;;
-#X scalar 1431-color 1020 370 785 29 \;;
-#X scalar 1431-color 1032 370 786 -2 \;;
-#X scalar 1431-color 1044 370 787 29 \;;
-#X scalar 1431-color 1056 370 788 -2 \;;
-#X scalar 1431-color 1068 370 789 29 \;;
-#X scalar 1431-color 1080 370 790 -2 \;;
-#X scalar 1431-color 1092 370 791 29 \;;
-#X scalar 1431-color 1104 370 792 -2 \;;
-#X scalar 1431-color 1116 370 793 29 \;;
-#X scalar 1431-color 1128 370 794 -2 \;;
-#X scalar 1431-color 1140 370 795 29 \;;
-#X scalar 1431-color 1152 370 796 -2 \;;
-#X scalar 1431-color 1164 370 797 29 \;;
-#X scalar 1431-color 1176 370 798 -2 \;;
-#X scalar 1431-color 1188 370 799 29 \;;
-#X scalar 1431-color 0 420 800 -2 \;;
-#X scalar 1431-color 12 420 801 29 \;;
-#X scalar 1431-color 24 420 802 -2 \;;
-#X scalar 1431-color 36 420 803 29 \;;
-#X scalar 1431-color 48 420 804 -2 \;;
-#X scalar 1431-color 60 420 805 29 \;;
-#X scalar 1431-color 72 420 806 -2 \;;
-#X scalar 1431-color 84 420 807 29 \;;
-#X scalar 1431-color 96 420 808 -2 \;;
-#X scalar 1431-color 108 420 809 29 \;;
-#X scalar 1431-color 120 420 810 -2 \;;
-#X scalar 1431-color 132 420 811 29 \;;
-#X scalar 1431-color 144 420 812 -2 \;;
-#X scalar 1431-color 156 420 813 29 \;;
-#X scalar 1431-color 168 420 814 -2 \;;
-#X scalar 1431-color 180 420 815 29 \;;
-#X scalar 1431-color 192 420 816 -2 \;;
-#X scalar 1431-color 204 420 817 29 \;;
-#X scalar 1431-color 216 420 818 -2 \;;
-#X scalar 1431-color 228 420 819 29 \;;
-#X scalar 1431-color 240 420 820 -2 \;;
-#X scalar 1431-color 252 420 821 29 \;;
-#X scalar 1431-color 264 420 822 -2 \;;
-#X scalar 1431-color 276 420 823 29 \;;
-#X scalar 1431-color 288 420 824 -2 \;;
-#X scalar 1431-color 300 420 825 29 \;;
-#X scalar 1431-color 312 420 826 -2 \;;
-#X scalar 1431-color 324 420 827 29 \;;
-#X scalar 1431-color 336 420 828 -2 \;;
-#X scalar 1431-color 348 420 829 29 \;;
-#X scalar 1431-color 360 420 830 -2 \;;
-#X scalar 1431-color 372 420 831 29 \;;
-#X scalar 1431-color 384 420 832 -2 \;;
-#X scalar 1431-color 396 420 833 29 \;;
-#X scalar 1431-color 408 420 834 -2 \;;
-#X scalar 1431-color 420 420 835 29 \;;
-#X scalar 1431-color 432 420 836 -2 \;;
-#X scalar 1431-color 444 420 837 29 \;;
-#X scalar 1431-color 456 420 838 -2 \;;
-#X scalar 1431-color 468 420 839 29 \;;
-#X scalar 1431-color 480 420 840 -2 \;;
-#X scalar 1431-color 492 420 841 29 \;;
-#X scalar 1431-color 504 420 842 -2 \;;
-#X scalar 1431-color 516 420 843 29 \;;
-#X scalar 1431-color 528 420 844 -2 \;;
-#X scalar 1431-color 540 420 845 29 \;;
-#X scalar 1431-color 552 420 846 -2 \;;
-#X scalar 1431-color 564 420 847 29 \;;
-#X scalar 1431-color 576 420 848 -2 \;;
-#X scalar 1431-color 588 420 849 29 \;;
-#X scalar 1431-color 600 420 850 -2 \;;
-#X scalar 1431-color 612 420 851 29 \;;
-#X scalar 1431-color 624 420 852 -2 \;;
-#X scalar 1431-color 636 420 853 29 \;;
-#X scalar 1431-color 648 420 854 -2 \;;
-#X scalar 1431-color 660 420 855 29 \;;
-#X scalar 1431-color 672 420 856 -2 \;;
-#X scalar 1431-color 684 420 857 29 \;;
-#X scalar 1431-color 696 420 858 -2 \;;
-#X scalar 1431-color 708 420 859 29 \;;
-#X scalar 1431-color 720 420 860 -2 \;;
-#X scalar 1431-color 732 420 861 29 \;;
-#X scalar 1431-color 744 420 862 -2 \;;
-#X scalar 1431-color 756 420 863 29 \;;
-#X scalar 1431-color 768 420 864 -2 \;;
-#X scalar 1431-color 780 420 865 29 \;;
-#X scalar 1431-color 792 420 866 -2 \;;
-#X scalar 1431-color 804 420 867 29 \;;
-#X scalar 1431-color 816 420 868 -2 \;;
-#X scalar 1431-color 828 420 869 29 \;;
-#X scalar 1431-color 840 420 870 -2 \;;
-#X scalar 1431-color 852 420 871 29 \;;
-#X scalar 1431-color 864 420 872 -2 \;;
-#X scalar 1431-color 876 420 873 29 \;;
-#X scalar 1431-color 888 420 874 -2 \;;
-#X scalar 1431-color 900 420 875 29 \;;
-#X scalar 1431-color 912 420 876 -2 \;;
-#X scalar 1431-color 924 420 877 29 \;;
-#X scalar 1431-color 936 420 878 -2 \;;
-#X scalar 1431-color 948 420 879 29 \;;
-#X scalar 1431-color 960 420 880 -2 \;;
-#X scalar 1431-color 972 420 881 29 \;;
-#X scalar 1431-color 984 420 882 -2 \;;
-#X scalar 1431-color 996 420 883 29 \;;
-#X scalar 1431-color 1008 420 884 -2 \;;
-#X scalar 1431-color 1020 420 885 29 \;;
-#X scalar 1431-color 1032 420 886 -2 \;;
-#X scalar 1431-color 1044 420 887 29 \;;
-#X scalar 1431-color 1056 420 888 -2 \;;
-#X scalar 1431-color 1068 420 889 29 \;;
-#X scalar 1431-color 1080 420 890 -2 \;;
-#X scalar 1431-color 1092 420 891 29 \;;
-#X scalar 1431-color 1104 420 892 -2 \;;
-#X scalar 1431-color 1116 420 893 29 \;;
-#X scalar 1431-color 1128 420 894 -2 \;;
-#X scalar 1431-color 1140 420 895 29 \;;
-#X scalar 1431-color 1152 420 896 -2 \;;
-#X scalar 1431-color 1164 420 897 29 \;;
-#X scalar 1431-color 1176 420 898 -2 \;;
-#X scalar 1431-color 1188 420 899 29 \;;
-#X restore 212 159 pd farben-datas;
 #X text 170 19 Generates a fresh new Data-S palette;
 #X obj 15 295 append \$0-color x y farbe ynpos;
-#X connect 0 0 25 4;
+#X text 332 138 STRUCTURE SUBPATCH;
+#X text 332 159 PAINTING SUBPATCH;
+#X text 454 24 BANG;
+#X text 454 44 - clears paiting patch farben-datas;
+#X text 454 64 - gets the pointer of the painting patch;
+#X text 454 84 - generates 900 structures \, whose colour == id number
+(0 to 899);
+#X text 464 114 - positioning them at 12pt horizontal distance \, in
+rows of 100 structures. Each row is 50pt apart.;
+#X text 454 144 - opens up the subpatch with the vis command;
+#X msg 72 85 1000;
+#N canvas 0 0 1249 525 \$0-farben-datas 0;
+#X restore 212 159 pd \$0-farben-datas;
+#X obj 214 108 s pd-\$0-farben-datas;
+#X obj 198 195 \$0;
+#X msg 198 255 traverse pd-\$1-farben-datas \, bang;
+#X connect 0 0 21 4;
 #X connect 1 0 2 0;
 #X connect 1 0 4 0;
 #X connect 2 0 1 1;
 #X connect 3 0 1 0;
 #X connect 4 0 10 0;
 #X connect 4 1 5 0;
-#X connect 4 2 25 2;
+#X connect 4 2 21 2;
 #X connect 4 3 12 0;
 #X connect 5 0 6 0;
 #X connect 5 1 9 0;
 #X connect 6 0 8 0;
 #X connect 7 0 1 1;
-#X connect 8 0 22 0;
+#X connect 8 0 19 0;
 #X connect 9 0 6 1;
 #X connect 10 0 11 0;
-#X connect 11 0 25 0;
+#X connect 11 0 21 0;
 #X connect 12 0 13 0;
-#X connect 13 0 25 3;
-#X connect 14 0 3 0;
-#X connect 15 0 0 0;
-#X connect 17 0 18 0;
-#X connect 18 0 21 0;
-#X connect 18 1 14 0;
-#X connect 18 2 7 0;
-#X connect 18 3 15 0;
-#X connect 18 4 20 0;
-#X connect 20 0 19 0;
-#X connect 21 0 19 0;
-#X connect 22 0 25 1;
+#X connect 13 0 21 3;
+#X connect 15 0 16 0;
+#X connect 16 0 18 0;
+#X connect 16 1 30 0;
+#X connect 16 2 7 0;
+#X connect 16 3 33 0;
+#X connect 16 4 17 0;
+#X connect 17 0 32 0;
+#X connect 18 0 32 0;
+#X connect 19 0 21 1;
+#X connect 30 0 3 0;
+#X connect 33 0 34 0;
+#X connect 34 0 0 0;
 #X coords 0 -1 1 1 106 17 1 60 20;
 #X restore 17 77 pd Data Struct;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION PD Color Palettes;
+#X text 12 36 KEYWORDS color tcl/tk data structures;
+#X text 12 135 VERSION 2008;
+#X restore 255 140 pd META;
+#X text 12 122 (C) 2008 João Pais - jmmmpais@gmail.com;
diff --git a/abstractions/jmmmp/pix2canvas-help.pd b/abstractions/jmmmp/pix2canvas-help.pd
new file mode 100644
index 000000000..9c1a95903
--- /dev/null
+++ b/abstractions/jmmmp/pix2canvas-help.pd
@@ -0,0 +1,32 @@
+#N canvas 191 7 379 173 10;
+#X text 12 11 [pix2canvas] - Convert images into canvas;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 7 Copyright 2016 \, João Pais;
+#X text 8 27 jmmmpais@gmail.com;
+#X restore 14 140 pd license;
+#X text 13 120 (C) 2016 João Pais - jmmmpais@gmail.com;
+#X text 13 41 This is just a wrapper for [pix2canvas]. All informations
+are already described there.;
+#X obj 14 90 pix2canvas;
diff --git a/abstractions/jmmmp/pix2canvas.pd b/abstractions/jmmmp/pix2canvas.pd
new file mode 100644
index 000000000..8613c5fbe
--- /dev/null
+++ b/abstractions/jmmmp/pix2canvas.pd
@@ -0,0 +1,191 @@
+#N canvas 191 7 403 393 10;
+#X text 13 161 A display innacuracy makes the pixels in the top row
+and right column too thick.;
+#X text 13 81 This makes it possible to "import" images into vanilla.
+Small pictures are converted fast \, but medium and big files can take
+some time to convert and display.;
+#X text 13 41 This patch converts images into groups of canvases with
+thickness of 1x1 \, pixel per pixel. Invisible pixels (with alpha =
+0) are ignored.;
+#X text 12 11 [pix2canvas] - Convert images into canvas;
+#X text 13 191 Each canvas (i.e. pixel) has its a send and receive
+name based on its coordinate: "XxY" and "XxY-i" respectively.;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 7 Copyright 2016 \, João Pais;
+#X text 8 27 jmmmpais@gmail.com;
+#X restore 16 361 pd license;
+#X text 15 341 (C) 2016 João Pais - jmmmpais@gmail.com;
+#N canvas 433 80 435 525 patch 0;
+#X obj 13 95 gemhead;
+#X obj 63 135 pix_draw;
+#X obj 53 115 pix_image;
+#X obj 63 55 openpanel;
+#X obj 63 75 list prepend open;
+#X obj 63 95 list trim;
+#X obj 63 155 pix_info . . . .;
+#X obj 38 392 pix_data;
+#X obj 38 292 f+ 0;
+#X obj 38 332 /;
+#X obj 38 272 until;
+#X obj 21 212 f;
+#X obj 157 272 f+ 0;
+#X obj 147 332 /;
+#X obj 125 272 - 1;
+#X obj 147 312 moses;
+#X obj 147 352 t b f;
+#X obj 21 232 t b f b f;
+#X obj 38 352 t b f;
+#X obj 70 442 pack f f f;
+#X obj 157 292 t f f;
+#X obj 38 312 t f f;
+#X msg 321 412 vis 0 \, clear;
+#N canvas 687 323 309 283 rgb2iemcreate 0;
+#X obj 17 37 inlet;
+#X obj 17 87 * 63;
+#X obj 51 87 * 63;
+#X obj 86 86 * 63;
+#X obj 17 107 << 6;
+#X obj 17 127 +;
+#X obj 17 147 << 6;
+#X obj 17 167 +;
+#X obj 17 187 * -1;
+#X obj 17 207 - 1;
+#X obj 17 257 outlet;
+#X obj 17 57 unpack f f f f;
+#X obj 17 237 spigot;
+#X text 67 237 Pixels with alpha = 0 are left out.;
+#X text 17 17 Generates color number. Made by Roman Haefeli.;
+#X connect 0 0 11 0;
+#X connect 1 0 4 0;
+#X connect 2 0 5 1;
+#X connect 3 0 7 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 12 0;
+#X connect 11 0 1 0;
+#X connect 11 1 2 0;
+#X connect 11 2 3 0;
+#X connect 11 3 12 1;
+#X connect 12 0 10 0;
+#X restore 60 412 pd rgb2iemcreate;
+#N canvas 1291 441 254 228 gemwindow 0;
+#X obj 20 36 route load;
+#X obj 20 56 route success;
+#X obj 20 76 bang;
+#X msg 20 146 destroy \, dimen 100 100 \, create \, 1;
+#X obj 20 196 gemwin 1;
+#X obj 20 16 inlet;
+#X obj 30 176 inlet;
+#X obj 30 96 del 100;
+#X obj 30 116 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 0 7 0;
+#X connect 3 0 4 0;
+#X connect 5 0 0 0;
+#X connect 6 0 4 0;
+#X connect 7 0 8 0;
+#X restore 130 135 pd gemwindow;
+#X msg 199 115 destroy;
+#X obj 130 212 t b b b b;
+#X msg 130 232 vis 1;
+#X obj 160 192 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 98 332 + 20;
+#X obj 184 412 expr 20 + $f2 - $f1;
+#X msg 70 462 obj \$2 \$3 cnv 1 1 1 \$2x\$3 \$2x\$3-i empty 0 0 0 10
+\$1 22 0 \;;
+#X obj 72 292 - 1;
+#X obj 70 492 s pd-\$0-pix;
+#X obj 63 35 inlet;
+#X text 13 15 Loads into [pix_image] \, and gets the values using [pix_info]
+;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 2 0 6 0;
+#X connect 2 0 7 1;
+#X connect 2 1 24 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X connect 6 1 11 1;
+#X connect 6 2 14 0;
+#X connect 6 2 15 1;
+#X connect 6 2 30 1;
+#X connect 7 1 23 0;
+#X connect 8 0 21 0;
+#X connect 9 0 18 0;
+#X connect 10 0 8 0;
+#X connect 11 0 17 0;
+#X connect 12 0 20 0;
+#X connect 13 0 16 0;
+#X connect 14 0 13 1;
+#X connect 15 0 13 0;
+#X connect 16 0 11 0;
+#X connect 16 1 7 3;
+#X connect 17 0 12 0;
+#X connect 17 1 10 0;
+#X connect 17 2 8 1;
+#X connect 17 3 32 0;
+#X connect 18 0 7 0;
+#X connect 18 1 7 2;
+#X connect 19 0 31 0;
+#X connect 20 0 15 0;
+#X connect 20 1 30 0;
+#X connect 21 0 9 0;
+#X connect 21 1 29 0;
+#X connect 22 0 33 0;
+#X connect 23 0 19 0;
+#X connect 24 0 26 0;
+#X connect 25 0 24 1;
+#X connect 26 0 27 0;
+#X connect 26 0 25 0;
+#X connect 26 1 12 0;
+#X connect 26 2 12 1;
+#X connect 26 3 22 0;
+#X connect 27 0 33 0;
+#X connect 28 0 26 0;
+#X connect 29 0 19 1;
+#X connect 30 0 19 2;
+#X connect 31 0 33 0;
+#X connect 32 0 9 1;
+#X connect 34 0 3 0;
+#X restore 16 311 pd patch;
+#N canvas 8 115 344 182 \$0-pix 0;
+#X restore 96 311 pd \$0-pix;
+#X obj 16 251 bng 15 250 50 0 empty empty empty 0 -6 0 8 -204786 -1
+-1;
+#X text 13 121 It uses Gem's [pix_image] \, and works with any image
+that can be loaded by it. Tif and jpg work \, other formats depend
+on the Gem settings.;
+#X text 33 251 1 - Load a file;
+#X text 13 231 To convert a picture:;
+#X text 33 271 2 - the file is converted \, and the subpatch \$0-pix
+opens up with the result.;
+#X connect 9 0 7 0;
diff --git a/abstractions/jmmmp/prepent-help.pd b/abstractions/jmmmp/prepent-help.pd
index e69de29bb..0cc36869d 100644
--- a/abstractions/jmmmp/prepent-help.pd
+++ b/abstractions/jmmmp/prepent-help.pd
@@ -0,0 +1,3 @@
+#N canvas 329 129 450 300 10;
+#X obj 189 121 prepent;
+#X text 73 61 [list prepend]--[list trim] shortcut;
diff --git a/abstractions/jmmmp/rec-name-help.pd b/abstractions/jmmmp/rec-name-help.pd
index 24b0dbdd5..c05035dfb 100644
--- a/abstractions/jmmmp/rec-name-help.pd
+++ b/abstractions/jmmmp/rec-name-help.pd
@@ -18,10 +18,10 @@ or playback;
 1;
 #X obj 36 229 print REC;
 #X obj 119 249 print PLAY;
-#X obj 36 366 writesf~ 2;
-#X obj 119 366 readsf~ 2;
-#X obj 119 386 dac~;
-#X obj 36 336 rec-name;
+#X obj 36 376 writesf~ 2;
+#X obj 119 376 readsf~ 2;
+#X obj 119 396 dac~;
+#X obj 36 346 rec-name;
 #X text 13 6 [rec-name] - Automatic naming for a record/playback engine.
 ;
 #X text 12 437 (C) 2007 João Pais - jmmmpais@googlemail.com;
@@ -40,6 +40,25 @@ This string can be connected with the writesf~ and readsf~ objects.
 recordings (or takes) one after the other. The files are named automatically
 \, avoiding the constant inputting of a filename.;
 #X text 12 457 Released under the BSD License;
+#X obj 36 326 tgl 13 0 empty empty empty 0 -6 0 8 -258113 -1 -1 0 1
+;
+#X obj 119 326 tgl 13 0 empty empty empty 0 -6 0 8 -4034 -1 -1 0 1
+;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION Automatic naming for a record/playback engine
+;
+#X text 12 36 KEYWORDS filename dynamic;
+#X text 12 135 VERSION 2007;
+#X text 14 165 INLET_0 - Bang / Toggle (Recording);
+#X text 14 185 INLET_1 - Bang / Toggle (Playback) / Sample playback
+index;
+#X text 14 205 OUTLET_0 - message to writesf~;
+#X text 14 225 OUTLET_1 - message to readsf~;
+#X restore 702 466 pd META;
 #X connect 0 0 12 0;
 #X connect 0 1 13 0;
 #X connect 8 0 0 0;
@@ -50,3 +69,5 @@ recordings (or takes) one after the other. The files are named automatically
 #X connect 15 1 16 1;
 #X connect 17 0 14 0;
 #X connect 17 1 15 0;
+#X connect 27 0 17 0;
+#X connect 28 0 17 1;
diff --git a/abstractions/jmmmp/rgb-color-help.pd b/abstractions/jmmmp/rgb-color-help.pd
new file mode 100644
index 000000000..a559f6b8f
--- /dev/null
+++ b/abstractions/jmmmp/rgb-color-help.pd
@@ -0,0 +1,34 @@
+#N canvas 186 367 435 338 10;
+#X text 12 307 Released under the BSD License;
+#X text 257 90 Inlets;
+#X text 257 150 Outlets;
+#X text 257 110 - Bang;
+#X obj 16 92 rgb-color;
+#X text 12 10 [rgb-color] - Pick RGB colors for your GUI objects;
+#X text 257 170 - "color \$1 \$2 \$3" command;
+#X text 257 190 - number with current color;
+#X text 11 287 (C) 2010 João Pais - jmmmpais@googlemail.com;
+#X obj 19 263 hsl 128 15 0 127 0 0 empty \$0-slider Label -2 -8 0 10
+-77055 -243095 -3657 3000 1;
+#X obj 16 173 s \$0-slider;
+#X floatatom 173 173 10 0 0 0 - - -;
+#X text 12 30 Define the colors of your GUI object just like using
+the properties window. The settings of the three fields are saved in
+memory while using the object.;
+#X text 14 230 Send your color settings here:;
+#X text 128 205 in Pd encoding;
+#X text 128 192 Current color code;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION Pick RGB colors for your GUI objects;
+#X text 12 36 KEYWORDS color RGB GUI;
+#X text 12 135 VERSION 2010;
+#X text 14 165 INLET_0 - Bang;
+#X text 14 185 OUTLET_0 - "color \$1 \$2 \$3" command;
+#X text 14 205 OUTLET_1 - number with current color;
+#X restore 372 306 pd META;
+#X connect 4 0 10 0;
+#X connect 4 1 11 0;
diff --git a/abstractions/jmmmp/rgb-color.pd b/abstractions/jmmmp/rgb-color.pd
new file mode 100644
index 000000000..974e48aa5
--- /dev/null
+++ b/abstractions/jmmmp/rgb-color.pd
@@ -0,0 +1,212 @@
+#N canvas 103 180 381 510 10;
+#X obj 13 10 hsl 128 12 0 255 0 0 \$0-r \$0-r-i empty -2 -8 0 10 -228856
+-258113 -1 0 1;
+#X obj 13 22 hsl 128 12 0 255 0 0 \$0-g \$0-g-i empty -2 -8 0 10 -228856
+-4034 -1 0 1;
+#X obj 13 34 hsl 128 12 0 255 0 0 \$0-b \$0-b-i empty -2 -8 0 10 -228856
+-4160 -1 0 1;
+#X obj 24 50 cnv 34 34 34 empty \$0-cnv empty 20 12 0 14 -1 -262144
+0;
+#X obj 21 329 s \$0-cnv;
+#X msg 21 309 color \$1;
+#X obj 85 179 t b f;
+#X obj 167 179 t b f;
+#X obj 144 10 nbx 3 12 0 255 0 0 \$0-r-i \$0-r1-i empty 0 -8 0 8 -261234
+-1 -1 0 256;
+#X obj 144 22 nbx 3 12 0 255 0 0 \$0-g-i \$0-g1-i empty 0 -8 0 8 -204786
+-1 -1 0 256;
+#X obj 144 34 nbx 3 12 0 255 0 0 \$0-b-i \$0-b1-i empty 0 -8 0 8 -203904
+-1 -1 0 256;
+#X obj 11 389 outlet;
+#X msg 21 139 set \$1;
+#X obj 21 159 s \$0-r1-i;
+#X msg 95 139 set \$1;
+#X obj 95 159 s \$0-g1-i;
+#X msg 177 139 set \$1;
+#X obj 177 159 s \$0-b1-i;
+#X obj 85 49 vradio 12 1 0 3 \$0-lab \$0-lab-i empty 0 -8 0 10 -228856
+-1 -1 0;
+#X text 100 46 Background;
+#X text 100 58 Front;
+#X text 100 70 Label;
+#X obj 72 50 cnv 10 10 10 empty \$0-cnv-back empty 20 12 0 14 -1 -262144
+0;
+#X obj 72 62 cnv 10 10 10 empty \$0-cnv-front empty 20 12 0 14 -1 -262144
+0;
+#X obj 72 74 cnv 10 10 10 empty \$0-cnv-label empty 20 12 0 14 -1 -262144
+0;
+#X obj 11 99 r \$0-r;
+#X obj 85 99 r \$0-g;
+#X obj 167 99 r \$0-b;
+#X obj 167 119 i;
+#X obj 85 119 i;
+#X obj 11 119 i;
+#X obj 11 289 expr ($f1*(-65536)+$f2*(-256)+$f3*(-1))-1;
+#X obj 11 229 pack f f f;
+#X obj 31 259 outlet rgb;
+#X text 33 417 inserir inlet \, que separa os numeros e os converte
+a rgb;
+#X obj 212 16 init 0;
+#N canvas 0 0 376 407 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2010 \, João Pais;
+#X restore 15 472 pd license;
+#X text 14 453 (C) 2010 João Pais - jmmmpais@googlemail.com;
+#N canvas 0 0 484 500 rgb 0;
+#X obj 21 399 outlet;
+#X msg 21 369 color \$1 \$2 \$3;
+#X obj 21 209 route back front label;
+#X obj 90 89 sel 0 1 2;
+#X msg 90 109 back;
+#X msg 107 129 front;
+#X msg 124 149 label;
+#X obj 21 169 list prepend;
+#X obj 21 189 list trim;
+#X msg 64 269 color \$1;
+#X msg 117 229 color \$1;
+#X obj 117 249 s \$0-cnv-label;
+#X msg 31 229 color \$1;
+#X obj 31 249 s \$0-cnv-back;
+#X obj 64 289 s \$0-cnv-front;
+#X obj 35 319 t b f;
+#X obj 77 319 t b f;
+#X obj 21 349 pack f f f;
+#X obj 90 69 r \$0-lab;
+#X obj 21 129 inlet;
+#X text 39 41 Ausgang RGB;
+#X obj 311 219 route back front label;
+#X obj 380 39 sel 0 1 2;
+#X msg 380 79 back;
+#X msg 404 119 front;
+#X msg 398 159 label;
+#X obj 311 179 list prepend;
+#X obj 311 199 list trim;
+#X obj 290 249 list;
+#X obj 333 249 list;
+#X obj 376 249 list;
+#X obj 290 279 unpack f f f;
+#X obj 380 59 t b b;
+#X obj 397 99 t b b;
+#X obj 414 139 t b b;
+#X msg 359 419 set \$1;
+#X msg 324 359 set \$1;
+#X msg 290 299 set \$1;
+#X obj 359 459 s \$0-b1-i;
+#X obj 369 439 s \$0-b-i;
+#X obj 324 399 s \$0-g1-i;
+#X obj 334 379 s \$0-g-i;
+#X obj 290 339 s \$0-r1-i;
+#X obj 300 319 s \$0-r-i;
+#X obj 380 19 r \$0-lab;
+#X obj 311 139 inlet;
+#X text 286 35 GUI Speicher;
+#X connect 1 0 0 0;
+#X connect 2 0 12 0;
+#X connect 2 0 17 0;
+#X connect 2 1 9 0;
+#X connect 2 1 15 0;
+#X connect 2 2 10 0;
+#X connect 2 2 16 0;
+#X connect 3 0 4 0;
+#X connect 3 1 5 0;
+#X connect 3 2 6 0;
+#X connect 4 0 7 1;
+#X connect 5 0 7 1;
+#X connect 6 0 7 1;
+#X connect 7 0 8 0;
+#X connect 8 0 2 0;
+#X connect 9 0 14 0;
+#X connect 10 0 11 0;
+#X connect 12 0 13 0;
+#X connect 15 0 17 0;
+#X connect 15 1 17 1;
+#X connect 16 0 17 0;
+#X connect 16 1 17 2;
+#X connect 17 0 1 0;
+#X connect 18 0 3 0;
+#X connect 19 0 7 0;
+#X connect 21 0 28 1;
+#X connect 21 1 29 1;
+#X connect 21 2 30 1;
+#X connect 22 0 32 0;
+#X connect 22 1 33 0;
+#X connect 22 2 34 0;
+#X connect 23 0 26 1;
+#X connect 24 0 26 1;
+#X connect 25 0 26 1;
+#X connect 26 0 27 0;
+#X connect 27 0 21 0;
+#X connect 28 0 31 0;
+#X connect 29 0 31 0;
+#X connect 30 0 31 0;
+#X connect 31 0 37 0;
+#X connect 31 1 36 0;
+#X connect 31 2 35 0;
+#X connect 32 0 23 0;
+#X connect 32 1 28 0;
+#X connect 33 0 24 0;
+#X connect 33 1 29 0;
+#X connect 34 0 25 0;
+#X connect 34 1 30 0;
+#X connect 35 0 38 0;
+#X connect 35 0 39 0;
+#X connect 36 0 40 0;
+#X connect 36 0 41 0;
+#X connect 37 0 42 0;
+#X connect 37 0 43 0;
+#X connect 44 0 22 0;
+#X connect 45 0 26 0;
+#X restore 11 359 pd rgb speicher;
+#X obj 267 10 inlet;
+#X obj 267 30 route list float;
+#X obj 165 338 outlet iem-color;
+#X connect 5 0 4 0;
+#X connect 6 0 32 0;
+#X connect 6 1 32 1;
+#X connect 7 0 32 0;
+#X connect 7 1 32 2;
+#X connect 12 0 13 0;
+#X connect 14 0 15 0;
+#X connect 16 0 17 0;
+#X connect 25 0 30 0;
+#X connect 26 0 29 0;
+#X connect 27 0 28 0;
+#X connect 28 0 16 0;
+#X connect 28 0 7 0;
+#X connect 29 0 14 0;
+#X connect 29 0 6 0;
+#X connect 30 0 12 0;
+#X connect 30 0 32 0;
+#X connect 31 0 5 0;
+#X connect 31 0 38 0;
+#X connect 31 0 41 0;
+#X connect 32 0 31 0;
+#X connect 32 0 33 0;
+#X connect 32 0 38 1;
+#X connect 35 0 18 0;
+#X connect 38 0 11 0;
+#X connect 39 0 40 0;
+#X connect 40 0 32 0;
+#X coords 0 -1 1 1 164 78 2 10 10;
diff --git a/abstractions/jmmmp/sguigot-help.pd b/abstractions/jmmmp/sguigot-help.pd
index b3b791887..e66714f84 100644
--- a/abstractions/jmmmp/sguigot-help.pd
+++ b/abstractions/jmmmp/sguigot-help.pd
@@ -1,32 +1,45 @@
-#N canvas 53 86 363 356 10;
-#X text 12 327 Released under the BSD License;
-#X text 206 90 Inlets;
-#X text 206 160 Outlets;
-#X text 206 40 Arguments;
-#X text 206 60 - Initial state (0/1);
-#X text 206 110 - Messages;
-#X text 206 180 - Messages;
-#X text 206 200 - State;
-#X obj 26 159 sguigot 1;
-#X floatatom 26 189 5 0 0 0 - - -;
-#X obj 26 118 f+;
-#X obj 26 98 metrum 1000 1;
-#X text 12 307 (C) 2008 João Pais - jmmmpais@googlemail.com;
-#X obj 113 188 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
-1;
-#X text 112 204 State;
-#X text 206 250 - State;
-#X text 206 230 GUI;
-#X text 206 130 - On / Off (0/1);
-#X text 206 270 - Incoming message;
-#X text 22 10 [sguigot] - Spigot GUI implementation;
-#X obj 103 136 bng 14 250 50 0 empty empty empty 17 7 0 10 -228856
--1 -1;
-#X obj 123 136 tgl 14 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
-1;
-#X connect 8 0 9 0;
-#X connect 8 1 13 0;
-#X connect 10 0 8 0;
-#X connect 11 0 10 0;
-#X connect 20 0 8 1;
-#X connect 21 0 8 1;
+#N canvas 53 86 363 356 10;
+#X text 12 327 Released under the BSD License;
+#X text 206 90 Inlets;
+#X text 206 160 Outlets;
+#X text 206 40 Arguments;
+#X text 206 60 - Initial state (0/1);
+#X text 206 110 - Messages;
+#X text 206 180 - Messages;
+#X text 206 200 - State;
+#X obj 26 159 sguigot 1;
+#X floatatom 26 189 5 0 0 0 - - -;
+#X obj 26 118 f+;
+#X obj 26 98 metrum 1000 1;
+#X text 12 307 (C) 2008 João Pais - jmmmpais@googlemail.com;
+#X obj 113 188 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X text 112 204 State;
+#X text 206 250 - State;
+#X text 206 230 GUI;
+#X text 206 270 - Incoming message;
+#X text 22 10 [sguigot] - Spigot GUI implementation;
+#X obj 103 136 bng 14 250 50 0 empty empty empty 17 7 0 10 -228856
+-1 -1;
+#X obj 123 136 tgl 14 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
+1;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION Spigot GUI implementation;
+#X text 12 36 KEYWORDS spigot GUI;
+#X text 12 135 VERSION 2008;
+#X text 14 165 INLET_0 - Messages;
+#X text 14 185 INLET_1 - On / Off (0/1);
+#X text 14 205 OUTLET_0 - Messages;
+#X text 14 225 OUTLET_1 - State;
+#X restore 302 326 pd META;
+#X text 206 130 - On / Off (0/1);
+#X connect 8 0 9 0;
+#X connect 8 1 13 0;
+#X connect 10 0 8 0;
+#X connect 11 0 10 0;
+#X connect 19 0 8 1;
+#X connect 20 0 8 1;
diff --git a/abstractions/jmmmp/sliders-help.pd b/abstractions/jmmmp/sliders-help.pd
index 0f87209ac..a3b41b033 100644
--- a/abstractions/jmmmp/sliders-help.pd
+++ b/abstractions/jmmmp/sliders-help.pd
@@ -1,12 +1,12 @@
-#N struct 1026-data-s float x float y array 1026-array-s 1026-element
+#N struct 1085-data-s float x float y array 1085-array-s 1085-element
 ;
-#N struct 1026-element float y;
-#N struct 1061-data-s float x float y array 1061-array-s 1061-element
+#N struct 1085-element float y;
+#N struct 1088-data-s float x float y array 1088-array-s 1088-element
 ;
-#N struct 1061-element float y;
-#N struct 1064-data-s float x float y array 1064-array-s 1064-element
+#N struct 1088-element float y;
+#N struct 1091-data-s float x float y array 1091-array-s 1091-element
 ;
-#N struct 1064-element float y;
+#N struct 1091-element float y;
 #N canvas 35 130 444 495 10;
 #X text 12 472 Released under the BSD License;
 #X text 11 455 (C) 2009 João Pais - jmmmpais@googlemail.com;
@@ -34,3 +34,12 @@ four sliders (all other channels are ignored).;
 #X text 12 422 Related objects: [m-i] [mk];
 #X obj 63 283 sliders 16 aaa;
 #X obj 63 363 sliders 5 bbb;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION GUI for incoming midi data;
+#X text 12 36 KEYWORDS midi slider GUI;
+#X text 12 135 VERSION 2009;
+#X restore 382 466 pd META;
diff --git a/abstractions/jmmmp/snaps~-help.pd b/abstractions/jmmmp/snaps~-help.pd
index f12c75122..a3327d27c 100644
--- a/abstractions/jmmmp/snaps~-help.pd
+++ b/abstractions/jmmmp/snaps~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 125 122 425 286 10;
+#N canvas 125 122 408 275 10;
 #X text 12 227 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 247 Released under the BSD License;
 #X text 276 100 Inlets;
@@ -16,6 +16,18 @@
 #X msg 146 86 50;
 #X obj 26 177 dsp01;
 #X text 12 10 [snaps~] - snapshot~ GUI implementation;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION snapshot~ GUI implementation;
+#X text 12 36 KEYWORDS snapshot~ GUI;
+#X text 12 135 VERSION 2006;
+#X text 14 165 INLET_0 - Signal;
+#X text 14 185 INLET_1 - Meter speed (ms);
+#X text 14 205 OUTLET_0 - Signal level;
+#X restore 352 246 pd META;
 #X connect 5 0 13 1;
 #X connect 8 0 13 0;
 #X connect 13 0 7 0;
diff --git a/abstractions/jmmmp/snaps~.pd b/abstractions/jmmmp/snaps~.pd
index 2993679e4..a8001d1e3 100644
--- a/abstractions/jmmmp/snaps~.pd
+++ b/abstractions/jmmmp/snaps~.pd
@@ -2,8 +2,8 @@
 #X obj 65 183 snapshot~;
 #X obj 75 63 loadbang;
 #X obj 65 43 inlet~;
-#X obj 65 223 nbx 7 13 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
-10 -233017 -1 -1 0 256;
+#X obj 65 223 nbx 10 13 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+10 -233017 -1 -1 3.91941e-005 256;
 #X obj 75 203 outlet;
 #X obj 102 103 \$1;
 #X obj 75 83 t b b;
@@ -16,7 +16,6 @@
 #X text 196 120 - Signal;
 #X text 196 140 - Meter speed (ms);
 #X text 196 190 - Signal level;
-#X text 7 247 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #N canvas 0 0 426 446 license 0;
 #X text 8 47 All rights reserved.;
 #X text 8 227 The names of its contributors may not be used to endorse
@@ -45,14 +44,15 @@ in the documentation and/or other materials provided with the distribution.
 #X restore 10 265 pd license;
 #X text 12 10 [snaps~] - snapshot~ GUI implementation;
 #X obj 102 133 sel 0;
+#X text 7 247 (C) 2006-2016 João Pais - jmmmpais@googlemail.com;
 #X connect 0 0 3 0;
 #X connect 0 0 4 0;
 #X connect 1 0 6 0;
 #X connect 2 0 0 0;
-#X connect 5 0 19 0;
+#X connect 5 0 18 0;
 #X connect 6 0 8 0;
 #X connect 6 1 5 0;
-#X connect 7 0 19 0;
+#X connect 7 0 18 0;
 #X connect 8 0 0 0;
-#X connect 19 1 8 1;
-#X coords 0 -1 1 1 117 17 1 20 221;
+#X connect 18 1 8 1;
+#X coords 0 -1 1 1 143 17 1 20 221;
diff --git a/abstractions/jmmmp/spectrogram~-help.pd b/abstractions/jmmmp/spectrogram~-help.pd
index b47526386..d444dc509 100644
--- a/abstractions/jmmmp/spectrogram~-help.pd
+++ b/abstractions/jmmmp/spectrogram~-help.pd
@@ -14,4 +14,15 @@
 Harmonic content is analysed in 512 bins resolution \, 20 times a second.
 Tested on 44.1KHz.;
 #X obj 18 76 noise~;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 6 DESCRIPTION Spectrogram with 512 bins resolution;
+#X text 12 36 KEYWORDS spectrogram;
+#X text 12 135 VERSION 2009;
+#X text 14 166 INLET_0 - Audio to analyse;
+#X text 14 185 OUTLET_0 - Same as inlet;
+#X restore 642 386 pd META;
 #X connect 11 0 8 0;
diff --git a/abstractions/jmmmp/stoppuhr-clock-help.pd b/abstractions/jmmmp/stoppuhr-clock-help.pd
new file mode 100644
index 000000000..3960e1525
--- /dev/null
+++ b/abstractions/jmmmp/stoppuhr-clock-help.pd
@@ -0,0 +1,3 @@
+#N canvas 0 0 450 300 10;
+#X text 112 62 abstraction for [stoppuhr];
+#X obj 139 95 stoppuhr-clock;
diff --git a/abstractions/jmmmp/stoppuhr-help.pd b/abstractions/jmmmp/stoppuhr-help.pd
index 99c976efc..e7b6a9cef 100644
--- a/abstractions/jmmmp/stoppuhr-help.pd
+++ b/abstractions/jmmmp/stoppuhr-help.pd
@@ -1,4 +1,4 @@
-#N canvas 108 117 718 384 10;
+#N canvas 108 117 692 376 10;
 #X text 12 327 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 12 347 Released under the BSD License;
 #X text 476 70 Inlets;
@@ -30,6 +30,19 @@
 #X text 125 165 Click the right button to open the documentation window.
 ;
 #X text 12 295 Related objects: [clock] [uhr];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 13 6 DESCRIPTION Chronometer with two layers;
+#X text 12 36 KEYWORDS chronometer;
+#X text 14 165 INLET_0 - new section (key m);
+#X text 14 185 INLET_1 - offset (secs);
+#X text 14 205 OUTLET_0 - Elapsed time since beginning;
+#X text 14 225 OUTLET_1 - Elapsed time since last section;
+#X restore 632 346 pd META;
 #X connect 11 0 5 0;
 #X connect 11 1 6 0;
 #X connect 12 0 11 0;
diff --git a/abstractions/jmmmp/swatch-gui-help.pd b/abstractions/jmmmp/swatch-gui-help.pd
new file mode 100644
index 000000000..79a695c68
--- /dev/null
+++ b/abstractions/jmmmp/swatch-gui-help.pd
@@ -0,0 +1,43 @@
+#N struct 1007-ds-show float x float y float colour;
+#N struct 1007-rgb-sel float x float y float p1x float p1y float p2x
+float p2y float p3x float p3y float p4x float p4y float p5x float p5y
+float p0x float p0y float p0x. float p0y.;
+#N canvas 44 109 411 442 10;
+#X text 12 407 Released under the BSD License;
+#X text 228 250 Inlets;
+#X text 227 300 Outlets;
+#X text 227 270 - Bang;
+#X text 227 320 - "color \$1 \$2 \$3" command;
+#X text 227 340 - number with current color;
+#X obj 13 101 swatch-gui;
+#X obj 28 284 hsl 128 15 0 127 0 0 empty \$0-slider Label -2 -8 0 10
+-139073 -22721 -78208 0 1;
+#X obj 13 246 s \$0-slider;
+#X floatatom 149 226 10 0 0 0 - - -;
+#X msg 13 226 color \$1 \$2 \$3;
+#N canvas 504 106 383 254 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 36 KEYWORDS color GUI data structures;
+#X text 14 165 INLET_0 - bang;
+#X text 14 185 OUTLET_0 - "color \$1 \$2 \$3" command;
+#X text 14 205 OUTLET_1 - number with current color;
+#X text 12 135 VERSION 2014;
+#X text 14 225 OUTLET_2 - color for data structures;
+#X text 13 6 DESCRIPTION Color chooser using the hue-saturation chart
+;
+#X restore 352 406 pd META;
+#X text 227 360 - color for data structures;
+#X floatatom 285 226 4 0 0 0 - - -;
+#X text 13 11 [swatch-gui] - Pick a color for your GUI using the hue-saturation
+chart \, for IEM or data structures colours.;
+#X text 11 387 (C) 2014 João Pais - jmmmpais@googlemail.com;
+#X text 11 41 To choose a color \, click the circle and drag it around.
+In case the circle disappears \, clicking in the swatch will make it
+appear again.;
+#X connect 6 0 10 0;
+#X connect 6 1 9 0;
+#X connect 6 2 13 0;
+#X connect 10 0 8 0;
diff --git a/abstractions/jmmmp/swatch-gui.pd b/abstractions/jmmmp/swatch-gui.pd
new file mode 100644
index 000000000..6d98f21a1
--- /dev/null
+++ b/abstractions/jmmmp/swatch-gui.pd
@@ -0,0 +1,440 @@
+#N canvas 302 139 450 314 10;
+#X obj 150 53 image examples/rgb.ppm;
+#N canvas 580 67 575 780 inside 0;
+#N canvas 187 386 705 549 selector-data 0;
+#X obj 203 53 route change click;
+#X obj 222 83 unpack p f;
+#X obj 119 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 9 59 t b b;
+#X obj 64 130 pointer;
+#X msg 64 110 traverse \$1 \, bang;
+#X obj 222 333 t p p p p;
+#X obj 222 403 list-add;
+#X obj 222 363 get \$0-rgb-sel p0x;
+#X msg 347 363 -8 0 8;
+#X msg 222 383 \$1 \$1 \$1;
+#X obj 222 423 set \$0-rgb-sel p1x p2x p3x;
+#X obj 256 493 list-add;
+#X msg 256 473 \$1 \$1 \$1;
+#X obj 256 453 get \$0-rgb-sel p0y;
+#X obj 256 513 set \$0-rgb-sel p1y p2y p3y;
+#X text 378 104 drawcurve 0 2 -8 0 0 8 8 0 0 -8 -8 0;
+#X obj 239 183 t p p p p;
+#X obj 273 263 get \$0-rgb-sel p0y;
+#X obj 273 303 set \$0-rgb-sel p0y.;
+#X obj 256 153 outlet;
+#X obj 273 283 + 0;
+#X obj 239 223 + 0;
+#X obj 352 63 drawpolygon 0 1 0 0 259 0 259 66 0 66 0 0;
+#X obj 352 83 drawpolygon 0 2 p0x(0:258) p0y(0:65) p0x. p0y.;
+#X obj 352 123 drawcurve 0 2 p1x p2y p2x p3y p3x p2y p2x p1y p1x p2y
+;
+#X obj 64 90 symbol \$0-swatch;
+#X obj 9 9 loadbang;
+#X obj 203 7 struct \$0-rgb-sel float x float y float p1x float p1y
+float p2x float p2y float p3x float p3y float p4x float p4y float p5x
+float p5y float p0x float p0y float p0x. float p0y.;
+#X obj 9 160 append \$0-rgb-sel x y;
+#X obj 239 203 get \$0-rgb-sel p0x;
+#X obj 239 243 set \$0-rgb-sel p0x.;
+#X msg 9 140 10 10;
+#X obj 482 342 pointer;
+#X obj 509 302 set \$0-rgb-sel p0x p0y;
+#X obj 222 113 t p p p p;
+#X obj 521 322 t p p;
+#X msg 496 260 \$1 \$2;
+#X obj 482 282 t b l;
+#X text 443 213 mecanismo para gravar posicoes;
+#X obj 473 239 r \$0-list-speicher;
+#X obj 9 29 t b b;
+#X connect 0 0 1 0;
+#X connect 0 1 1 0;
+#X connect 1 0 35 0;
+#X connect 2 0 3 0;
+#X connect 3 0 32 0;
+#X connect 3 1 26 0;
+#X connect 4 0 29 2;
+#X connect 5 0 4 0;
+#X connect 6 0 8 0;
+#X connect 6 1 11 3;
+#X connect 6 2 14 0;
+#X connect 6 3 15 3;
+#X connect 7 0 11 0;
+#X connect 8 0 10 0;
+#X connect 9 0 7 1;
+#X connect 9 0 12 1;
+#X connect 10 0 7 0;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 0;
+#X connect 17 0 30 0;
+#X connect 17 1 31 1;
+#X connect 17 2 18 0;
+#X connect 17 3 19 1;
+#X connect 18 0 21 0;
+#X connect 21 0 19 0;
+#X connect 22 0 31 0;
+#X connect 26 0 5 0;
+#X connect 27 0 41 0;
+#X connect 28 0 0 0;
+#X connect 29 0 35 0;
+#X connect 30 0 22 0;
+#X connect 32 0 29 0;
+#X connect 33 0 35 0;
+#X connect 35 0 6 0;
+#X connect 35 1 17 0;
+#X connect 35 2 20 0;
+#X connect 35 3 36 0;
+#X connect 36 0 33 1;
+#X connect 36 1 34 2;
+#X connect 37 0 38 0;
+#X connect 38 0 33 0;
+#X connect 38 1 34 0;
+#X connect 40 0 38 0;
+#X connect 41 0 3 0;
+#X connect 41 1 9 0;
+#X restore 92 11 pd selector-data;
+#X obj 92 31 get \$0-rgb-sel p0x p0y;
+#X obj 92 151 tabread \$0-table;
+#X obj 111 171 tabread \$0-table;
+#X obj 92 51 t f f f;
+#X msg 183 577 \$1 \$2 \$3;
+#X obj 92 201 pack f f f;
+#X obj 131 111 tabread \$0-table;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-table 258 float 1;
+#A 0 0 0.0232558 0.0465116 0.0697674 0.0930233 0.116279 0.139535 0.162791
+0.186047 0.209302 0.232558 0.255814 0.27907 0.302326 0.325581 0.348837
+0.372093 0.395349 0.418605 0.44186 0.465116 0.488372 0.511628 0.534884
+0.55814 0.581395 0.604651 0.627907 0.651163 0.674419 0.697674 0.72093
+0.744186 0.767442 0.790698 0.813954 0.837209 0.860465 0.883721 0.906977
+0.930233 0.953488 0.976744 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.976744
+0.953488 0.930233 0.906977 0.883721 0.860465 0.837209 0.813954 0.790698
+0.767442 0.744186 0.72093 0.697674 0.674419 0.651163 0.627907 0.604651
+0.581395 0.55814 0.534884 0.511628 0.488372 0.465116 0.44186 0.418605
+0.395349 0.372093 0.348837 0.325581 0.302326 0.27907 0.255814 0.232558
+0.209302 0.186046 0.162791 0.139535 0.116279 0.0930232 0.0697674 0.0465117
+0.0232558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1 257 0 258 50 1;
+#X restore 212 359 graph;
+#X text 227 426 43 por cada segmento;
+#X text 219 411 0 0 \, 1 43 \, 1 129 \, 0 172 \, 0 258;
+#X obj 92 111 + 86;
+#X obj 92 131 zexy/wrap 257;
+#X obj 131 91 zexy/wrap 257;
+#X obj 131 71 + 172;
+#X obj 183 657 outlet;
+#X obj 243 90 moses 0;
+#X obj 243 70 expr $f1-33;
+#X obj 282 110 expr 1-$f1/32;
+#X obj 183 281 list-mult;
+#X msg 234 261 \$1 \$1 \$1;
+#X text 370 107 opacidade;
+#X obj 183 537 list-mult;
+#X msg 234 517 255 255 255;
+#X obj 183 557 l2i;
+#X obj 234 497 loadbang;
+#X obj 183 597 expr ($f1*(-65536)+$f2*(-256)+$f3*(-1))-1;
+#X text 216 317 converter entradas rgb e iem;
+#X text 372 151 brilho;
+#X obj 92 251 demux 0 1;
+#X obj 282 130 t b f;
+#X obj 243 170 t b f;
+#X obj 123 231 0;
+#X obj 153 231 1;
+#X obj 22 281 unpack f f f;
+#X obj 22 311 pack f f 0 1;
+#X obj 22 331 list-rot 1;
+#X obj 243 150 expr ($f1+1)/32*(-1);
+#X obj 22 351 maxlib/scale 0 1 0 1;
+#X obj 22 491 pack f f f;
+#X obj 56 371 pack f f 0 1;
+#X obj 56 391 list-rot 1;
+#X obj 56 411 maxlib/scale 0 1 0 1;
+#X obj 112 281 t f f f;
+#X obj 91 431 pack f f 0 1;
+#X obj 91 451 list-rot 1;
+#X obj 91 471 maxlib/scale 0 1 0 1;
+#X obj 352 34 inlet;
+#N canvas 0 0 376 407 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2010 \, João Pais;
+#X restore 15 752 pd license;
+#X obj 163 707 outlet;
+#N canvas 874 158 450 429 rgb-speicher 0;
+#X obj 281 229 route back front label;
+#X obj 350 49 sel 0 1 2;
+#X msg 350 89 back;
+#X msg 374 129 front;
+#X msg 368 169 label;
+#X obj 281 189 list prepend;
+#X obj 281 209 list trim;
+#X obj 260 259 list;
+#X obj 303 259 list;
+#X obj 346 259 list;
+#X obj 350 69 t b b;
+#X obj 367 109 t b b;
+#X obj 384 149 t b b;
+#X obj 350 29 r \$0-lab;
+#X obj 21 359 outlet;
+#X msg 21 339 color \$1 \$2 \$3;
+#X obj 21 179 route back front label;
+#X obj 90 59 sel 0 1 2;
+#X msg 90 79 back;
+#X msg 107 99 front;
+#X msg 124 119 label;
+#X obj 21 139 list prepend;
+#X obj 21 159 list trim;
+#X msg 64 239 color \$1;
+#X msg 117 199 color \$1;
+#X obj 117 219 s \$0-cnv-label;
+#X msg 31 199 color \$1;
+#X obj 31 219 s \$0-cnv-back;
+#X obj 64 259 s \$0-cnv-front;
+#X obj 35 289 t b f;
+#X obj 77 289 t b f;
+#X obj 21 319 pack f f f;
+#X obj 90 39 r \$0-lab;
+#X obj 21 99 inlet;
+#X text 27 12 color Befehl;
+#X obj 281 149 inlet;
+#X text 232 104 swatch speicher;
+#X obj 260 289 s \$0-list-speicher;
+#X msg 295 342 134 33;
+#X obj 350 356 loadbang;
+#X connect 0 0 7 1;
+#X connect 0 1 8 1;
+#X connect 0 2 9 1;
+#X connect 1 0 10 0;
+#X connect 1 1 11 0;
+#X connect 1 2 12 0;
+#X connect 2 0 5 1;
+#X connect 3 0 5 1;
+#X connect 4 0 5 1;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
+#X connect 7 0 37 0;
+#X connect 8 0 37 0;
+#X connect 9 0 37 0;
+#X connect 10 0 2 0;
+#X connect 10 1 7 0;
+#X connect 11 0 3 0;
+#X connect 11 1 8 0;
+#X connect 12 0 4 0;
+#X connect 12 1 9 0;
+#X connect 13 0 1 0;
+#X connect 15 0 14 0;
+#X connect 16 0 26 0;
+#X connect 16 0 31 0;
+#X connect 16 1 23 0;
+#X connect 16 1 29 0;
+#X connect 16 2 24 0;
+#X connect 16 2 30 0;
+#X connect 17 0 18 0;
+#X connect 17 1 19 0;
+#X connect 17 2 20 0;
+#X connect 18 0 21 1;
+#X connect 19 0 21 1;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 22 0 16 0;
+#X connect 23 0 28 0;
+#X connect 24 0 25 0;
+#X connect 26 0 27 0;
+#X connect 29 0 31 0;
+#X connect 29 1 31 1;
+#X connect 30 0 31 0;
+#X connect 30 1 31 2;
+#X connect 31 0 15 0;
+#X connect 32 0 17 0;
+#X connect 33 0 21 0;
+#X connect 35 0 5 0;
+#X connect 38 0 7 1;
+#X connect 38 0 8 1;
+#X connect 38 0 9 1;
+#X connect 39 0 38 0;
+#X restore 163 687 pd rgb-speicher;
+#X obj 203 637 s \$0-cnv;
+#X msg 203 617 color \$1;
+#X text 252 234 FALTA MECANISMO PARA GRAVAR POSICOES;
+#X obj 273 658 pack f f;
+#X text 218 204 HA UM ERRO COM A MEMORIA. O VALOR INICIAL È ENVIADO
+PARA CADA LISTA;
+#X obj 183 517 list;
+#X text 14 733 (C) 2014 João Pais - jmmmpais@googlemail.com;
+#X obj 53 577 outlet;
+#N canvas 671 566 538 359 data-struct-conv 0;
+#X obj 54 198 outlet;
+#X obj 44 138 pack f f f;
+#X msg 137 138 symbol;
+#X obj 20 62 t l b;
+#X obj 20 82 expr int($f1 * 9) \; int($f2 * 9) \; int($f3 * 9);
+#X obj 44 178 zexy/symbol2list;
+#X obj 44 158 zexy/list2symbol;
+#X text 33 43 data structures format;
+#X obj 20 22 inlet;
+#X obj 199 91 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 224 111 t b b;
+#X obj 279 151 pointer;
+#X msg 279 131 traverse \$1 \, bang;
+#X obj 279 111 symbol \$0-swatch;
+#X obj 224 91 loadbang;
+#X obj 224 181 append \$0-ds-show x y;
+#X obj 224 21 struct \$0-ds-show float x float y float colour;
+#X obj 44 318 set \$0-ds-show colour;
+#X msg 91 248 traverse \$1 \, bang;
+#X obj 91 228 symbol \$0-swatch;
+#X obj 91 268 pointer \$0-ds-show;
+#X obj 44 228 t f b;
+#X obj 224 51 filledpolygon colour colour 1 0 0 0 35 32 35 32 0;
+#X msg 224 161 235 81;
+#X msg 143 288 next;
+#X connect 1 0 6 0;
+#X connect 2 0 6 1;
+#X connect 3 0 4 0;
+#X connect 3 1 2 0;
+#X connect 4 0 1 0;
+#X connect 4 1 1 1;
+#X connect 4 2 1 2;
+#X connect 5 0 0 0;
+#X connect 5 0 21 0;
+#X connect 6 0 5 0;
+#X connect 8 0 3 0;
+#X connect 9 0 10 0;
+#X connect 10 0 23 0;
+#X connect 10 1 13 0;
+#X connect 11 0 15 2;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 10 0;
+#X connect 18 0 20 0;
+#X connect 19 0 18 0;
+#X connect 20 0 17 1;
+#X connect 20 1 24 0;
+#X connect 21 0 17 0;
+#X connect 21 1 19 0;
+#X connect 23 0 15 0;
+#X connect 24 0 20 0;
+#X restore 53 557 pd data-struct-conv;
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 1 1 17 0;
+#X connect 1 1 54 1;
+#X connect 2 0 6 0;
+#X connect 3 0 6 1;
+#X connect 4 0 11 0;
+#X connect 4 1 3 0;
+#X connect 4 2 14 0;
+#X connect 4 2 54 0;
+#X connect 5 0 26 0;
+#X connect 6 0 29 0;
+#X connect 7 0 6 2;
+#X connect 11 0 12 0;
+#X connect 12 0 2 0;
+#X connect 13 0 7 0;
+#X connect 14 0 13 0;
+#X connect 16 0 37 0;
+#X connect 16 1 18 0;
+#X connect 17 0 16 0;
+#X connect 18 0 30 0;
+#X connect 19 0 56 0;
+#X connect 20 0 19 1;
+#X connect 22 0 24 0;
+#X connect 23 0 22 1;
+#X connect 24 0 5 0;
+#X connect 25 0 23 0;
+#X connect 26 0 15 0;
+#X connect 26 0 52 0;
+#X connect 26 0 50 0;
+#X connect 29 0 34 0;
+#X connect 29 1 19 0;
+#X connect 30 0 33 0;
+#X connect 30 1 20 0;
+#X connect 31 0 32 0;
+#X connect 31 1 43 0;
+#X connect 32 0 29 1;
+#X connect 33 0 29 1;
+#X connect 34 0 35 0;
+#X connect 34 1 40 0;
+#X connect 34 2 44 0;
+#X connect 35 0 36 0;
+#X connect 36 0 38 0;
+#X connect 37 0 31 0;
+#X connect 38 0 39 0;
+#X connect 39 0 56 0;
+#X connect 40 0 41 0;
+#X connect 41 0 42 0;
+#X connect 42 0 39 1;
+#X connect 43 0 35 1;
+#X connect 43 1 40 1;
+#X connect 43 2 44 1;
+#X connect 44 0 45 0;
+#X connect 45 0 46 0;
+#X connect 46 0 39 2;
+#X connect 50 0 49 0;
+#X connect 52 0 51 0;
+#X connect 54 0 50 1;
+#X connect 56 0 22 0;
+#X connect 56 0 59 0;
+#X connect 59 0 58 0;
+#X restore 10 211 pd inside;
+#X obj 35 251 outlet;
+#X obj 10 291 namecanvas \$0-swatch;
+#X obj 10 191 inlet;
+#X obj 21 92 cnv 34 34 34 empty \$0-cnv empty 20 12 0 14 -8254 -262144
+0;
+#X obj 82 91 vradio 12 1 0 3 \$0-lab \$0-lab-i empty 0 -8 0 10 -228856
+-1 -1 0;
+#X text 97 88 Background;
+#X text 97 100 Front;
+#X text 97 112 Label;
+#X obj 69 92 cnv 10 10 10 empty \$0-cnv-back empty 20 12 0 14 -8254
+-262144 0;
+#X obj 69 104 cnv 10 10 10 empty \$0-cnv-front empty 20 12 0 14 -65217
+-262144 0;
+#X obj 69 116 cnv 10 10 10 empty \$0-cnv-label empty 20 12 0 14 -260110
+-262144 0;
+#X obj 141 201 init 0;
+#X obj 61 231 outlet;
+#X obj 227 230 getdir;
+#X obj 227 210 loadbang;
+#X msg 227 250 open \$1/examples/rgb.ppm;
+#X obj 81 261 outlet;
+#X text 163 112 Data structs:;
+#X connect 1 0 18 0;
+#X connect 1 1 2 0;
+#X connect 1 2 14 0;
+#X connect 4 0 1 0;
+#X connect 13 0 6 0;
+#X connect 15 0 17 0;
+#X connect 16 0 15 0;
+#X connect 17 0 0 0;
+#X coords 0 0 279 122 279 122 2 10 10;
diff --git a/abstractions/jmmmp/swatch-help.pd b/abstractions/jmmmp/swatch-help.pd
new file mode 100644
index 000000000..32bb5c0e9
--- /dev/null
+++ b/abstractions/jmmmp/swatch-help.pd
@@ -0,0 +1,38 @@
+#N struct 1084-rgb-sel float x float y float p1x float p1y float p2x
+float p2y float p3x float p3y float p4x float p4y float p5x float p5y
+float p0x float p0y float p0x. float p0y.;
+#N canvas 186 367 411 350 10;
+#X text 12 317 Released under the BSD License;
+#X text 228 180 Inlets;
+#X text 227 230 Outlets;
+#X text 227 200 - Bang;
+#X text 227 250 - "color \$1 \$2 \$3" command;
+#X text 227 270 - number with current color;
+#X text 11 297 (C) 2010 João Pais - jmmmpais@googlemail.com;
+#X obj 13 91 swatch;
+#X obj 28 244 hsl 128 15 0 127 0 0 empty \$0-slider Label -2 -8 0 10
+-1 -1 -262144 0 1;
+#X obj 13 210 s \$0-slider;
+#X floatatom 137 195 10 0 0 0 - - -;
+#X msg 13 190 color \$1;
+#X text 22 11 [swatch] - Pick a color using the hue-saturation chart
+;
+#X text 21 31 To choose a color \, grab the circle and move it around.
+In case the circle disappears \, clicking in the swatch will make it
+appear again.;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 13 6 DESCRIPTION Pick a color using the hue-saturation chart
+;
+#X text 12 36 KEYWORDS color GUI data structures;
+#X text 12 135 VERSION 2010;
+#X text 14 165 INLET_0 - bang;
+#X text 14 185 OUTLET_0 - "color \$1 \$2 \$3" command;
+#X text 14 205 OUTLET_1 - number with current color;
+#X restore 342 316 pd META;
+#X connect 7 0 11 0;
+#X connect 7 0 10 0;
+#X connect 11 0 9 0;
diff --git a/abstractions/jmmmp/swatch.pd b/abstractions/jmmmp/swatch.pd
new file mode 100644
index 000000000..1b35acb5a
--- /dev/null
+++ b/abstractions/jmmmp/swatch.pd
@@ -0,0 +1,260 @@
+#N canvas 69 167 450 300 10;
+#X obj 150 53 image examples/rgb.ppm ;
+#N canvas 304 153 474 680 inside 0;
+#N canvas 400 377 705 549 selector-data 0;
+#X obj 203 53 route change click;
+#X obj 222 83 unpack p f;
+#X obj 119 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 9 59 t b b;
+#X obj 64 130 pointer;
+#X msg 64 110 traverse \$1 \, bang;
+#X obj 222 333 t p p p p;
+#X obj 222 403 list-add;
+#X obj 222 363 get \$0-rgb-sel p0x;
+#X msg 347 363 -8 0 8;
+#X msg 222 383 \$1 \$1 \$1;
+#X obj 222 423 set \$0-rgb-sel p1x p2x p3x;
+#X obj 256 493 list-add;
+#X msg 256 473 \$1 \$1 \$1;
+#X obj 256 453 get \$0-rgb-sel p0y;
+#X obj 256 513 set \$0-rgb-sel p1y p2y p3y;
+#X text 378 104 drawcurve 0 2 -8 0 0 8 8 0 0 -8 -8 0;
+#X obj 239 183 t p p p p;
+#X obj 273 263 get \$0-rgb-sel p0y;
+#X obj 273 303 set \$0-rgb-sel p0y.;
+#X obj 256 153 outlet;
+#X obj 273 283 + 0;
+#X obj 239 223 + 0;
+#X obj 352 63 drawpolygon 0 1 0 0 259 0 259 66 0 66 0 0;
+#X obj 352 83 drawpolygon 0 2 p0x(0:258) p0y(0:65) p0x. p0y.;
+#X obj 352 123 drawcurve 0 2 p1x p2y p2x p3y p3x p2y p2x p1y p1x p2y
+;
+#X obj 64 90 symbol \$0-swatch;
+#X obj 9 9 loadbang;
+#X obj 9 180 t p b p;
+#X msg 28 200 134 33;
+#X obj 9 29 t b b;
+#X obj 203 7 struct \$0-rgb-sel float x float y float p1x float p1y
+float p2x float p2y float p3x float p3y float p4x float p4y float p5x
+float p5y float p0x float p0y float p0x. float p0y.;
+#X obj 9 160 append \$0-rgb-sel x y;
+#X obj 28 220 set \$0-rgb-sel p0x p0y;
+#X obj 239 203 get \$0-rgb-sel p0x;
+#X obj 239 243 set \$0-rgb-sel p0x.;
+#X msg 9 140 10 10;
+#X obj 452 332 pointer;
+#X obj 522 309 set \$0-rgb-sel p0x p0y;
+#X obj 222 113 t p p p p;
+#X obj 450 253 t p p;
+#X msg 521 259 \$1 \$2;
+#X obj 523 280 t b l;
+#X text 443 221 mecanismo para gravar posicoes;
+#X connect 0 0 1 0;
+#X connect 0 1 1 0;
+#X connect 1 0 39 0;
+#X connect 2 0 3 0;
+#X connect 3 0 36 0;
+#X connect 3 1 26 0;
+#X connect 4 0 32 2;
+#X connect 5 0 4 0;
+#X connect 6 0 8 0;
+#X connect 6 1 11 3;
+#X connect 6 2 14 0;
+#X connect 6 3 15 3;
+#X connect 7 0 11 0;
+#X connect 8 0 10 0;
+#X connect 9 0 7 1;
+#X connect 9 0 12 1;
+#X connect 10 0 7 0;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 0;
+#X connect 17 0 34 0;
+#X connect 17 1 35 1;
+#X connect 17 2 18 0;
+#X connect 17 3 19 1;
+#X connect 18 0 21 0;
+#X connect 21 0 19 0;
+#X connect 22 0 35 0;
+#X connect 26 0 5 0;
+#X connect 27 0 30 0;
+#X connect 28 0 39 0;
+#X connect 28 1 29 0;
+#X connect 28 2 33 2;
+#X connect 29 0 33 0;
+#X connect 30 0 3 0;
+#X connect 30 1 9 0;
+#X connect 31 0 0 0;
+#X connect 32 0 28 0;
+#X connect 34 0 22 0;
+#X connect 36 0 32 0;
+#X connect 37 0 39 0;
+#X connect 39 0 6 0;
+#X connect 39 1 17 0;
+#X connect 39 2 20 0;
+#X connect 39 3 40 0;
+#X connect 40 0 37 1;
+#X connect 40 1 38 2;
+#X connect 41 0 42 0;
+#X connect 42 0 37 0;
+#X connect 42 1 38 0;
+#X restore 82 11 pd selector-data;
+#X obj 82 31 get \$0-rgb-sel p0x p0y;
+#X obj 82 151 tabread \$0-table;
+#X obj 101 171 tabread \$0-table;
+#X obj 82 51 t f f f;
+#X msg 173 567 \$1 \$2 \$3;
+#X obj 82 201 pack f f f;
+#X obj 121 111 tabread \$0-table;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-table 258 float 1;
+#A 0 0 0.0232558 0.0465116 0.0697674 0.0930233 0.116279 0.139535 0.162791
+0.186047 0.209302 0.232558 0.255814 0.27907 0.302326 0.325581 0.348837
+0.372093 0.395349 0.418605 0.44186 0.465116 0.488372 0.511628 0.534884
+0.55814 0.581395 0.604651 0.627907 0.651163 0.674419 0.697674 0.72093
+0.744186 0.767442 0.790698 0.813954 0.837209 0.860465 0.883721 0.906977
+0.930233 0.953488 0.976744 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.976744
+0.953488 0.930233 0.906977 0.883721 0.860465 0.837209 0.813954 0.790698
+0.767442 0.744186 0.72093 0.697674 0.674419 0.651163 0.627907 0.604651
+0.581395 0.55814 0.534884 0.511628 0.488372 0.465116 0.44186 0.418605
+0.395349 0.372093 0.348837 0.325581 0.302326 0.27907 0.255814 0.232558
+0.209302 0.186046 0.162791 0.139535 0.116279 0.0930232 0.0697674 0.0465117
+0.0232558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1 257 0 258 50 1;
+#X restore 202 359 graph;
+#X text 217 426 43 por cada segmento;
+#X text 209 411 0 0 \, 1 43 \, 1 129 \, 0 172 \, 0 258;
+#X obj 82 111 + 86;
+#X obj 82 131 zexy/wrap 257;
+#X obj 121 91 zexy/wrap 257;
+#X obj 121 71 + 172;
+#X obj 173 607 outlet;
+#X obj 233 90 moses 0;
+#X obj 233 70 expr $f1-33;
+#X obj 272 110 expr 1-$f1/32;
+#X obj 173 281 list-mult;
+#X msg 224 261 \$1 \$1 \$1;
+#X text 360 107 opacidade;
+#X obj 173 527 list-mult;
+#X msg 224 507 255 255 255;
+#X obj 173 547 l2i;
+#X obj 224 487 loadbang;
+#X obj 173 587 expr ($f1*(-65536)+$f2*(-256)+$f3*(-1))-1;
+#X text 206 317 converter entradas rgb e iem;
+#X text 362 151 brilho;
+#X obj 82 251 demux 0 1;
+#X obj 272 130 t b f;
+#X obj 233 170 t b f;
+#X obj 113 231 0;
+#X obj 143 231 1;
+#X obj 12 281 unpack f f f;
+#X obj 12 311 pack f f 0 1;
+#X obj 12 331 list-rot 1;
+#X obj 233 150 expr ($f1+1)/32*(-1);
+#X obj 12 351 maxlib/scale 0 1 0 1;
+#X obj 12 491 pack f f f;
+#X obj 46 371 pack f f 0 1;
+#X obj 46 391 list-rot 1;
+#X obj 46 411 maxlib/scale 0 1 0 1;
+#X obj 102 281 t f f f;
+#X obj 81 431 pack f f 0 1;
+#X obj 81 451 list-rot 1;
+#X obj 81 471 maxlib/scale 0 1 0 1;
+#X obj 342 34 inlet;
+#N canvas 0 0 376 407 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2010 \, João Pais;
+#X restore 15 656 pd license;
+#X text 14 637 (C) 2010 João Pais - jmmmpais@googlemail.com;
+#X text 242 234 FALTA MECANISMO PARA GRAVAR POSICOES;
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 1 1 17 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 1;
+#X connect 4 0 11 0;
+#X connect 4 1 3 0;
+#X connect 4 2 14 0;
+#X connect 5 0 26 0;
+#X connect 6 0 29 0;
+#X connect 7 0 6 2;
+#X connect 11 0 12 0;
+#X connect 12 0 2 0;
+#X connect 13 0 7 0;
+#X connect 14 0 13 0;
+#X connect 16 0 37 0;
+#X connect 16 1 18 0;
+#X connect 17 0 16 0;
+#X connect 18 0 30 0;
+#X connect 19 0 22 0;
+#X connect 20 0 19 1;
+#X connect 22 0 24 0;
+#X connect 23 0 22 1;
+#X connect 24 0 5 0;
+#X connect 25 0 23 0;
+#X connect 26 0 15 0;
+#X connect 29 0 34 0;
+#X connect 29 1 19 0;
+#X connect 30 0 33 0;
+#X connect 30 1 20 0;
+#X connect 31 0 32 0;
+#X connect 31 1 43 0;
+#X connect 32 0 29 1;
+#X connect 33 0 29 1;
+#X connect 34 0 35 0;
+#X connect 34 1 40 0;
+#X connect 34 2 44 0;
+#X connect 35 0 36 0;
+#X connect 36 0 38 0;
+#X connect 37 0 31 0;
+#X connect 38 0 39 0;
+#X connect 39 0 22 0;
+#X connect 40 0 41 0;
+#X connect 41 0 42 0;
+#X connect 42 0 39 1;
+#X connect 43 0 35 1;
+#X connect 43 1 40 1;
+#X connect 43 2 44 1;
+#X connect 44 0 45 0;
+#X connect 45 0 46 0;
+#X connect 46 0 39 2;
+#X restore 10 211 pd inside;
+#X obj 10 261 namecanvas \$0-swatch;
+#X obj 10 191 inlet;
+#X obj 10 231 outlet;
+#X obj 217 220 getdir;
+#X obj 217 199 loadbang;
+#X msg 216 251 open \$1/examples/rgb.ppm;
+#X connect 1 0 4 0;
+#X connect 3 0 1 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 7 0 0 0;
+#X coords 0 0 279 86 279 86 2 10 10;
diff --git a/abstractions/jmmmp/tastin-help.pd b/abstractions/jmmmp/tastin-help.pd
index 1468cdfb5..92a9a1db4 100644
--- a/abstractions/jmmmp/tastin-help.pd
+++ b/abstractions/jmmmp/tastin-help.pd
@@ -1,23 +1,40 @@
-#N canvas 121 146 376 296 10;
-#X text 12 247 (C) 2006 João Pais - jmmmpais@googlemail.com
-;
-#X text 12 267 Released under the BSD License;
-#X text 256 125 Outlets;
-#X text 256 75 Arguments;
-#X floatatom 36 156 5 0 0 0 - - -;
+#N canvas 121 146 376 360 10;
+#X text 12 327 Released under the BSD License;
+#X floatatom 46 196 5 0 0 0 - - -;
 #X text 12 10 [tastin] - Gate for keyboard input;
-#X text 256 95 - State (0 / 1);
-#X text 256 145 - key number;
-#X text 256 165 - state;
-#X obj 123 139 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+#X obj 133 179 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
 1;
-#X text 74 156 Key value;
-#X text 143 138 State;
-#X text 256 195 Key control;
-#X obj 36 119 tastin;
-#X text 256 215 - Esc: on / off;
+#X text 82 196 Key value;
+#X text 151 178 State;
+#X obj 46 159 tastin;
 #X text 12 30 Controls the flow of keyboard events with the Esc key
 \, so that nothing gets triggered by accident. The numbers are also
 displayed in the object.;
-#X connect 13 0 4 0;
-#X connect 13 1 9 0;
+#X text 236 185 Outlets;
+#X text 236 85 Arguments;
+#X text 236 105 - State (0 / 1);
+#X text 236 205 - key number;
+#X text 236 225 - state;
+#X text 236 255 Key control;
+#X text 236 275 - Esc on / off;
+#X text 236 135 Inlets;
+#X text 236 155 - toggle switch;
+#X obj 46 129 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 64 129 Status control;
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 13 6 DESCRIPTION Gate for keyboard input;
+#X text 12 36 KEYWORDS key GUI;
+#X text 14 165 INLET_0 - toggle switch;
+#X text 14 185 OUTLET_0 - key number;
+#X text 14 205 OUTLET_1 - state;
+#X text 12 135 VERSION 2006;
+#X restore 312 326 pd META;
+#X text 12 307 (C) 2006 João Pais - jmmmpais@gmail.com;
+#X connect 6 0 1 0;
+#X connect 6 1 3 0;
+#X connect 17 0 6 0;
diff --git a/abstractions/jmmmp/tastin.pd b/abstractions/jmmmp/tastin.pd
index 8727a366a..cfadbf50d 100644
--- a/abstractions/jmmmp/tastin.pd
+++ b/abstractions/jmmmp/tastin.pd
@@ -1,22 +1,21 @@
-#N canvas 309 69 360 302 10;
-#X obj 15 41 key;
-#X obj 48 122 spigot;
-#X obj 15 62 sel 27;
-#X obj 112 102 tgl 13 0 \$0-bogus \$0-bogus-i empty 0 -6 0 8 -233017
+#N canvas 459 72 360 310 10;
+#X obj 15 51 key;
+#X obj 48 132 spigot;
+#X obj 15 72 sel 27;
+#X obj 112 112 tgl 13 0 \$0-bogus \$0-bogus-i empty 0 -6 0 8 -233017
 -1 -1 0 1;
-#X obj 112 62 loadbang;
-#X obj 48 152 outlet;
-#X obj 112 152 outlet;
-#X obj 112 82 \$1;
+#X obj 112 42 loadbang;
+#X obj 48 162 outlet;
+#X obj 112 162 outlet;
+#X obj 112 62 \$1;
 #X text 12 10 [tastin] - Gate for keyboard input;
-#X text 236 85 Outlets;
+#X text 236 135 Outlets;
 #X text 236 35 Arguments;
 #X text 236 55 - State (0 / 1);
-#X text 236 105 - key number;
-#X text 236 125 - state;
-#X text 236 155 Key control;
-#X text 236 175 - Esc on / off;
-#X text 12 251 (C) 2006 João Pais - jmmmpais@googlemail.com;
+#X text 236 155 - key number;
+#X text 236 175 - state;
+#X text 236 205 Key control;
+#X text 236 225 - Esc on / off;
 #N canvas 0 0 426 446 license 0;
 #X text 8 47 All rights reserved.;
 #X text 8 227 The names of its contributors may not be used to endorse
@@ -42,21 +41,26 @@ in the documentation and/or other materials provided with the distribution.
 ;
 #X text 8 27 jmmmpais@googlemail.com;
 #X text 8 7 Copyright 2006 \, João Pais;
-#X restore 15 269 pd license;
-#X obj 73 102 cnv 13 37 13 empty \$0-label 0 4 8 0 12 -195568 -1 0
+#X restore 15 279 pd license;
+#X obj 73 112 cnv 13 37 13 empty \$0-label 0 4 8 0 12 -195568 -1 0
 ;
-#X obj 18 222 s \$0-label;
-#X msg 18 202 label \$1;
-#X obj 18 182 makesymbol;
+#X obj 18 232 s \$0-label;
+#X msg 18 212 label \$1;
+#X obj 122 82 inlet;
+#X text 236 85 Inlets;
+#X text 236 105 - toggle switch;
+#X obj 18 192 makefilename %d;
+#X text 12 261 (C) 2006-2015 João Pais - jmmmpais@gmail.com;
 #X connect 0 0 2 0;
 #X connect 1 0 5 0;
 #X connect 2 0 3 0;
 #X connect 2 1 1 0;
-#X connect 2 1 21 0;
+#X connect 2 1 23 0;
 #X connect 3 0 1 1;
 #X connect 3 0 6 0;
 #X connect 4 0 7 0;
 #X connect 7 0 3 0;
-#X connect 20 0 19 0;
-#X connect 21 0 20 0;
-#X coords 0 -1 1 1 94 17 1 33 100;
+#X connect 19 0 18 0;
+#X connect 20 0 3 0;
+#X connect 23 0 19 0;
+#X coords 0 -1 1 1 94 17 1 33 110;
diff --git a/abstractions/jmmmp/uhr-help.pd b/abstractions/jmmmp/uhr-help.pd
index 4c23c7e31..39b210d4b 100644
--- a/abstractions/jmmmp/uhr-help.pd
+++ b/abstractions/jmmmp/uhr-help.pd
@@ -1,7 +1,16 @@
 #N canvas 35 130 301 182 10;
-#X text 11 132 (C) 2006 João Pais - jmmmpais@googlemail.com;
 #X text 11 10 [uhr] - Shows the time;
 #X obj 41 61 uhr;
 #X text 12 149 Released under the BSD License;
 #X text 47 41 H / M / S;
 #X text 12 99 Related objects: [stoppuhr] [clock];
+#N canvas 504 106 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 135 VERSION 2006;
+#X text 13 6 DESCRIPTION Shows the time;
+#X text 12 36 KEYWORDS time GUI;
+#X restore 232 156 pd META;
+#X text 11 132 (C) 2006-2015 João Pais - jmmmpais@gmail.com;
diff --git a/abstractions/jmmmp/uhr.pd b/abstractions/jmmmp/uhr.pd
index 22d3a9d7b..f6aa22f81 100644
--- a/abstractions/jmmmp/uhr.pd
+++ b/abstractions/jmmmp/uhr.pd
@@ -1,19 +1,15 @@
-#N canvas 262 338 567 316 10;
-#X obj 210 77 metrum 1000 1;
-#X obj 210 97 time;
-#X msg 107 179 label \$1;
+#N canvas 262 338 619 295 10;
+#X obj 230 77 metrum 1000 1;
+#X obj 230 97 time;
+#X msg 117 179 label \$1;
 #X obj 77 209 s \$0-stunde;
-#X obj 247 209 s \$0-minute;
-#X obj 102 42 cnv 13 22 13 empty \$0-stunde 07 2 7 0 11 -233017 -1
+#X obj 267 209 s \$0-minute;
+#X obj 102 42 cnv 13 22 15 empty \$0-stunde 16 2 8 0 11 -1 -228856
 0;
-#X obj 126 42 cnv 13 22 13 empty \$0-minute 46 2 7 0 11 -233017 -1
+#X obj 125 42 cnv 13 22 15 empty \$0-minute 28 2 8 0 11 -1 -228856
 0;
-#X obj 150 42 cnv 13 22 13 empty \$0-sek 08 2 7 0 11 -233017 -1 0;
-#X obj 427 209 s \$0-sek;
-#X obj 377 159 mergefilename;
-#X obj 197 159 mergefilename;
-#X obj 107 159 mergefilename;
-#X text 12 251 (C) 2006 João Pais - jmmmpais@googlemail.com;
+#X obj 148 42 cnv 13 22 15 empty \$0-sek 52 2 8 0 11 -1 -228856 0;
+#X obj 467 209 s \$0-sek;
 #N canvas 0 0 426 446 license 0;
 #X text 8 47 All rights reserved.;
 #X text 8 227 The names of its contributors may not be used to endorse
@@ -42,36 +38,40 @@ in the documentation and/or other materials provided with the distribution.
 #X restore 15 269 pd license;
 #X text 11 10 [uhr] - Shows the time;
 #X obj 37 129 moses 10;
-#X obj 17 159 mergefilename;
 #X msg 17 180 label 0\$1;
-#X msg 287 179 label \$1;
-#X obj 287 159 mergefilename;
-#X msg 197 179 label 0\$1;
-#X msg 467 179 label \$1;
-#X obj 467 159 mergefilename;
-#X msg 377 179 label 0\$1;
-#X obj 407 129 moses 10;
-#X obj 217 129 moses 10;
+#X msg 317 179 label \$1;
+#X msg 217 179 label 0\$1;
+#X msg 517 179 label \$1;
+#X msg 417 179 label 0\$1;
+#X obj 447 129 moses 10;
+#X obj 237 129 moses 10;
+#X obj 517 159 makefilename %d;
+#X obj 417 159 makefilename %d;
+#X obj 317 159 makefilename %d;
+#X obj 217 159 makefilename %d;
+#X obj 117 159 makefilename %d;
+#X obj 17 159 makefilename %d;
+#X text 12 251 (C) 2006-2015 João Pais - jmmmpais@gmail.com;
 #X connect 0 0 1 0;
-#X connect 1 0 15 0;
-#X connect 1 1 25 0;
-#X connect 1 2 24 0;
+#X connect 1 0 11 0;
+#X connect 1 1 18 0;
+#X connect 1 2 17 0;
 #X connect 2 0 3 0;
-#X connect 9 0 23 0;
-#X connect 10 0 20 0;
-#X connect 11 0 2 0;
-#X connect 15 0 16 0;
-#X connect 15 1 11 0;
-#X connect 16 0 17 0;
-#X connect 17 0 3 0;
-#X connect 18 0 4 0;
-#X connect 19 0 18 0;
-#X connect 20 0 4 0;
-#X connect 21 0 8 0;
-#X connect 22 0 21 0;
-#X connect 23 0 8 0;
-#X connect 24 0 9 0;
-#X connect 24 1 22 0;
-#X connect 25 0 10 0;
-#X connect 25 1 19 0;
-#X coords 0 -1 1 1 74 17 1 100 40;
+#X connect 11 0 24 0;
+#X connect 11 1 23 0;
+#X connect 12 0 3 0;
+#X connect 13 0 4 0;
+#X connect 14 0 4 0;
+#X connect 15 0 8 0;
+#X connect 16 0 8 0;
+#X connect 17 0 20 0;
+#X connect 17 1 19 0;
+#X connect 18 0 22 0;
+#X connect 18 1 21 0;
+#X connect 19 0 15 0;
+#X connect 20 0 16 0;
+#X connect 21 0 13 0;
+#X connect 22 0 14 0;
+#X connect 23 0 2 0;
+#X connect 24 0 12 0;
+#X coords 0 -1 1 1 70 17 1 101 41;
-- 
GitLab